Compare commits

...

1381 Commits

Author SHA1 Message Date
Drashna Jaelre
1fd2f2f022 Compiler warning when using WS2812 (#9955)
Specifically, when rgb matrix is enabled and using the ws2812 driver, and rgb light is enabled at the same time, print a message about coexistance because it can cause issues, since you cannot change pins/config for the WS2812 driver.
2020-08-25 19:05:39 +10:00
Ryan
c9c63806a7 MSYS2: install packages for AVR toolchain (#10078) 2020-08-25 19:04:42 +10:00
yiancar
5460489b51 [Keyboard] Barleycorn (#10118)
* Initial commit

* Barleycorn rename

* Update readme.md

* PR checklist fixes

* Update info.json

* Update keyboards/barleycorn/rules.mk

* Update keyboards/barleycorn/config.h

* Update keyboards/barleycorn/rules.mk

* Update keyboards/barleycorn/config.h

* Update keyboards/barleycorn/info.json

* Update keyboards/barleycorn/info.json

* Update keyboards/barleycorn/readme.md

* Update keyboards/barleycorn/rules.mk

* Update keyboards/barleycorn/rules.mk

* PR review

* Update keyboards/barleycorn/readme.md

* Update keyboards/barleycorn/rules.mk

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

* Update keyboards/barleycorn/keymaps/iso/readme.md

* Update keyboards/barleycorn/rules.mk

* Update keyboards/barleycorn/readme.md

* Update keyboards/barleycorn/rules.mk

* Update keyboards/barleycorn/matrix.c

* Update keyboards/barleycorn/barleycorn.c

* added ansi/iso keymaps!

* Update keyboards/barleycorn/info.json
2020-08-24 20:37:01 -07:00
AKiwi92
ecb2121069 [Keyboard] KiwiKeebs MacroBoard v1.0 (#10080)
* KiwiKeebs v.10 QMK

* Rename files and folder structure for QMK pull request

* Deleted unused files

* Added starter keymap

* Changes to make pull request compliant

* Removed lines for PR error

* Error fix in json for PR

* Update keyboards/kiwikeebsmacro/kiwikeebsmacro.h

* Update keyboards/kiwikeebsmacro/readme.md

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

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

* Update keyboards/kiwikeebsmacro/info.json

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

* Update keyboards/kiwikeebsmacro/config.h

* Changed structure to allow for future boards

* Update keyboards/kiwikeebs/macro/config.h

* Update keyboards/kiwikeebs/macro/info.json

* Update keyboards/kiwikeebs/macro/keymaps/default/keymap.c

* Update keyboards/kiwikeebs/macro/keymaps/default/keymap.c

* Amended rotarty to use kb instead of user

* Updated structure after pull request commits

* Update keyboards/kiwikeebs/macro/config.h

* Update keyboards/kiwikeebs/macro/info.json
2020-08-24 20:36:05 -07:00
Cassandra de la Cruz-Munoz
1272371f15 [Keymap] add miuni32:cassdelacruzmunoz (#10108)
* created keymap for miuni32:cassdelacruzmunoz

* add license headers

* fixed error
2020-08-24 16:56:27 -07:00
Pierre Chevalier
80d92525db Upstream a good default keymap for the Ferris handwired (#9926)
* Proper default keymap

* Update keyboards/handwired/ferris/keymaps/default/readme.md
2020-08-24 14:56:48 -07:00
Josh Hinnebusch
297bda1c1f add num lock indicator functionality to hineybush/h10 (#10100)
* add num lock indicator functionality to h10

* Update keyboards/hineybush/h10/h10.c
2020-08-24 14:55:49 -07:00
haierwangwei2005
5772ac8bf6 [Keyboard] 10 ble oled usbhub pad (#10095)
* Create rules.mk

* Create glcdfonr.c

* Create keymap.c

* Create keymap.c

* Create rules.mk

* Add files via upload

* Update readme.md

* Update readme.md

* Update readme.md

* Update config.h

* Update 10bleoledhub.h

* Update 10bleoledhub.c

* Update info.json

* Update keymap.c

* Update keymap.c

* Rename glcdfonr.c to glcdfont.c

* Update config.h

* Update config.h

* Update config.h

* Update rules.mk

* Update 10bleoledhub.c

* Update 10bleoledhub.h

* Update info.json

* Update config.h

* Update rules.mk

* Update keymap.c

* Update keymap.c

* Update glcdfont.c

* Update keyboards/10bleoledhub/rules.mk

* Update keyboards/10bleoledhub/keymaps/via/keymap.c

* Update keyboards/10bleoledhub/keymaps/default/keymap.c

* Update keyboards/10bleoledhub/config.h

* Update keyboards/10bleoledhub/config.h

* Update keyboards/10bleoledhub/10bleoledhub.h
2020-08-24 11:55:24 -07:00
Naoki Katahira
958e3f85cb Update Lily58 Keymaps and VendorID (#9979)
* Update keymaps and venderID

* update config.h

* Update keyboards/lily58/keymaps/yuchi/keymap.c
2020-08-24 09:08:35 -07:00
Nick Blyumberg
b139d34924 Update Ortho60 VIA keymap (#10130)
* Added the license header and made the layers generic
2020-08-24 07:49:25 -07:00
Chris Alves
0ea476a311 [Keymap] chrisae9 dz60 updates (#10098)
* Changed keyboard layout and updated some keys

* Updated keymap

* Updated layout and pictures

* Remove old keymap

Co-authored-by: chis <chis@chis.chis.dev>
2020-08-23 23:13:11 -07:00
kakunpc
8937c14514 FIX rabbit_capture_plan info.json (#10139) 2020-08-23 00:27:01 -07:00
JagdPietr
92da1f0b97 [Keyboard] Drakon (#10071)
* Drakon60

* Updates

* Update: Deletion of XXX in WKL keymap

* Update keymap.c

* Revert "Updates"

This reverts commit b4f97d3877.

* Update keyboards/drakon/info.json

* Update keyboards/drakon/info.json

* Update keyboards/drakon/info.json

* Update keyboards/drakon/config.h

* Update keyboards/drakon/config.h

* Update keyboards/drakon/rules.mk

* Update keyboards/drakon/rules.mk

* Update keyboards/drakon/rules.mk

* Update keyboards/drakon/rules.mk

* Update keyboards/drakon/keymaps/wkl/readme.md

* Update keyboards/drakon/keymaps/logo/keymap.c

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

* Update keyboards/drakon/keymaps/wkl/keymap.c

* Update keyboards/drakon/config.h

* Update keyboards/drakon/config.h

* Update keyboards/drakon/keymaps/logo/readme.md

* Update keyboards/drakon/config.h

* Update keyboards/drakon/readme.md

* Update keyboards/drakon/rules.mk

* Update keyboards/drakon/drakon.c

* Update config.h

Deletion as recommended

* Update config.h

Correction of the deletion

* Update config.h

Deletion of line as recommended

* Update config.h

Deleted line as recommended

* Update keymap.c

Deleted line as recommended

* Deletion of File

* Delete config.h

* Delete config.h

* Delete config.h

* Update keyboards/drakon/config.h

* Update keyboards/drakon/keymaps/wkl/keymap.c

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

* Update keyboards/drakon/keymaps/wkl/keymap.c
2020-08-22 18:24:09 -07:00
kakunpc
a7cb1ceade [Keyboard] Add "rabbit capture plan" keyboard (#9895)
* add rabbit_capture_plan

* update keymap.c

* Update keyboards/rabbit_capture_plan/paw3204.c

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

* move bto_to keymap

* remove paw3204

Co-authored-by: Drashna Jaelre <drashna@live.com>
2020-08-22 16:18:53 -07:00
Michael Schwingen
42eeb315a5 [Keyboard] add support for ModelM USB board (#9846)
* add support for ModelM USB board

* EMI improvement: remove unnecessary toggling of MOSI pin

* address review comments

* Update keyboards/mschwingen/modelm/rules.mk

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

* Update keyboards/mschwingen/modelm/rules.mk

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

* Update keyboards/mschwingen/modelm/config.h

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

* Update keyboards/mschwingen/modelm/config.h

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

* Update keyboards/mschwingen/modelm/rules.mk

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

* Update keyboards/mschwingen/modelm/keymaps/default/keymap.c

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

* update printf usage

* add comment

* EMI improvement: remove unnecessary toggling of MOSI signal

* remove trailing space

* use shorter macros as suggested in review by noroadsleft, re-format table to line up columns

* Update keyboards/mschwingen/modelm/config.h

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

* Update keyboards/mschwingen/modelm/rules.mk

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

* Update keyboards/mschwingen/modelm/rules.mk

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

* Update keyboards/mschwingen/modelm/rules.mk

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

* Update keyboards/mschwingen/modelm/README.md

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

* Update keyboards/mschwingen/modelm/README.md

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

* Apply suggestions from code review

use spi_read from core insteads of our own copy

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

* include spi_master.c to use spi_read()

* Update keyboards/mschwingen/modelm/README.md

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

* Apply suggestions from code review: correct indenting in keymap

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

* Apply suggestions from code review

use automatic variant defines from makefile instead of defining our own

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

* Update keyboards/mschwingen/modelm/rules.mk: use QUANTUM_LIB_SRC for uart.c

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

Co-authored-by: Michael Schwingen <michael@schwingen.org>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-08-22 16:02:16 -07:00
yulei
ac3dfa742a [Keyboard] added matrix 8xv2.0 additional (#9470)
* added matrix 8xv2.0 additional keyboard

* Apply suggestions from code review

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

* add copyright and speed up the matrix scanning

* Update keyboards/matrix/m20add/rules.mk

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

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2020-08-22 13:45:06 -07:00
myoung34
e02f4798f9 [Keyboard] Pterodactyl handwired (#9884)
* Working bluetooth fork of dactyl

* Refactor thanks to zvecr

* Final refactor per PR comments

* Pragma once

* Update keyboards/handwired/pterodactyl/pterodactyl.h

* Update keyboards/handwired/pterodactyl/readme.md

* Update keyboards/handwired/pterodactyl/rules.mk

* Update keyboards/handwired/pterodactyl/rules.mk

* Update keyboards/handwired/pterodactyl/config.h

* Update keyboards/handwired/pterodactyl/pterodactyl.h

* Update keyboards/handwired/pterodactyl/config.h

* Update keyboards/handwired/pterodactyl/pterodactyl.h

* update readme

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

* Update keyboards/handwired/pterodactyl/info.json

* Update keyboards/handwired/pterodactyl/readme.md

* Update keyboards/handwired/pterodactyl/config.h

* Update keyboards/handwired/pterodactyl/info.json

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

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

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

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

* Update keyboards/handwired/pterodactyl/pterodactyl.h

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

* Update keyboards/handwired/pterodactyl/matrix.c

* Fix/add formatting and info/keymap.json

* Update keyboards/handwired/pterodactyl/keymaps/default/keymap.json

* lint default/keymap.json

* format info.json
2020-08-22 12:59:24 -07:00
cBachoo
cf4b493c24 [Keyboard] Nemui (#10020)
* added nemui layout

* via support working

* added license headers for c and h files

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

* Update keyboards/nemui/nemui.c

* Update keyboards/nemui/config.h

* Update keyboards/nemui/readme.md

* Update keyboards/nemui/rules.mk

* removed nemui.json as it was supposed to only be in via repo

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

* Update keyboards/nemui/info.json

* Update keyboards/nemui/info.json

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

* Update keyboards/nemui/keymaps/via/keymap.c
2020-08-22 12:40:55 -07:00
Drashna Jaelre
220b1c9db4 [Keyboard] Add ZSA Moonlander (#9853) 2020-08-22 07:44:42 -07:00
Ikta
346bfb2a05 Update i2c_driver.md (#10131)
Update i2c_driver.md to change ARM pin number documentation, line 84 and 85
2020-08-22 14:06:16 +01:00
zeriyoshi
0f0530c5a4 Fix IDOBAO ID80 board configurations. (#9796)
* Fix IDOBAO 80 disable console and LEDs.

* Re-enabling to IDOBAO80s underglow rgb light

* fix define legacy declarements
2020-08-22 01:12:19 -07:00
Nick Blyumberg
08acb7ab68 Ortho48 VIA keymap (#10128) 2020-08-22 16:14:52 +10:00
Nick Brassel
70ce4ba56f Revert "Add Kiibohd bootloader type to bootloader.mk (#9908)" (#10126)
This reverts commit e2d4cd1a41.
2020-08-21 15:42:28 -07:00
Sendy YK
1b0272e801 Fixed Soyuz LAYOUT_numpad_5x4 Preview on QMK Configurator (#10123) 2020-08-21 14:25:28 -07:00
Sendy YK
22ceab9c08 Fixed DZ60 LAYOUT_60_ansi_arrow Preview on QMK Configurator (#10122) 2020-08-21 14:24:02 -07:00
gtips
930446fe96 Update reviung39 PRODUCT_ID (#10001) 2020-08-21 11:10:05 +10:00
rupa
dd763f2988 [Keymap] userspace and keymap for rupa (#9786)
* first iteration of my keymap

* * move to userspace
* "script" modes
* keymap bling

* OM and RUPA keys

and tryin to micro-optimize in process_records.c

* woops

swap shifted rupas
forgot to add codepoint for OM

* Apply suggestions from code review

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

* add call to process_record_keymap, per review

* fall through to process_record_keymap

* license headers

Co-authored-by: Drashna Jaelre <drashna@live.com>
2020-08-20 17:07:09 -07:00
Salicylic-acid3
83c7c66e8c [Keyboard] AJisai74 (#10021)
* Add keyboard ajisai74

Add ajisai74 keyboard.

A 74 keys ANSI/JIS Layout keyboard.
Salicylic-acid3

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

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

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

* Update keyboards/ajisai74/rules.mk

* Update keyboards/ajisai74/rev1/rev1.h

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

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

* Update keyboards/ajisai74/keymaps/jis/keymap.c

* Keymap update

Fixed an unnecessary symbol at the end of the file.

* Update keyboards/ajisai74/readme.md

* Update keyboards/ajisai74/rev1/config.h

* Delete Rev1 directory

I removed the directory because I don't have any plans to update now.

* Update keyboards/ajisai74/rules.mk

* Added copyright

Added copyright to all files.

* Update keyboards/ajisai74/ajisai74.h
2020-08-19 18:50:43 -07:00
MechMerlin
ec7abc2ce2 [Keyboard] HolySwitch Co Southpaw75 (#10011)
* add in drewguy's code with a few additions to the keymap

* add VID and PID

* fixup defualt keymap

* add VIA keymap

* thanks to bigchimpo for reminding me to put an Fn key in the default keymap

* make sure we have the right gitugithub url for drew

* remove description as per PR checklist

* append readme with more information

* Update keyboards/holyswitch/southpaw75/config.h

* Update keyboards/holyswitch/southpaw75/info.json

* Update keyboards/holyswitch/southpaw75/southpaw75.h

* Update keyboards/holyswitch/southpaw75/info.json
2020-08-19 18:49:31 -07:00
LucW
0b894ca99c [Keymap] update dvorak_42_key keymaps for atreus and ergodox_ez: add VSCode shortcuts (#10054)
* remove obsolete cloud9 macros, add vscode macros on the KEYNAV layer

* add vscode layer and shortcuts

* remove duplicate VSCODE layer and macros

* apply review changes
2020-08-19 18:38:52 -07:00
Jason Fields
cdb69da86e Fix typo in docs/feature_dynamic_macros (#10085)
s/completly/completely
2020-08-19 22:59:59 +01:00
Nick Blyumberg
c18cbcc5ad [Keymap] VIA keymap for Cannonkeys Ortho60 (#10086)
* Adding VIA support

* Fixed Vendor ID

* Update keyboards/cannonkeys/ortho60/config.h

* Update keyboards/cannonkeys/ortho60/keymaps/via/keymap.c

* Update keyboards/cannonkeys/ortho60/config.h
2020-08-19 12:31:56 -07:00
fvolpe83
c23e6dff78 [Keymap] xd60:shura30 (#10089)
* added my xd60 layout

* added my xd60 layout

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

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

* Update keyboards/xd60/keymaps/shura30/config.h
2020-08-19 12:30:00 -07:00
Evgenii
4f4c6e04d9 Rename keyboards/handwired/zergo/keymap.c to keyboards/handwired/zergo/keymaps/default/keymap.c (#10094) 2020-08-19 12:00:36 -07:00
Damien
057bc5da80 [Keymap] added dbroqua keymap for kbdfans/kbd6x (#10072)
* [kbdfans] Added dbroqua layout for kbd6x

Add dbroqua keymap for kbd6x

Add dbroqua layout for kbd6x with HHKB style and RGB.

* Update keymap.c

  * Change based on zvecr
  * Added RESET button
2020-08-19 11:21:39 -07:00
satt99
e4a0a5f4e1 [Keyboard] Vision keyboard by SatT (#9768)
* Add vision keyboard

* Remove bootloader_defs.h

* Update keyboards/satt/vision/readme.md

* Change Vendor ID

* Update keyboards/satt/vision/config.h

* Update keyboards/satt/vision/rules.mk

* Fix info.json

* Apply suggestions from code review

* Add license header

* Apply suggestions from code review
2020-08-19 11:18:52 -07:00
Sendy YK
993d4058a1 60_ansi_arrows Community Layout; mrsendyyk keymaps for dz60 and maartenwut/eon65 (#9993)
* Add Layout and Keymap

* Add and Update Keymap

* Update readme.md

* Update keymap.c

* Update readme.md

* Update

* delete

* update

* Revert "update"

This reverts commit 91a3ff800c.

* Update config.h

remove `DESCRIPTION` as per PR checklist

* Update config.h

* Revert "Update config.h"

This reverts commit 269df0535e.

* Revert "Update config.h"

This reverts commit cad5a33201.

* Update keyboards/dz60/dz60.h

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

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

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

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

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

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

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

* Update keymap.c

* Update keymap.c

* Update keymap.c

* Update dz60.h

* Update keymap.c

* Update readme.md

* Update keymap.c

* Update keymap.c

* Update readme.md

* Update dz60.h

* Update keymap.c

* Update readme.md

* Update readme.md

* Update

* Update keymap.c

* Update keymap.c

* Update keymap.c

* Update readme.md

* Update keymap.c

* Update readme.md

* Update readme.md

* Update keymap.c

* Update readme.md

* Update readme.md

* Update readme.md

* Update readme.md

* Update readme.md

* Rename readme.md to README.md

* Rename readme.md to README.md

* Rename README.md to readme.md

* Rename README.md to readme.md

* Update rules.mk

* Update dz60.h

* Update keymap.c

* Update readme.md

* Update keymap.c

* Update readme.md

* Update

* Update keymap.c

* Update keymap.c

* Update keymap.c

* Update keymap.c

* Update readme.md

* Update info.json

* Update keyboards/dz60/dz60.h

* Update keyboards/dz60/dz60.h

* Update keyboards/dz60/rules.mk

* Update layouts/community/60_ansi_arrow/mrsendyyk/keymap.c

* Update layouts/community/60_ansi_arrow/mrsendyyk/keymap.c

* Update layouts/community/60_ansi_arrow/mrsendyyk/keymap.c

* Update layouts/community/60_ansi_arrow/readme.md

* Update layouts/default/60_ansi_arrow/default_60_ansi_arrow/keymap.c

* Update layouts/default/60_ansi_arrow/default_60_ansi_arrow/keymap.c

* Update layouts/default/60_ansi_arrow/default_60_ansi_arrow/keymap.c

* Update layouts/default/60_ansi_arrow/readme.md

* Update layouts/community/60_ansi_arrow/mrsendyyk/readme.md

* Update layouts/community/60_ansi_arrow/mrsendyyk/readme.md

* Update layouts/community/60_ansi_arrow/readme.md

* Update layouts/community/60_ansi_arrow/readme.md

* Update layouts/community/60_ansi_arrow/readme.md

* Update layouts/community/60_ansi_arrow/readme.md

* Update layouts/community/60_ansi_arrow/readme.md

* Update keymap.c

* Update readme.md

* Update keymap.c

* Update keymap.c

* Update readme.md
2020-08-19 11:16:10 -07:00
Xelus22
79f080a43f [Keyboard] add Xelus Valor (#10079)
* praxis avr

* rgb

* valor initial

* rgb limit

* readme update

* update rules.mk and include valor

* update readme

* Update rules.mk

* update readme and copyright + layout macro

* oops didnt save
2020-08-18 20:20:22 -07:00
jackytrabbit
d57bd0f65c [Keyboard] Add support for keyboard 'Bolt' (#10046)
* Add support for keyboard 'Bolt'

Add support for keyboard 'Bolt'

* Update info.json

* Update info.json

* Update keyboards/lazydesigners/bolt/config.h

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

* Update keyboards/lazydesigners/bolt/rules.mk

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

* Update keyboards/lazydesigners/bolt/readme.md

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

* Update info.json

* Update keyboards/lazydesigners/bolt/info.json

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

* Update keyboards/lazydesigners/bolt/bolt.h

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

* Update keyboards/lazydesigners/bolt/info.json

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

* Update keyboards/lazydesigners/bolt/keymaps/default/keymap.c

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

* Update keyboards/lazydesigners/bolt/info.json

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

* Update keyboards/lazydesigners/bolt/keymaps/default/keymap.c

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

* Update keyboards/lazydesigners/bolt/keymaps/default/keymap.c

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

Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2020-08-18 19:29:09 -07:00
Alpha Chen
d9fe855923 [Keymap] update kejadlen keymaps (#9954)
Standardizing my keymaps under my username, rather than a keymap name.
2020-08-18 19:21:50 -07:00
jotix
df1467c86d [Keymap] jotix_ortho_4x12_layout (#10075) 2020-08-18 18:48:40 -07:00
kingwangwong
7c81ae287c Changes to thevankeyboards/minivan:king keymap (#10032)
* Changes to minivan layout
2020-08-18 18:18:32 -07:00
mechlovin
3710522549 Refactor Adelais PCB (#10069)
Enable RGBLIGHT for standard pcb rev2&3

* Update rules.mk

* Update rules.mk
2020-08-18 18:13:16 -07:00
yiancar
1ff68165b8 [Keyboard] NK87 (#9965)
* Initial commit

* Fix1

* Final Prettify

* Update keyboards/nk87/config.h

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

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

* Update keyboards/nk87/rules.mk

* Remove unnecessary junk

* Update keyboards/nk87/readme.md

* Update keyboards/nk87/readme.md

* Update keyboards/nk87/readme.md

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

* Update keyboards/nk87/keymaps/via/readme.md
2020-08-18 17:56:40 -07:00
Yoonbae Cho
33579efee3 Update keymap for Keebio/iris4/rev4 (#10062) 2020-08-19 09:13:55 +10:00
Xelus22
588991af69 Dawn60 update that breaks travis keyboard builds (#10082) 2020-08-19 08:13:18 +10:00
Adam Gwilliam
5aa55a7154 add VIA keymap for boardsource/3x4 (#10043)
* via keymap for boardsource/3x4

* fix formatting

* Apply suggestions from code review

fix rules.mk

* Update keyboards/boardsource/3x4/rules.mk

* use unique product ID

* update vendor id to be unique, update product id to make more sense
2020-08-18 14:36:46 -07:00
JesseLeung97
03090d6571 [Keyboard] generic_panda/panda65_01 (#10006)
* First commit

* Added ChibiOS files

* renamed files to remove capital letters

* Fixed layout references

* fixed image reference

* Fixing errors

* Fixed config.h

* changed second up to fn key

* renamed files and added beginning of via compatibility

* renamed keyboard

* removed vscode files

* fixing files for via compatibility

* adding via files

* working via compatibility

* Update readme.md

* Update readme.md

* First commit

* Added ChibiOS files

* renamed files to remove capital letters

* Fixed layout references

* fixed image reference

* Fixing errors

* Fixed config.h

* changed second up to fn key

* renamed files and added beginning of via compatibility

* renamed keyboard

* removed vscode files

* fixing files for via compatibility

* adding via files

* working via compatibility

* added license header to via file

* preparing for pull request

* Fixed firmware according to pull request feedback

* fixed readme according to pull request feedback

* Updated readme and removed unnecessary layers in default/keymap.c

* removed whitespace

* updated keymap readme to match suggestion
2020-08-18 14:28:25 -07:00
Evgenii
f99f46773e [Keyboard] zErgo handwired (#9990)
* Create readme.md

* Add files via upload

* Update readme.md

* Create info.json

* Update info.json

* Update and rename kb.c to zergo.c

* Rename kb.h to zergo.h

* Add files via upload

* Update keymap.c

* Update config.h

* Update zergo.c

* Update zergo.h

* Update rules.mk

* Update keymap.c

* Rename Makefile to makefile

* Update zergo.c

* Update zergo.h

* Update keymap.c

* Update config.h

* Update config.h

* Update zergo.h

* Update rules.mk

* Update rules.mk

* Update config.h

* Update keyboards/handwired/zergo/keymap.c

* Update keyboards/handwired/zergo/keymap.c

* Update keyboards/handwired/zergo/zergo.h

* Update keyboards/handwired/zergo/keymap.c

* Update keyboards/handwired/zergo/keymap.c

* Update keyboards/handwired/zergo/rules.mk

* Update keyboards/handwired/zergo/keymap.c

* Update readme.md

* Update readme.md

* Update keyboards/handwired/zergo/readme.md

* Update readme.md

* Update keyboards/handwired/zergo/config.h

* Update keyboards/handwired/zergo/config.h

* Update keyboards/handwired/zergo/info.json

* Update readme.md

* Update keyboards/handwired/zergo/readme.md

* Update keyboards/handwired/zergo/readme.md

* Delete makefile
2020-08-18 14:24:50 -07:00
Blake
66de3308e5 [Keyboard] Bento handwired macro pad (#9973)
* [Keyboard] Add ghostseven/bento

* Correct attribution, Dwin17

* Formatting change

* Markdown formating

* Update keyboards/ghostseven/bento/info.json

* Update keyboards/ghostseven/bento/readme.md

* Update keyboards/ghostseven/bento/rev1/config.h

* Update keyboards/ghostseven/bento/rev1/rules.mk

* Update keyboards/ghostseven/bento/rev1/rules.mk

* Update keyboards/ghostseven/bento/rev1/rules.mk

* Update keyboards/ghostseven/bento/rev1/rules.mk

* Update keyboards/ghostseven/bento/rev1/config.h

* Update keyboards/ghostseven/bento/rev1/rev1.c

* Update keyboards/ghostseven/bento/rev1/rev1.c

* Update keyboards/ghostseven/bento/rev1/config.h

* Update keyboards/ghostseven/bento/rev1/rules.mk

* Update keyboards/ghostseven/bento/readme.md

* Delete config.h

* Delete config.h

* Update rules.mk

* Rename keyboards/ghostseven/bento/readme.md to keyboards/handwired/bento/readme.md

* Rename keyboards/ghostseven/bento/rules.mk to keyboards/handwired/bento/rules.mk

* Rename keyboards/ghostseven/bento/info.json to keyboards/handwired/bento/info.json

* Rename keyboards/ghostseven/bento/bento.h to keyboards/handwired/bento/bento.h

* Rename keyboards/ghostseven/bento/bento.c to keyboards/handwired/bento/bento.c

* Rename keyboards/ghostseven/bento/rev1/rules.mk to keyboards/handwired/bento/rev1/rules.mk

* Rename keyboards/ghostseven/bento/rev1/rev1.h to keyboards/handwired/bento/rev1/rev1.h

* Rename keyboards/ghostseven/bento/rev1/rev1.c to keyboards/handwired/bento/rev1/rev1.c

* Rename keyboards/ghostseven/bento/rev1/config.h to keyboards/handwired/bento/rev1/config.h

* Rename keyboards/ghostseven/bento/keymaps/default/keymap.c to keyboards/handwired/bento/keymaps/default/keymap.c

* Update bento.h

* Change make location to handwired dir.

* added alt keymap submited by cbc02009

* Added mac dev keymap

* Licence updates
2020-08-18 13:45:33 -07:00
Nick Blyumberg
0e542b297d Super16 VIA support (#10076)
* Added via support for Super16
2020-08-18 13:10:43 -07:00
cole smith
c0df341f5c [Keyboard] Boardsource Microdox (#9971)
* microdox keyboard workidng

* updated readme

* cleaned up for pr

* Apply suggestions from code review

* Apply suggestions from code review

* added license headers

* Update keyboards/boardsource/microdox/keymaps/default/keymap.c

* Update keyboards/boardsource/microdox/rules.mk

* Update keyboards/boardsource/microdox/rules.mk

* Update keyboards/boardsource/microdox/rules.mk
2020-08-18 12:46:09 -07:00
JuanTapMan
186b1b2ba2 function96 keyboard added (#10024)
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-08-18 18:25:43 +10:00
Yu-Xi Lim
4237d35e83 [Keyboard] HHKB Lite 2 (#9188)
* Initial commit for HHKB Lite 2

* Rearrange keymap

* Clean up config

* Fix pin assignments

* Code and filename cleanup

* Add README

* Apply suggestions from code review

Code cleanup

* Update keyboards/hhkb_lite_2/README.md

Documentation cleanup

* Change Vendor ID to unused

* One more LAYOUT

* Via keymap for HHKB Lite 2

* Remove redundant keymap.c

* Add README for Via keymap

* Fix vendorId for Via keymap

* Apply suggestions from code review

Cleanup based on review feedback

* Clean up via keymap makefile rules

* Switch to C keymap instead of JSON for Via layout

* Move bootmagic key config to main

Moved to main keyboard config to be shared by all keymaps.

* Address PR feedback

* Reformat config comments

* Format rules.mk comments

* Rename README -> readme

* Use `make` instead of `qmk` in examples
2020-08-18 00:06:19 -07:00
rate
0d65bbaa44 [Keyboard] Pistachio (#10003)
* Add keyboard Pistachio

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

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

* Update keyboards/pistachio/config.h

* Fix Build error.

* Apply suggestions from code review
2020-08-17 23:46:56 -07:00
Wilba
70acf36d16 [Keyboard] Added RAMA WORKS M65-B, M65-BX, M10-C, M50-A (#9991)
* Added RAMA WORKS M65-B, M65-BX, M10-C, M50-A

* Review changes

* Review changes

* Review changes

* Increase layers to 10 for M10-C, M10-B
2020-08-17 23:44:35 -07:00
Richard Goulter
c59a81b792 [Keyboard] Update bm40hsrgb with RGB Matrix support (#10044)
* bm40rgb: copy from kbfirmware.com

* bm40rgb: align default keymap

* bm40rgb: rename kb.c/h to bm40rgb.c/h

* bm40rgb: adjust with changes from the noroadsleft converter

* bm40rgb: adjust keyboard to support plant_mit and ortho_4x12 layouts

* bm40rgb: Add keyboard readme.md

* bm40rgb: add RGB Matrix support

* bm40rgb: remove bm40hsrgb layout

* Apply suggestions from PR

- Fix alignment in keyboards/bm40rgb/bm40rgb.c
- Remove redundant DESCRIPTION in keyboards/bm40rgb/config.h
- Tidy keyboards/bm40rgb/readme.md
- Tidy MANUFACTURER, PRODUCT in keyboards/bm40rgb/config.h
- Tidy rules.mk keyboards/bm40rgb/rules.mk
- Use PRODUCT_ID computed from SHASUM of keyboard name in keyboards/bm40rgb/config.h
- Define LAYOUT_all in keyboards/bm40rgb/bm40rgb.h

* Update keyboards/bm40rgb/info.json

* Tidy comment

* Apply suggestions from code review

* Apply suggestions from code review

* Revert "bm40rgb: remove bm40hsrgb layout"

This reverts commit 1f69a03551.

* Move the rgbmatrix change over to bm40hsrgb

* Wrap g_led_config declaration with
2020-08-17 23:39:17 -07:00
markva
3f5f6030f8 [Keyboard] BM60 RGB ISO (#9975)
* Add BM60 RGB ISO Keyboard

* fixed link to picture

* Update keyboards/bm60rgb_iso/bm60rgb_iso.c

* Update keyboards/bm60rgb_iso/config.h

* Update keyboards/bm60rgb_iso/config.h

* Update keyboards/bm60rgb_iso/info.json

* Update keyboards/bm60rgb_iso/info.json

* Update keyboards/bm60rgb_iso/rules.mk

* Delete vscode file

* Update my new username

* Disable console and commands

* Apply suggestions from code review
2020-08-17 23:28:47 -07:00
Xelus22
b21faf768e [Keyboard] AEBoards Constellation (#9972)
* open drain

* ext65 initial

* clean up messy code

* clean up  init

* update docs stm32 only and applies  to all 3 driver

* fix USE_GPIOIv1

* place documentation at bottom

* constellation initial

* cleanup

* fix ws2812.c

* Clean up rules.mk

* Update config.h

* Update config.h

* Update readme.md

* Update rules.mk

* Update rules.mk

* add license header
2020-08-17 23:12:55 -07:00
Yoonbae Cho
3b09add349 [Keymap] yoonbae81 keymap for JJ50 (#10052)
* Create keymap for jj50

* Update rules.mk

* Update rules.mk

* Update

* Update keymap.c
2020-08-17 22:03:55 -07:00
HASU
613e5752d7 latinpad ADD BOOTMAGIC_ENABLE = lite (#10056)
* Update rules.mk

* Update config.h

* Update keyboards/latinpad/config.h
2020-08-17 21:36:16 -07:00
Maarten Dekkers
4c82a40a0a [Keyboard] Maartenwut GH80-1800 (#9981)
* Add GH80-1800

* Update readme.md
2020-08-17 21:33:27 -07:00
kaylanm
86ea85e3ab [Keymap] Add via keymap for singa (#10050) 2020-08-17 21:26:42 -07:00
dp
3942b6f372 Redox: sync RGB on left and right sides (#10022) 2020-08-17 03:16:52 -07:00
Callum Oakley
c72c01afd4 [Keymap] Removing #4072 workaround! (#9995)
* move media keys in to move layer; rearragne f keys; use send_string for rev5 compatability

* remove send_string workaround for #4072
2020-08-17 03:12:40 -07:00
Wilba
cb87f5fbeb [Keyboard] wilba.tech WT65-XT and WT65-XTX (#9999)
* Added wilba.tech WT65-XT, WT65-XTX

* Review changes

* Review changes
2020-08-17 02:21:02 -07:00
Joel Challis
d02301e59d Swap git diff logic to github action when running qmk info (#9978)
* swap git diff logic to github action

* Print out layouts when linting
2020-08-17 02:12:45 -07:00
nopunin10did
b4ae7badd4 Issue 9942: Add LSA, RSA, RCS, LSA_T, RSA_T, and RCS_T (#9943)
* Issue 9942: Add Quantum defines

Add codes to quantum_keycodes for LSA, RSA, RCS, and their corresponding _T macros

* 9942: Add documentation for new defines

Add documentation for new defines in feature request 9942. Also define SAGR and SAGR_T as aliases for RSA and RSA_T.

* Update quantum/quantum_keycodes.h

* Update docs/keycodes.md

* Update docs/keycodes.md

* Update docs/keycodes.md

* Update docs/keycodes.md
2020-08-17 02:08:15 -07:00
stanrc85
2ddcd81020 [Keymap] layer indicator lights (#10004)
* move caps lock indicator position

* use num lock and scroll lock as layer indicators
2020-08-17 01:33:57 -07:00
codecoffeecode
869b648088 Keymap Updates for DMQ Design SPIN, Boardsource 4x12, and Gingham (#9911)
* Updating keymaps for Gingham and DMQ Design SPIN and adding keymap for BoardSource 4x12

* Update keyboards/boardsource/4x12/keymaps/codecoffeecode/keymap.c
2020-08-17 01:32:07 -07:00
Takeshi ISHII
00af37a659 [Docs] Japanese translation of docs/proton_c_conversion.md (#9927)
* start translation docs/ja/proton_c_conversion.md

* Japanese translation is in progress.

* Japanese translation is in progress.

* update

* Update docs/ja/proton_c_conversion.md

* Update docs/ja/proton_c_conversion.md

* Update docs/ja/proton_c_conversion.md

* Update docs/ja/proton_c_conversion.md

* Update docs/ja/proton_c_conversion.md

* Update docs/ja/proton_c_conversion.md

* Update docs/ja/proton_c_conversion.md

* Update docs/ja/proton_c_conversion.md

* Update docs/ja/proton_c_conversion.md

* update docs/ja/_summary.md: GPIO congtrol
2020-08-17 01:19:52 -07:00
Maarten Dekkers
792a480244 [Keyboard] Maartenwut GH80-3700 (#9960)
* Add GH80-3700

* Add via keymap

* Update gh80_3700.h

* Update config.h

* LAYOUT_all -> LAYOUT_ortho_6x4

* Update readme.md
2020-08-16 19:15:30 -07:00
Mike Rix Wolfe
febf27361a update mikefightsbears keymap for Lily58 (#9988) 2020-08-16 18:44:56 -07:00
kelvinhall05
3b3a1b2a63 [Keyboard] Southpaw75 (#9844)
* adding southpaw75

* Added readme.md for Southpaw75

* adding info.json

* Update keyboards/southpaw75/rules.mk

* Update keyboards/southpaw75/southpaw75.h

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

* Update keyboards/southpaw75/config.h

* Update keyboards/southpaw75/southpaw75.h

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

* Update keyboards/southpaw75/rules.mk

* Update keyboards/southpaw75/rules.mk

* Update keyboards/southpaw75/config.h

* Update keyboards/southpaw75/readme.md

* Update keyboards/southpaw75/readme.md

* Update config.h

* Update keymap.c

* Update readme.md

* Update southpaw75.c

* Update southpaw75.h
2020-08-16 18:42:26 -07:00
Viet Yen Nguyen
194dc0984e [Keyboard] Kinesis + Pro Micro (#9944)
* [Keyboard] Kinesis + Pro Micro init

- docs for DIY
- custom matrix = lite
- a near-factory dvorak mapping
- optimized debouncing for lower latency

* chore: reformatting

* chore: update doc

* chore: cleanups according to PR feedback

* chore: PR feedback

* fix: compile error

* chore: add include

* fix: LEDs hanging after USB disconnect

* chore: enable QMK goodies by default

* chore: use semantic write pin
2020-08-16 18:37:42 -07:00
Rossman360
e071206c58 [Keyboard] Wabi handwire (#9704)
* cleaning up

* got some working bones

* working pretty well

* really livin' now

* all done

* copyright adjustments

* default keymap

* readme

* no descrip

* remove trailing slashes

* remove blank line

* remove trailing slashes

* clean up readme

* clean up rules spacing

* bootloader spacing

* made quick json from KLE converter

* remove postageboard mini references

* add actual manu and product values

* add make example

* rework

* remove double bootload define

* smoller image

* liscensed

* correct dimensions

* dimensions
2020-08-16 18:33:20 -07:00
Ryan
48bd8263a3 Fix sendstring call in onekey ADC keymap (#10031) 2020-08-17 08:10:48 +10:00
shela
249eab34e1 Update Japanese translation of _summary.md. (#10051) 2020-08-16 18:58:33 +01:00
Sendy YK
7c7feb44b2 Add numpad llayout to ai03/soyuz & personal keymap (#10030)
* ai03 Soyuz

## Description
@ai03-2725 Soyuz:
1. Update `soyuz.h` (Add `LAYOUT_5x4`)
2. Added `keymap.c`
3. Added `readme.md`

* Update readme.md

* Update readme.md

* Update keymap.c

* Update keymap.c

* Update keymap.c

* Update keymap.c

* Update soyuz.h

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

* Update keyboards/ai03/soyuz/soyuz.h

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

* Update keyboards/ai03/soyuz/keymaps/mrsendyyk/keymap.c

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

* Update keyboards/ai03/soyuz/keymaps/mrsendyyk/keymap.c

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

* Update rules.mk

* Update keymap.c

* Update keymap.c

* Update keymap.c

* Update readme.md

* Update rules.mk

* Update soyuz.h

* Update soyuz.h

* Update

* Rename readme.md to README.md

* Update keymap.c

* Rename README.md to readme.md

Co-authored-by: Joel Challis <git@zvecr.com>
2020-08-16 02:26:48 +01:00
shela
f64245b10b [keymap] Fixed an issue that long pressed alt key does not work on PSN_FN layer. (#10039) 2020-08-15 13:54:52 +01:00
Drashna Jaelre
acc4bedddc [Keyboard] Fix Planck/Rev6 compiler issue (#9953)
Specifically, don't want to have both RGBLight and RGB Matrix (with WS2812) enabled at the same time.  This will cause issues in usage, but apparently not when compiling.  Additionally, the led matrix was not encapsulated with preprocessor code.
2020-08-15 13:18:13 +01:00
Ramon Imbao
c02666c4cb Add indicator LEDs for GHS.RAR (#10028)
* Add indicator LEDs for GHS.RAR

* Update keyboards/ghs/rar/rar.c

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

Co-authored-by: Joel Challis <git@zvecr.com>
2020-08-14 14:56:27 +01:00
Ryan
517f6d2c22 MSYS2: install packages for dfu-programmer, dfu-util, teensy-loader-cli (#10007) 2020-08-13 23:26:14 +01:00
Ibnu Daru Aji
156ed69b46 Fixing squiggle's layouts in the config.qmk.fm (#10019)
* the `layout`s in `info.json` should actually reflects the `layout`s
macros in the `rev1/rev1.h`.

* fixed complicated's thumb keys.
2020-08-13 23:14:19 +01:00
Dimiter Geelen
7c7078faf3 [Keymap] DZ60RGB - Add personal keymap (#9989)
* DZ60RGB V1 - Add personal configuration

(cherry picked from commit 313ce586e998f5604ed1b559bbe90de381f0b782)

* [Keymap] Didel - Add license headers

* [Keymap] Didel - Reformat Keymap

* [Keymap] Didel - Add named layers
2020-08-12 17:28:37 -07:00
Xelus22
c957eed04b [Keyboard] AEboards Ext65 rev2 (#9482)
* ext65rev2 initial

* open drain change and config

* pwm

* pwm streams

* spi

* ws2812 spi

* oled

* enable sleep

* keymap and dissable oled

* readd oleds

* nooled

* led_update_kb revised

* update and remove board specific files and add to ext65rev2.c

* Update OLED usb status

* Update  keyboards led state

* Layer state set kb

* Return state

* Update  keyboards led state

* Update OLED usb status

* merge master and merge rev folders

* add readme

* move board_init to only if OLED is enabled

* update readme

* update rules.mk

* Remove OLED from rules.mk

* Update config.h

* show AEBoards

* Update keyboards/aeboards/ext65/rev2/rules.mk
2020-08-12 17:24:40 -07:00
Brandon Claveria
f1299f3292 fix handwired/swiftrax/cowfish PID and VID (#9922)
Co-authored-by: Swiftrax <swiftrax@gmail.com>
2020-08-13 00:08:41 +10:00
KgOfHedgehogs
ce5cdc6f8a Add jian/keymaps/via/config.h (#9948) 2020-08-13 00:05:02 +10:00
Ryan
e2d4cd1a41 Add Kiibohd bootloader type to bootloader.mk (#9908) 2020-08-12 12:28:20 +10:00
Woongki Sung
98e1e18f6b [Keyboard] Add Flatbread60, Vaneela, and VaneelaEx by nckiibs (#9817)
* creOnic added

* made requested changed by a moderator

* device name changed

* fixed flatbread60 files

* add vaneela and vaneelaEX support

* Update keyboards/nckiibs/vaneelaex/rules.mk

* vaneela rgb disabled

* include error fxied

* vaneelaex Via keymap fixed

* vaneelaex keymap fixed

* all fixed except clang part

* vaneelaex config.h error fixed, clang fixed

* Update keyboards/nckiibs/flatbread60/keymaps/default/keymap.c

* Update keyboards/nckiibs/flatbread60/keymaps/default/keymap.c

done

* Update keyboards/nckiibs/flatbread60/keymaps/default/keymap.c

done

* Update keyboards/nckiibs/flatbread60/keymaps/default/keymap.c

done

* Update keyboards/nckiibs/flatbread60/keymaps/default/keymap.c

done

* Update keyboards/nckiibs/flatbread60/keymaps/default/keymap.c

* Update keyboards/nckiibs/flatbread60/keymaps/default/keymap.c

* Update keyboards/nckiibs/flatbread60/keymaps/default/keymap.c

* Update keyboards/nckiibs/flatbread60/keymaps/default/keymap.c

* Update keyboards/nckiibs/flatbread60/keymaps/default/keymap.c

* Update keyboards/nckiibs/flatbread60/rules.mk

done

* line endings were fixed as requested

* Apply suggestions from code review

Thank you!

* requests applied and rebased

* pics changed

* flatbread via fixed

* Apply suggestions from code review

Thanks!

* Apply suggestions from code review

Done!

* Apply suggestions from code review except VIA keymaps

Questions regarding VIA keymaps are pending

* Update keyboards/nckiibs/flatbread60/keymaps/default/keymap.c

* flatbread via keymap changed

* Apply suggestions from code review
2020-08-09 07:50:48 -07:00
Andrew Kannan
215b71716a Cannonkeys via keymap fixes (#9977) 2020-08-09 18:40:52 +10:00
Drashna Jaelre
c7b56bee96 [Bug] Fix Swap Hands bug introduced by OSH (#9968)
Fixes the handling for the oneshot cleanup, so it only cleans up if it is active.  It should not cleanup of SHO is off (eg using a normal oneshot key), nor if it's actively pressed or used.  

Previous behavior BROKE swap hand key.
2020-08-08 16:41:10 -07:00
TripTrap
b506c498a7 [Keyboard] Dumbo (#9656)
* added dumbo keyboard

* added my personal keymap

* changed picture in readme

* removed rev1 folder to reduce clutter and confusion

* missed a few changes in last commit, everything should be added now

* Apply suggestions from code review

Committed all of the suggested changes except for removing the bootloader reference comments in rules.mk as i think it is handy.

* Update keyboards/dumbo/rules.mk

Removed the bootloader reference as suggested

* Apply clean up of info.json

* Apply suggestions from noroadsleft to support community layout LAYOUT_SPLIT_3x6_4 in the future_4
2020-08-08 11:24:10 -07:00
Maarten Dekkers
a536e1bd8f [Keyboard] Add Quackfire controller (#9958)
* Add Quackfire controller

* Comply with PR checklist

* Update VIA keymap

* Update keyboards/maartenwut/quackfire/readme.md
2020-08-08 10:49:21 -07:00
David Camp
78fef0a46a [Keyboard] Add "Selene" to the handwired section (#9920)
* Added handwired/selene based on handwired/106_with_trackpoint

* now at least parially working

* Selene Firmware 1, ready

* Updated Readme to align more with Template

* Added URL to info.json

* Fix status Lights being wired incorrectly

* Update keyboards/handwired/selene/config.h

* Update keyboards/handwired/selene/keymaps/Bpendragon/keymap.c

* Update keyboards/handwired/selene/selene.c

* Update keyboards/handwired/selene/selene.h

* Changes for PR requested by fauxpark

* Adds `default` keymap
* Renames `Bpendragon` to `bpendragon`
* Removes uneeded descriptors and options
* Simplifies return statement in `keymap.c`
* Removes trailing slashes from layout in `keymap.c`
* Updates `readme.mk` to reflect default keymap
* Aligns comments in `rules.mk`

* Forced folder name update to lowercase

* Apply suggestions from code review
2020-08-07 13:31:22 -07:00
t-miyajima
245797f6b9 [keyboard] Add chavdai40 keyboard (#9820)
* On branch add_chavdai40_keyboard

Changes to be committed:
	new file:   keyboards/chavdai40/boards/GENERIC_STM32_F042X6/board.c
	new file:   keyboards/chavdai40/boards/GENERIC_STM32_F042X6/board.h
	new file:   keyboards/chavdai40/boards/GENERIC_STM32_F042X6/board.mk
	new file:   keyboards/chavdai40/bootloader_defs.h
	new file:   keyboards/chavdai40/chavdai40.c
	new file:   keyboards/chavdai40/chavdai40.h
	new file:   keyboards/chavdai40/chconf.h
	new file:   keyboards/chavdai40/config.h
	new file:   keyboards/chavdai40/halconf.h
	new file:   keyboards/chavdai40/info.json
	new file:   keyboards/chavdai40/keymaps/42keys-dvorak/config.h
	new file:   keyboards/chavdai40/keymaps/42keys-dvorak/keymap.c
	new file:   keyboards/chavdai40/keymaps/42keys-eucalyn/config.h
	new file:   keyboards/chavdai40/keymaps/42keys-eucalyn/keymap.c
	new file:   keyboards/chavdai40/keymaps/42keys-qwerty/config.h
	new file:   keyboards/chavdai40/keymaps/42keys-qwerty/keymap.c
	new file:   keyboards/chavdai40/keymaps/44keys-dvorak/config.h
	new file:   keyboards/chavdai40/keymaps/44keys-dvorak/keymap.c
	new file:   keyboards/chavdai40/keymaps/44keys-eucalyn/config.h
	new file:   keyboards/chavdai40/keymaps/44keys-eucalyn/keymap.c
	new file:   keyboards/chavdai40/keymaps/44keys-qwerty/config.h
	new file:   keyboards/chavdai40/keymaps/44keys-qwerty/keymap.c
	new file:   keyboards/chavdai40/keymaps/default/config.h
	new file:   keyboards/chavdai40/keymaps/default/keymap.c
	new file:   keyboards/chavdai40/mcuconf.h
	new file:   keyboards/chavdai40/readme.md
	new file:   keyboards/chavdai40/rules.mk

* commit suggestions of zvecr and fauxpark, thanks

* commit suggestions of fauxpark, thanks

* commit suggestions of fauxpark, thanks

* commit suggestions of drashna, thanks
2020-08-07 11:27:20 -07:00
KDon
a260cbbea6 [Keyboard] Add kabedon keyboards (#9929)
* Add kabedon keyboards

* #define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 2047

* change README.md

* Update README.md

* Update config.h

* Update keymap.c

* Update rules.mk

* Update rules.mk

* Update README.md

* Update info.json

* Update kabedon980.c

* Update keymap.c

* Update rules.mk

* Update config.h

* Update config.h

* Update info.json

* Update README.md

* Update rules.mk

* Update README.md

* Update kabedon980.c

* Update rules.mk

* Update rules.mk

* Update rules.mk

* Update rules.mk

* Update rules.mk

* Update README.md

* Update README.md

* Update info.json
2020-08-07 11:12:14 -07:00
ai03
99905dcfa3 [Keyboard] Add ai03 Vega (#9850)
* Make initial set of files

* Update keymap

* Cleanup rules.mk

* Update keyboards/ai03/vega/keymaps/via/keymap.c

* Update keyboards/ai03/vega/config.h

* Update keyboards/ai03/vega/readme.md

* Update keyboards/ai03/vega/readme.md

* Update keyboards/ai03/vega/rules.mk

* Add license headers

* Apply suggestions from code review
2020-08-07 10:39:29 -07:00
Yasuhiro SHIMIZU
55102ed980 update yshrsmz lily58 keymap (#9937) 2020-08-07 10:36:32 -07:00
Tom Barnes
24c898218b [Keymap] add mini_bom chorded keymap (#9916)
* add mini_bom chorded keymap

* Update keymap.c

* Update config.h

* Update keyboards/centromere/keymaps/mini_bom/config.h

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

* Update keyboards/centromere/keymaps/mini_bom/rules.mk

* Update keyboards/centromere/keymaps/mini_bom/keymap.c
2020-08-07 10:26:02 -07:00
Jan Christoph Ebersbach
7d2cfadb55 handwired/dactyl_manuform/5x6_5: fix broken keyboard and keymap reference (#9921) 2020-08-07 04:40:41 -07:00
Maarten Dekkers
06f698a496 Fix Eon95 info.json (#9934) 2020-08-07 04:13:35 -07:00
TerryMathews
395fd7bb56 Blocked65: add support for VIA Configurator (#9938)
* Update config.h

* Create keymap.c

* Create rules.mk
2020-08-07 03:59:41 -07:00
mechlovin
fc8cf8ec82 [Keyboard] Adelais En Ciel rev2 (#9834)
* add

* update

* update

* update

* Update config.h

* delete description config.h & change default folder
2020-08-07 03:46:16 -07:00
Ibnu Daru Aji
242336d475 keymap for squiggle goldberg. (#9909) 2020-08-07 19:43:08 +10:00
James Young
4e8af9d41b Remove HD44780 References, Part 2 (#9918)
* remove HD44780_ENABLE rules: C-F

* remove HD44780_ENABLE config: C-F
2020-08-07 02:06:14 -07:00
Whale Mo
871d35aa43 [Keyboard] Add Whale's Split Keyboard(ver.3) (#9859)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2020-08-06 22:47:59 -07:00
kb-elmo
2d8703f6cc [Keyboard] add kb-elmo boards (#9898)
* add kb-elmo boards

* Apply suggestions from code review

* Apply suggestions from code review

* Apply suggestions from code review

* fix wrong names

* fix VID and UID
2020-08-06 20:47:00 -07:00
Philip (Han) Suh
c125d0a7a0 [Keyboard] Re-initial commit of ztboards (#9869)
* Re-initial commit of ztboards

* Added info.json

* Made changes to info.json

* Update keyboards/ztboards/after/config.h

* Update keyboards/ztboards/after/rules.mk

* Update keyboards/ztboards/noon/rules.mk

* Update keyboards/ztboards/noon/config.h

* Update keyboards/ztboards/after/config.h

* Update keyboards/ztboards/noon/config.h

* Update keyboards/ztboards/after/config.h

* Update keyboards/ztboards/after/info.json

* Update keyboards/ztboards/noon/info.json

* Update noon.h

* Update keymap.c

* Update keymap.c

* Update keymap.c

* Update keymap.c

* Update noon.h

* Update keymap.c

* Update keymap.c

* Update noon.h
2020-08-06 20:20:11 -07:00
NightlyBoards
997d1b2bb5 Added a via keymap folder for n87 (#9885)
* Create Alter folder

* Revert "Create Alter folder"

This reverts commit 361103b821.

* Added a via keymap folder

* Edited files based on requested changes
2020-08-06 15:41:15 -07:00
x1
db54a7b79e [Keyboard] Add kudox via compatibility (#9875)
* Modify VENDOR_ID of kudox-keyboard series.

* Add via support for kudox/rev3.

* Add via support for kudox/columner.

* Add via support for kudox-game keyboard.

* Remove info.json from kudox/rev1.

* Revert kudox/rev1/info.json.

* Remove redundancy spaces.

* Add key_count on kudox/**/info.json.

* Remove unsupported items from info.json.

* Modify to use rgblight_mode from rgblight_mode_noeeprom

* Remove unneed line from info.json

* Revert keyboards/kudox/rev1/info.json
2020-08-06 15:32:32 -07:00
Reibl János Dániel
671d066c84 [Keyboard] Add handwired 12*5 blackpill keyboard (#9855)
* Add new handwired keyboard with F401 blackpill

* Re-indent

* Add README.md

* Apply suggestions from code review

* Re-indent

* Add README.md

* Apply suggestions from code review

* Fix spacing

* Modify keymap
Add license header
2020-08-06 15:30:16 -07:00
vattern
b531bd3b04 [Keyboard] Add new "stoutgat" keyboard (#9837)
* Add new "stoutgat" keyboard

Add new 65% ISO keyboard "stoutgat" with dual encoders

* Apply suggestions from code review

* Update readme with information about the keyboard

* Fix erroneous trailing comma in info.json

* Fix layout bits for qmk info

* Update keyboards/stoutgat/info.json

* Update keyboards/stoutgat/stoutgat.h

* Fix keymap and macro after updates

* Apply suggestions from code review

* Update keyboards/stoutgat/info.json

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

* Update keyboards/stoutgat/info.json

* Update keyboards/stoutgat/readme.md

* Fix encoder volume bug

* Adding 65_iso and 65_ansi layouts

* Update keyboards/stoutgat/config.h

* Update keyboards/stoutgat/rules.mk
2020-08-06 15:18:34 -07:00
Nick Brassel
8dc2502177 Add PR checklist document. (#9913)
* Add PR checklist document.

* Update docs/pr_checklist.md

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

* Apply suggestions from code review

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

* Reword the lower/raise/adjust suggestion somewhat for clarity.

* Add suggestion from @Didel for coding conventions.

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-08-07 06:16:14 +10:00
moyi4681
547410b655 [Keyboard] add dztech/bocc keyboard (#9794)
* Update readme.md

* add bocc keyboard

* Update bocc.c

* Update keymap.c

* Update readme.md

* Update config.h

* Update keyboards/dztech/bocc/config.h

* Update keyboards/dztech/bocc/rules.mk

* Update keyboards/dztech/bocc/bocc.c

* Update keyboards/dztech/bocc/bocc.c

* Update keyboards/dztech/bocc/readme.md

* Update keyboards/dztech/bocc/readme.md

* Update keyboards/dztech/bocc/rules.mk

* Update keyboards/dztech/bocc/rules.mk

* Update bocc.c

* Update bocc.h

* Update bocc.c

* Update config.h

* Update keymap.c

* Update keymap.c

* Update keyboards/dztech/bocc/config.h

* Update keyboards/dztech/bocc/keymaps/default/keymap.c

* Update keyboards/dztech/bocc/bocc.h

* Update keyboards/dztech/bocc/info.json

* Update keyboards/dztech/bocc/keymaps/default/keymap.c

* Update keyboards/dztech/bocc/keymaps/via/keymap.c

* Update keyboards/dztech/bocc/keymaps/via/keymap.c

* Update keyboards/dztech/bocc/keymaps/via/keymap.c

* Update keyboards/dztech/bocc/keymaps/via/keymap.c

* Update bocc.h

* Update keymap.c

* Update keymap.c

* Update keymap.c

* Update bocc.h

* Update keyboards/dztech/bocc/bocc.h
2020-08-06 12:41:45 -07:00
Nguyen Minh Hoang
1b4f47c8ee Fix configuration data for keyboard pom_keyboards/tnln95 (#9904)
* fix configuration data, comment out unused layout

* fix keymap

* add info for layout all

* change keymap name
2020-08-06 12:19:09 -07:00
obosob
d9fe755f7e [Keyboard] Add Arch-36 keyboard (#9688)
* Add Arch-36 keyboard

* Apply suggestions from code review

Update based on PR Review comments

* Apply suggestions from code review

Update to PR comments

* Fix Build

* Use full rules.mk template for Arch-36 keyboard

* Reduce default firmware size

* Update based on PR comments

* Fix Copyright statement on arch_36:obosob keymap

* Apply suggestions from code review
2020-08-06 12:08:20 -07:00
Danilo de Klerk
c8b721d7c6 split_3x5_3 layout support (#9624)
* Add split_3x5_3 support to Minidox

* Add split_3x5_3 support to Miniaxe

* Add LAYOUT_mini to Centromere

This layout macro removes the need or KC_NO keycodes in the keymap.

* Add split_3x5_3 support to Centromere

* Add split_3x5_3 support to suihankey split

* Add LAYOUT_mini to centromere/info.json

* Add LAYOUT_mini to crkbd

* Add split_3x5_3 support to crkbd

* Change mini layout names

* Rename main layouts for split_3x6_3 keyboards

* Use split_3x5_3 macro for remaining keyboards

* Update relevant info.json files

* Fix suihankey/split/alpha macro

* Add layout aliases for suihankey
2020-08-06 10:36:26 -07:00
sotoba
60d8d8677a Update default layout for craftwalk (#9888)
* fix cratfwalk default layout
2020-08-06 10:18:16 -07:00
russellsherman
0d04d95326 [Keymap] Adds OSX layout with additional media keys (#9894) 2020-08-06 10:16:34 -07:00
Brandon
7222df36e7 Added VIA keymap for bm60rgb (#9897) 2020-08-06 01:10:52 -07:00
NightlyBoards
b8438c74e3 [Keymap] Add via keymap folder for N2 keyboard (#9886)
* Create Alter folder

* Revert "Create Alter folder"

This reverts commit 361103b821.

* Add via keymap folder for n2 keyboard
2020-08-06 01:05:06 -07:00
sh-xguitar
cb9b81cc10 [Keyboard] added ASH-XIIX keyboard (#9833)
* Create readme.md

* Update readme.md

* Update readme.md

* Create ash_xiix.c

* Create ash_xiix.h

* Create info.json

* Create config.h

* Create rules.mk

* Create keymap.c

* Update keyboards/ash_xiix/rules.mk

* Update keyboards/ash_xiix/config.h

* Update keyboards/ash_xiix/config.h

* Update keyboards/ash_xiix/config.h

* Update keyboards/ash_xiix/info.json

* Update keyboards/ash_xiix/info.json

* Update keyboards/ash_xiix/readme.md

* Update readme.md

* Update readme.md
2020-08-06 01:03:27 -07:00
aerialviews007
904c5613f4 [Keymap] Adding Custom Keymap for Let's Split (#9423)
* add

* Delete rules.mk

* Update keymap.c

* Update keymap.c

* Update keyboards/lets_split/keymaps/aerialviews007/keymap.c

* Update keyboards/lets_split/keymaps/aerialviews007/keymap.c

* Update keyboards/lets_split/keymaps/aerialviews007/keymap.c

* Update keyboards/lets_split/keymaps/aerialviews007/keymap.c

* Update keyboards/lets_split/keymaps/aerialviews007/keymap.c

* Update keyboards/lets_split/keymaps/aerialviews007/keymap.c

* Update keyboards/lets_split/keymaps/aerialviews007/keymap.c

* Update keyboards/lets_split/keymaps/aerialviews007/keymap.c
2020-08-05 15:11:35 -07:00
Sendy YK
37cbf7bcec [Keymap] Add ANSI with Arrow Layout & RGB Underglow as a Caps Lock Indicator (#9910)
* KBDfans DZ60 ANSI with Arrow also RGB Underglow as a Caps Lock Indicator

* Change all the KC_NOs to _______ (seven underscores)

* change all the KC_NOs to _______ (seven underscores)

* Update keymap.c

* Update readme.md

Update build environment setup link, make instructions link, and make instructions link.
2020-08-05 14:45:57 -07:00
Drashna Jaelre
4c14b11fc7 Add Indicator flag for RGB Matrix (#9933)
* Add Indicator flag for RGB Matrix

This adds a new flag for the RGB Matrix feature that lets you specify if the LED is an indicator LED, to be used to indicate the system state of the keyboard (eg caps/num/etc lock status, layer indication, modifer status, etc).

* Better formatting of table
2020-08-05 13:29:04 -07:00
James Young
3df52050c1 [Keyboard] Fix Configurator data for Mechlovin Hannah910 rev2 (#9903)
* fix Configurator data

* rework layout macros

* enable 65_ansi_blocker Community Layout support

* fix layout macro references in info.json

* update rules.mk per fauxpark

* update rules.mk per fauxpark II
2020-08-05 11:43:31 -07:00
BeefaloKing
349646bfe0 Fix RGB_DISABLE_TIMEOUT overflow warning (#9866) (#9874)
* Fix RGB_DISABLE_TIMEOUT overflow warning (#9866)

* Adjust capitalization (#9874)
2020-08-04 21:03:29 -07:00
shela
62c0146419 [Keymap] Update my keymap (#9849) 2020-08-04 20:19:27 -07:00
Jesús David
7b85962673 Add via compatibility to Daisy 40 (#9805)
* Add via compatibility to Daisy 40

* Move via config to its own keymap

* Use lite bootmagic

* Add fourth layer to keymap
2020-08-04 00:10:06 -07:00
gtips
19795a4dcc [Keyboard] Fixed readme.md for reviungs (#9838)
* [Keyboard] Add keyboard Reviung41

* Modified files

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

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

* modified keyboards/reviung41/readme.md

* modified keyboards/reviung41/readme.md

* modified keyboards/reviung41/readme.md

* Update readme.md

Change the image photo of readme.md.

* [Keyboard] Add reviung61

* Update readme.md

* fix keyboards/reviung61/ and add keymap default_rgb

* fix keyboards/reviung61/info.json

* fix keyboards/reviung61/info.json

* remove keyboards/reviung61/keymaps/default/config.h

* [keyboard] Fixed readme.md for reviung39 and 61.
2020-08-03 23:23:24 -07:00
moyi4681
13de2f415f [Keyboard] Add volcano660 (#9795)
Co-authored-by: ridingqwerty <george.g.koenig@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2020-08-03 22:59:11 -07:00
Álvaro A. Volpato
f047840d0f [Keyboard] Add ArcticPCB pre-Alpha support (#8479)
* Add initial ArcticPCB support

* Added README

* Solve info.json comma issue

* Apply suggestions from noroadsleft code review

Use the LAYOUT_60_tsangan_hhkb Community Layout

* Apply suggestions from tzarc

* Add license header to arctic.c, arctic.h and config.h

* Remove redundant tsangan keymap

* Remove tsangan compilation suggestion from readme
2020-08-03 22:13:33 -07:00
Marco Syfrig
fb297a5644 [Docs] small text and formatting fixes in vscode manual (#9156)
* small text and formatting fixes in vscode manual

fix double opening <kbd> tags for correct formatting
expand two points for better understanding

* restored <kbd>, clarified how to open the terminal

restored <kbd> tags that were deleted with the last commit; they are correct as they were to have the whole menu "breadcrumb" nested inside a box
clarified how to open the terminal
escaped backtick for shortcut Ctrl+` as I’ve added backticks for code on the same line

* Update docs/other_vscode.md
2020-08-03 19:49:26 -07:00
mechlovin
2c9e210c36 [Keyboard] add Hannah910 rev3 (#9710) 2020-08-03 19:46:55 -07:00
James Young
12fce9b88d fix Dactyl-Manuform 5x6_5 compilation (#9902) 2020-08-03 00:43:27 +01:00
Nguyen Minh Hoang
00b8a12d06 [Keyboard] POM Keyboards TNLN95 (#9788)
* add keyboard tnln95

* keyboard tnln95, fix info

* Apply suggestions from code review

* keyboard tnln95, fix info (2)

* keyboard tnln95, move folder, fix info

* keyboard tnln95, fix keymap

* Apply suggestions from code review

* Apply suggestions from code review

* Apply suggestions from code review

* keyboard tnln95, fix link, comment currently not used pin

* Apply suggestions from code review
2020-08-01 00:05:35 -07:00
shela
f8a2401370 [Docs] Update Japanese translation of newbs_flashing.md. (#9819)
* Update Japanese translation of newbs_flashing.md.

* Update docs/ja/newbs_flashing.md
2020-07-31 19:08:43 -07:00
shela
3f2521115d [Docs] Update Japanese translation of newbs_getting_started.md. (#9813) 2020-07-31 18:53:35 -07:00
umi
0d405ad38e [Docs] Japanese translation of docs/internals_input_callback_reg.md (#9752)
* add internals_input_callback_reg.md translation

* update based on comment
2020-07-31 18:40:17 -07:00
shela
28c78023c5 [Docs] Update Japanese translation of newbs_building_firmware.md. (#9810)
* Update Japanese translation of newbs_building_firmware.md.

* fix original document version.

* Apply suggestions from code review
2020-07-31 17:57:31 -07:00
umi
ea3f74874f [Docs] Japanese translation of docs/other_vscode.md (#9756)
* add other_vscode.md translation

* update based on comment

* update based on comment

* update based on comment
2020-07-31 17:49:25 -07:00
shela
a88e690351 [Docs] Update Japanese translation of keymap.md. (#9807)
* Update Japanese translation of keymap.md.

* fix original document version.

* Apply suggestions from code review

* Update translation
2020-07-31 17:25:20 -07:00
shela
0f3e933db9 [Docs] Update Japanese translation of feature_backlight.md. (#9803)
* Update Japanese translation of feature_backlight.md.

* fix original document version.

* Apply suggestions from code review
2020-07-31 16:28:29 -07:00
Kyle
f3b518ae40 [Keyboard] Added a new handwired 2x3,2x4,2x5 keyboard called the Stream_cheap (#9871)
* Added a new handwired 2x3,2x4,2x5 keyboard called the Stream_cheap

stream cheap is a diy version of the El Gato Stream deck minus the LCD keys
but you can always get relegendable keycaps to change the icon if you want

* added missing commas in info.json files

* update config to change pin definition

* changed keymap.c for 2x4

was trying to add macros and multi key commands to the keymap,

i added 2 ctrl commands that have more than one key i.e. ctrl-k-c (visual studio comment hot key)

and i added a test string to see how type out a string with the press of a button

* testing more changes to the keymap to the 2x5

* Update keyboards/handwired/stream_cheap/2x3/2x3.c

* Update keyboards/handwired/stream_cheap/2x3/config.h

* Update keyboards/handwired/stream_cheap/2x3/rules.mk

* Update keyboards/handwired/stream_cheap/2x5/config.h

* Update keyboards/handwired/stream_cheap/2x5/info.json

* Update keyboards/handwired/stream_cheap/2x3/config.h

* Update keyboards/handwired/stream_cheap/2x3/info.json

* Update keyboards/handwired/stream_cheap/2x4/config.h

* Update keyboards/handwired/stream_cheap/2x4/info.json

* Update keyboards/handwired/stream_cheap/2x4/keymaps/default/keymap.c

* Update keyboards/handwired/stream_cheap/2x5/info.json

* Update keyboards/handwired/stream_cheap/2x5/config.h

* Update keyboards/handwired/stream_cheap/2x5/rules.mk

* Update keyboards/handwired/stream_cheap/2x4/2x4.c

* Update keyboards/handwired/stream_cheap/2x4/config.h

* Update keyboards/handwired/stream_cheap/2x4/info.json

* Update keyboards/handwired/stream_cheap/2x5/2x5.c

* Update keyboards/handwired/stream_cheap/2x4/rules.mk

* removed file as per request of user zvecr

* removed line in rules.mk for 2x5

* Update keyboards/handwired/stream_cheap/2x5/keymaps/default/keymap.c

* Apply suggestions from code review

changes suggested in code review
2020-07-31 16:18:06 -07:00
eniigmakeyboards
b70ac594c6 [Keyboard] Eniigma Keyboards ek65 PCB (#9836)
* Added initial files

* Update readme.md

* Update readme.md

* Update readme.md

* Update readme.md

* Update readme.md

* Reverted image file to imgur link

* Update keyboards/eniigmakeyboards/ek65/rules.mk

* Update keyboards/eniigmakeyboards/ek65/config.h

* Update keyboards/eniigmakeyboards/ek65/config.h

* Update keyboards/eniigmakeyboards/ek65/ek65.h

* Update keyboards/eniigmakeyboards/ek65/info.json

* Fixed image link in Readme

* Update keyboards/eniigmakeyboards/ek65/readme.md to remove duplicated image
2020-07-31 14:38:21 -07:00
mechlovin
a1c89fec72 [Keyboard] Kanu PCB (#9729)
* add Kanu PCB

* update

* update

* update

* Update info.json

* Update config.h

* Update info.json

* Update info.json

* update

* Update rules.mk
2020-07-31 13:19:47 -07:00
Jan Christoph Ebersbach
1a49eb5be1 [Keyboard] Add Dactyl Manuform 5x6 with 5 thumb keys (#9659)
* [Keyboard] Add Dactyl Manuform 5x6 with 5 thumb keys

* fix: remove unused code block

* fix: remove unused code block

* Remove unused build options
2020-07-31 13:03:44 -07:00
Rustam Zagirov
5bd239e1c0 Remove unnecessary break after return from documentation (#9892) 2020-07-31 15:58:55 +01:00
Brandon Schlack
53b0ee3f7e [Keyboard] Add community layouts to Savage65 (#9854) 2020-07-31 04:37:17 -07:00
moyi4681
3d2e5bfe63 add kbd67 capslock indicator (#9839) 2020-07-31 04:20:14 -07:00
shela
3c7fc3c82e [Docs] Update Japanese translation of feature_tap_dance.md. (#9808)
* Update Japanese translation of feature_tap_dance.md.

* fix original document version.

* Update docs/ja/feature_tap_dance.md
2020-07-30 22:31:34 -07:00
gadzkun
2ec2f80bfc [Keyboard] Add otd_plus keyboard (#9726) 2020-07-30 21:23:06 -07:00
Ladniy
6ff08202a5 Add info.json for Jiran keyboard (#9857)
Co-authored-by: Joel Challis <git@zvecr.com>
2020-07-31 12:59:32 +10:00
shela
06cf6982bb [Docs] Update Japanese translation of feature_ps2_mouse.md. (#9815) 2020-07-30 16:10:44 -07:00
shela
1ca7dcb0b2 [Docs] Update Japanese translation of feature_mouse_keys.md. (#9809)
* Update Japanese translation of feature_mouse_keys.md.

* fix original document version.

* Update docs/ja/feature_mouse_keys.md

* update based on comment
2020-07-30 15:22:22 -07:00
Klesh Wong
5d0c38794f [Keyboard] Add new keyboard ks63 handwired (#9712)
* [feature] add ks63 split keyboard

* [bugfix] unable to compile and some rows are not working

* [feature] add info.json / update keymap

* [bugfix] keymap and fix slave not working issue

* [bugfix] keyboard unaviable on cold boot / unable to reset the board

* [misc] fine tune keymap

* [misc] fine tune keymap

* ...

* ...

* ...

* [misc] adjust brackets position

* [misc] add readme link

* [misc] comply to coding convention

* [misc] add default keymap readme file

* Update keyboards/handwired/ks63/README.md

* Update keyboards/handwired/ks63/ks63.h

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

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

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

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

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

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

* Update keyboards/handwired/ks63/rules.mk

* Update keyboards/handwired/ks63/README.md

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

* [misc] to lowercase filename

* Update keyboards/handwired/ks63/rules.mk

* Update keyboards/handwired/ks63/rules.mk

* Update keyboards/handwired/ks63/config.h
2020-07-30 11:08:17 -07:00
NightlyBoards
83c12a516b [keyboard] Add [n]2 support (#9862)
* Create Alter folder

* Revert "Create Alter folder"

This reverts commit 361103b821.

* Add n2 keyboard

* Apply suggestions from code review

Edited config.h, keymap.c, readme.md, and rules.mk

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

* Update readme.md

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-07-30 17:44:29 +01:00
Croktopus
08f31f664a Timber Wolf - updated via keymap, reduced eeprom writing from backlight code (#9876)
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-07-31 00:52:54 +10:00
shela
9758bcb28b [Docs] Update Japanese translation of feature_macros.md. (#9767)
* Update Japanese translation of feature_macros.md.

* Update feature_macros.md

fix original document version.
2020-07-30 00:35:45 -07:00
tominabox1
4f7cd5699e [Keyboard] Add KPRepublic BM40HSRGB keyboard (#9860)
* Initial Commit

* Add readme.md's

* Add license statements, cleaned up config, readme, and rules. Removed unused features from keymap and added ascii for Adjust layer

* Update keyboards/bm40hsrgb/info.json

* Update keyboards/bm40hsrgb/config.h
2020-07-29 20:25:20 -07:00
umi
bf05f773bd [Docs] Japanese translation of docs/internals_gpio_control.md (#9751)
* add internals_gpio_control.md translation

* update based on comment

* update based on comment

* update based on comment
2020-07-29 19:44:23 -07:00
umi
de7da0b48f [Docs] Japanese translation of docs/other_eclipse.md (#9755)
* add other_eclipse.md translation

* update based on comment

* update based on comment
2020-07-29 17:01:34 -07:00
Yu Hao Wong
b3e7a4e798 Added Via keymap to Spaceman 2% Milk (#9484)
* added via support to spaceman 2% milk

* changed kc trns in layers 1-3

* changed vendor and product ID per creator suggestion
2020-07-29 15:15:53 -07:00
kaylanm
0091897cc8 Add via configuration for adelheid. (#9830)
* Add via configuration for adelheid.

* Reformat adelheid VIA keymap.
2020-07-29 10:42:40 -07:00
Frothy
758bf20706 Added Via-enabled keymap for Physix (#9825)
* Added Via-enabled keymap for Physix

* Update keyboards/hineybush/physix/keymaps/via/keymap.c
2020-07-29 10:32:48 -07:00
umi
ea1c7f1856 [Docs] Japanese translation of docs/one_shot_keys.md (#9754)
* add one_shot_keys.md translation

* update based on comment

* update based on comment
2020-07-29 19:02:37 +09:00
umi
a57b313153 [Docs] Japanese translation of docs/mod_tap.md (#9753)
* add mod_tap.md translation

* update based on comment

* update based on comment
2020-07-29 19:01:42 +09:00
umi
7ff85e241b [Docs] Japanese translation of docs/how_keyboards_work.md (#9683)
* add how_keyboards_work.md translation

* update based on comment

* update based on comment

* update based on comment
2020-07-29 19:00:26 +09:00
umi
7c7a2be4b0 [Docs] Japanese translation of docs/how_a_matrix_works.md (#9682)
* add how_a_matrix_works.md translation

* update based on comment

* update based on comment
2020-07-29 18:59:44 +09:00
chemicalwill
51dbca2332 [Keyboard] add bear_face/v2 (#9642)
* [keyboard] bear_face/v2 initial commit

* restructured keyboard dir for multiple versions
* fixed .json layouts for ISO
* reformatted hard tabs to soft tabs
* updated readmes

* [keyboard] removed top-level info.json, keymaps

* [bear_face/v2] changed matrix height, arrow key labels

* fixed height 6 instead of 5
* symbols for arrows now directions (i.e. "Left" etc.)

* [bear_face/v2] fixed ISO enter in .json

* corrected placement for ISO enter

* Update rules.mk

* DEFAULT_FOLDER = bear_face/v1

* [bear_face] fixed matrix width in info.json

* true matrix width is 15
* updated for v1 and v2 info.json

* Update keyboards/bear_face/config.h

* Update keyboards/bear_face/v1/info.json

* Update keyboards/bear_face/v2/info.json

* Update keyboards/bear_face/v2/info.json

* Update keyboards/bear_face/rules.mk

* Fixed default keymap tabs

* changed from tabs to spaces
2020-07-27 22:42:32 -07:00
Leivince John Marte
bcfb70a4cb [Keyboard] PH Arisu (#9612)
* Port Arisu to QMK

* Update Change name to PH Arisu

* Update PH Arisu for PR

* Update Bootloader

* Using Pro Micro

* Update Manufacturer Name

* Clean rules.mk

* Update keyboards/ph_arisu/config.h

* Update keyboards/ph_arisu/config.h

* Update keyboards/ph_arisu/config.h

* Update keyboards/ph_arisu/config.h

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

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

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

* Update keyboards/ph_arisu/rules.mk

* https://github.com/qmk/qmk_firmware/pull/9612#discussion_r451659279 Update info.json using converter

* Fixed Clean endif

* LAYOUT not defined Error on Compile fix

* Fix implicit declaration of function 'LAYOUT'

* Update VIA keymap change KEYMAP to new LAYOUT method

* Update keyboards/ph_arisu/config.h

* Update Remove RGB_DI_PIN

* Update keyboards/ph_arisu/config.h

* Update keyboards/ph_arisu/readme.md

* Update keyboards/ph_arisu/readme.md

* Update keyboards/ph_arisu/ph_arisu.h

* Update keyboards/ph_arisu/ph_arisu.h

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

* Update keyboards/ph_arisu/readme.md

* Update keyboards/ph_arisu/config.h

* Add MO(1) on Keymaps

* Update info.json for QMK configurator support

* Add PH Arisu Image

* Use Smaller Size Image for Keyboard

* Change Image Host to Imgur

* Fix Imgur url

* Fix Imgur url

* Update Change Keyboard Maintainer

* Update Change Hardware Support to Pro Micro ATmega32U4

* Update keyboards/ph_arisu/config.h

* Update keyboards/ph_arisu/ph_arisu.h

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

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

* Update keyboards/ph_arisu/readme.md

* Update keyboards/ph_arisu/rules.mk

* Update Move ph_arisu to nightly_boards directory

* Update Readme make command

* Update keyboards/nightly_boards/ph_arisu/rules.mk
2020-07-27 22:39:31 -07:00
Croktopus
296f267f2b Timber Wolf - updated keymaps, fixed info.json (#9787)
* updated keymaps, fixed info.json

* fixed info.json overlaps

* Update keyboards/metamechs/timberwolf/config.h
2020-07-27 19:35:59 -07:00
TerryMathews
14efd8aa41 [Keyboard] Initial support for TKC GodSpeed75 (#9723)
* Initial support for TKC GodSpeed75

* Correct compile error

* Update keyboards/tkc/godspeed75/rules.mk

* Update keyboards/tkc/godspeed75/readme.md

* Delete bootloader_defs.h

* Update keyboards/tkc/godspeed75/keymaps/via/keymap.c

* Update keyboards/tkc/godspeed75/readme.md

* Update keyboards/tkc/godspeed75/config.h

* Update keyboards/tkc/godspeed75/readme.md
2020-07-27 19:34:33 -07:00
AlisGraveNil
e999ade100 [Keyboard] Numeros macropad (#9725)
* First Push

* Update config.h

* Update numeros.c

* Update numeros.h

* Update rules.mk

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

* Update keyboards/clawsome/numeros/readme.md

* Update keyboards/clawsome/numeros/rules.mk

* Update keyboards/clawsome/numeros/info.json

* Update keyboards/clawsome/numeros/info.json

* Update keyboards/clawsome/numeros/rules.mk

* Update keyboards/clawsome/numeros/numeros.h

* Update keyboards/clawsome/numeros/info.json

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

* Update keyboards/clawsome/numeros/numeros.h

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

* Update keyboards/clawsome/numeros/numeros.c

* Update keyboards/clawsome/numeros/config.h

* Update keyboards/clawsome/numeros/rules.mk

* Update keyboards/clawsome/numeros/readme.md

* Update keyboards/clawsome/numeros/readme.md
2020-07-27 19:03:54 -07:00
Krishna Mani
f5fe6fe5cc [Keyboard] Add akegata denki device one (#9690)
* add device one

* fix layouts

* add other layouts

* column fixes, device id changes

* layouts cleanup, add readme

* add info.json, fix readme

* add template readme

* add smaller image

* fix image links, address requested changes

* Apply suggestions from code review

* Update keyboards/device_one/keymaps/ansi_split_backspace/keymap.c

* add akegata vendor folder

* Apply suggestions from code review
2020-07-27 18:40:57 -07:00
Ladniy
84cd07b0d3 [Keyboard] Jiran keyboard (#9628)
* Add jirand folder from local catalog

* Add controller into readme

* Replace image of PCB

* Create rev2 folder for RGB version

* Rename keymap folder

* Add new rev for RGB light version

* Change some keycodes for RGB light

* Remove some unnecessary code

* Add via keymap

* Activate RBG light support

* Update some info

* Update layout image link

* Update keyboards/jiran/config.h

* Update keyboards/jiran/keymaps/via/config.h

* Update keyboards/jiran/keymaps/default/rules.mk

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

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

* Update keyboards/jiran/rev1/config.h

* Update keyboards/jiran/rev1/config.h

* Update keyboards/jiran/rules.mk

* Update keyboards/jiran/rules.mk

* Update keyboards/jiran/rules.mk

* Update keyboards/jiran/rev2/config.h

* Update keyboards/jiran/rev2/config.h

* Update keyboards/jiran/rules.mk

* Update keyboards/jiran/rev2/rev1.c

* Update keyboards/jiran/rules.mk

* Update keyboards/jiran/rules.mk

* Update keyboards/jiran/rules.mk

* Some fix

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

* Update keyboards/jiran/rev1/config.h

* Update keyboards/jiran/rev1/config.h

* Update keyboards/jiran/rev2/config.h

* Fix default keymap error

* Update keyboards/jiran/rules.mk

* Update keyboards/jiran/rev2/rules.mk

* Update keyboards/jiran/rev1/rules.mk

* Update keyboards/jiran/config.h

* Update keyboards/jiran/rev1/config.h

* Update keyboards/jiran/rev2/config.h

* Delete by request

* Update keyboards/jiran/config.h

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

* Update keyboards/jiran/rules.mk

* Update keyboards/jiran/rules.mk

* Update keyboards/jiran/rules.mk

* Change some info by request

* Update keyboards/jiran/rev1/rev1.h

* Remove by request
2020-07-27 17:48:48 -07:00
tominabox1
6104609afa QAZ Keyboard (#9714)
* Initial qaz commit

* Enable combos

* Improved default keymaps

* Fixed configurator json

* Via initial

* Corrected VIA json

* touch

* Via fixes

* Fixed via matrix

* Formatting

* Add lighting to qaz

* Add rgb animations, add rgb to l2, fix error in via json, enable rgblight by default

* Update QAZ readme

* Remove VIA json, prep for PR

* Correct default bootloader for pro-micro

* Remove accidentally added submodules

* Change names of layout macros

* Move combo defs to keymap folders, fix layout names in info.json

* Fixes transposition of comma and dot keys on default keymaps

* Update keyboards/qaz/keymaps/default/config.h

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

* Update keyboards/qaz/keymaps/default_big_space/config.h

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

* Update keyboards/qaz/rules.mk

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

* Update keyboards/qaz/readme.md

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

* Update keyboards/qaz/rules.mk

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

Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2020-07-27 18:10:40 -04:00
Michael Stapelberg
5cbac94d08 [Keyboard] add support for the kinT kinesis keyboard controller (kint2pp variant) (#9687)
* branch keyboards/kinesis/kint2pp from keyboards/kinesis/stapelberg

Changes will be made in the next commit

* [Keyboard] update wiring for kinT (kint2pp variant)

* add QMK plumbing

* Apply zvecr’s suggestions from code review

* Update keyboards/kinesis/kint2pp/config.h

* Update keyboards/kinesis/kint2pp/config.h

* remove superfluous config.h include
2020-07-27 11:44:05 -07:00
Andrew Kannan
e937fc4513 Add Instant65 to QMK (#9804)
* Add Instant65 to QMK

* Fix via map

* Apply suggestions from code review

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

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-07-27 14:29:09 -04:00
Andrew Kannan
b0e99c803d Atlas Updates (#9343)
* Update atlas keyboard files and default keyboard layout

* Remove wierd LT things

* Update keyboards/cannonkeys/atlas/keymaps/via/keymap.c

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

Co-authored-by: Joel Challis <git@zvecr.com>
2020-07-27 12:16:21 -04:00
umi
463c97f4c6 [Docs] Japanese translation of docs/feature_stenography.md (#9525)
* add feature_stenography.md translation

* update based on comment

* Update docs/ja/feature_stenography.md

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

* Update docs/ja/feature_stenography.md

ご指摘ありがとうございます。
「速記プロトコル」で更新しました。

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

Co-authored-by: shela <shelaf@users.noreply.github.com>
Co-authored-by: s-show <s1shimz@gmail.com>
2020-07-27 20:31:19 +09:00
Ryan
98f4cb4f87 Fix Squiggle info.json (#9841) 2020-07-27 12:22:14 +01:00
codecoffeecode
776b0bd2c9 [keymap] Adding personal keymap for Gingham (#9828) 2020-07-27 20:00:10 +10:00
Rys Sommefeldt
f0926f6c2a [keymap] Update rys keymap with 5th semi-secure token and remap layer 1 (#9822) 2020-07-27 19:59:36 +10:00
kaylanm
245d355176 Add via keymap for kbdfans/kbdpad_mk2. (#9829) 2020-07-27 19:58:43 +10:00
Josh Hinnebusch
c3a9c8c177 update sm68 matrix, add via support (#9741)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: hineybush <hineybushkeyboards@gmail.com>
2020-07-27 19:57:57 +10:00
kakunpc
1ef5c639ce Changed the VID/PID for choc_taro keyboards. (#9800) 2020-07-27 02:37:00 -07:00
CalciumNitride
d939f1041b Fix Arabica37's default RGBLED NUM (#9797)
* adding arabica37

* jp_keymap

* update

* try refactor to use split_common

* fix and update to use split_common

* update and adjust

* clean up

* update

* update

* fix keymap.c

* update

* oled logo

* fix info.json

* remove pro_micro.h

* remove KC_ macro

* move font file

* fix led num
2020-07-27 02:15:49 -07:00
Dmitry Nosachev
dfa3017c92 [Keyboard] Add keyboard Zenith Z-150 (#9811)
* z150 black pill

* z150 docs

* z150: json layout

* Update keyboards/handwired/z150/keymaps/zyxx/keymap.c

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

* Update keyboards/handwired/z150/rules.mk

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

* Update keyboards/handwired/z150/rules.mk

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

* Update keyboards/handwired/z150/z150.c

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

* Update keyboards/handwired/z150/config.h

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

* Delete bootloader_defs.h

Useless file

* Update keyboards/handwired/z150/readme.md

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

Co-authored-by: Joel Challis <git@zvecr.com>
2020-07-26 22:44:50 +01:00
Salicylic-acid3
b49c5a562d Added via support for 7sKB (#9799)
* Added via support for 7sKB

-Changing the VID
-Add a keymap via

* Update keyboards/7skb/keymaps/via/keymap.c

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

* Update keyboards/7skb/rev1/config.h

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

* Change of VID

I got a new VID and I'm changing the VID.

Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-07-26 22:42:36 +01:00
John Helveston
688426b502 Adding keymaps for iris and kyria keyboards (#9783)
* updated iris and kyria keymaps

* added symbols I forgot to add to keymap

* Update keyboards/keebio/iris/keymaps/jhelvy/keymap.c

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

* condense code

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

* condense code

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

* made another small fix to a missing symbol in my iris keymap

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-07-26 22:35:46 +01:00
Brandon Schlack
a6a13f9626 [Keyboard] Add Keybage folder for RadPad (#9745)
* [Keyboard] Initial Keybage/RadPad firmware

* [Keyboard] RadPad apply pull request feedback

- Change `LAYOUT_***_Encoders` to `LAYOUT_***_encoders` in <keyboard>.h
- Remove bootloader comments and unnecessary build options from rules.mk
- Use `LTO_ENABLE`
- Remove empty config.h from default keymap
- Remove trailing ` \` from keymap

* [Keyboard] RadPad fix info.json

- Change `LAYOUT_***_Encoders` to `LAYOUT_***_encoders` in info.json

* [Keyboard] Add host LED status to OLED display

* [Keyboard] Use LAYOUT_4x4_encoders, not LAYOUT

* [Keyboard] Use LAYOUT_4x4_encoders, not LAYOUT

* [Keyboard] Remove DESCRIPTION from config.h
2020-07-26 22:32:04 +01:00
Drashna Jaelre
d2be3a7339 Fix Variable Trace handling (#9831)
It wants a number, but a number of files have it set to "no", even
though it's commented out.  This means that if you set it to no, it
will cause a compiler error.  This sets the default to "no", and
checks to make sure it's not set to "no" before processing it, and
striping the value from it.
2020-07-26 21:57:37 +01:00
James Young
aaf58155c7 Remove HD44780 References, Part 1 (#9052)
* remove HD44780_ENABLE rules: 0-9, A-B

* remove HD44780_ENABLE config: 0-9, A-B
2020-07-27 06:11:16 +10:00
Valen Cheung
12946d0565 Keymap update - massdrop/ctrl/responsive_pattern (#8730)
* rewrite keyboards/massdrop/ctrl/keymaps/responsive_pattern/keymap.c in respopnse to the last update (#5328)

* remove print.h

* changed default parameters, modified readme
2020-07-26 09:45:35 +10:00
QMK Bot
95c742ec27 format code according to conventions [skip ci] 2020-07-25 22:33:55 +00:00
Joel Challis
d91987ab9a Enable OLED support for Teensy 3.2/LC (#7591)
* I2C_TIMEOUT is not defined on arm teensy

* Work round teensy having different ChibiOS config options

* Stash OLED conf files

* update comment

* update comment

* Remove stm32 alias to allow teensy alt mode
2020-07-26 07:50:56 +10:00
RJ Bernau
db540e2832 Adding VIA support for Dactyl Manuform 5x7 (#9462)
* adding via support for Dactyl Manuform 5x7

* Changing Vendor ID from FEED to 444D (DM)

* Update keyboards/handwired/dactyl_manuform/4x6/config.h

Fixing typo in Dactyl Manuform 4x6 Product Id

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

* Update keyboards/handwired/dactyl_manuform/4x5/config.h

Fixing typo in Dactyl Manuform 4x5 Product Id

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

Co-authored-by: Roland Bernau <roland@bernau.dev>
Co-authored-by: Joel Challis <git@zvecr.com>
2020-07-25 22:36:39 +01:00
Yoonbae Cho
a0b10593df Keymap for keebio/iris rev.4 supporting VIA (#9749)
* Create keymap.c

* Create config.h

* Update first revision

* Enhance keymap

* Enhance keymap

* Update keymap

* Make Via compatable

* Support mouse key

* Apply reviewer's change requests

* Adjust mouse factors

* Update config.h
2020-07-25 09:44:45 -07:00
Ingar Almklov
65f4b94cda Pinky4: add via support (#9711)
* Pinky4: add via support

* Pinky4/via: simplify rules.mk

* Pinky4/via: use built-in for KC_TRANS, enum for layer
_names

* Pinky4/via: remove redundant rules

* Pinky4/via: remove unnecessary slashes

* Pinky4/via: don't override default bootloader
2020-07-25 09:42:50 -07:00
gtips
70a37b9cf5 [Keyboard] Add keyboard Reviung61 (#9737)
* [Keyboard] Add keyboard Reviung41

* Modified files

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

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

* modified keyboards/reviung41/readme.md

* modified keyboards/reviung41/readme.md

* modified keyboards/reviung41/readme.md

* Update readme.md

Change the image photo of readme.md.

* [Keyboard] Add reviung61

* Update readme.md

* fix keyboards/reviung61/ and add keymap default_rgb

* fix keyboards/reviung61/info.json

* fix keyboards/reviung61/info.json

* remove keyboards/reviung61/keymaps/default/config.h
2020-07-25 03:35:47 -07:00
stanrc85
208fbce9a7 Keymap for OSAv2 (#9773)
* Add OSAv2 keymap

* OSAv2 configs and rules

* OSAv2 lighting layers

* OSAv2 lighting layers

* Fix colors after copy/paste

* Use LED indicators instead of RGB
2020-07-25 03:10:00 -07:00
Eric Brooks
21976f47d8 Added via support for ut472 (#9757)
* Added via support for ut472

* removed needless config file
updated vendor and product id for ut472

* corrected VENDOR_ID casing for ut472
2020-07-25 02:41:58 -07:00
Ibnu Daru Aji
054021e875 [Keyboard] Squiggle (#9387)
* new keyboard for squiggle.

* added pic and other layout.

* updated readme.

* following drashna's suggestions.

* removed an empty line and right hand as master.

* following fauxpark's suggestions.

* following manna-harbour's suggestions.

* trying to satisfy PR Lint keyboards

* manna-harbour forgot to add it.

* following fauxparx's suggestions.

* following fauxpark's suggestions.

* following fauxpark's suggestions.'
'

* following fauxpark's suggestions.

* following fauxpark''s suggestions.

* upated info.json to represent the actual layouts.

* following noroadsleft's suggestions.
2020-07-25 02:15:35 -07:00
shela
f5c2cd2eb7 [Docs] Update Japanese translation of custom_quantum_functions.md. (#9760)
* Update Japanese translation of custom_quantum_functions.md.

* Update custom_quantum_functions.md

fix original document version.
2020-07-25 09:36:48 +09:00
umi
0e30266711 [Docs] Japanese translation of docs/getting_started_docker.md (#9681)
* add getting_started_docker.md translation

* fix some typo

* update based on comment
2020-07-25 09:34:07 +09:00
umi
656a8327f4 [Docs] Japanese translation of docs/flashing_bootloadhid.md (#9680)
* add flashing_bootloadhid.md translation

* update based on comment
2020-07-25 09:33:20 +09:00
Takeshi ISHII
1fed91f272 Japanese documents 'original document' comment fix (#9816) 2020-07-25 08:38:13 +09:00
sotoba
7fe491bb54 [Keyboard] Add "craftWalk" keyboard (#9689)
* Add craftWalk keyboard

* remove config.h

* Update keyboards/craftwalk/config.h

* Update keyboards/craftwalk/rules.mk

* Update keyboards/craftwalk/rules.mk

* Update keyboards/craftwalk/info.json

* Update keyboards/craftwalk/rules.mk

* Update keyboards/craftwalk/config.h

* fix bootloader

* Update keyboards/craftwalk/rules.mk

* Update keyboards/craftwalk/info.json

* Update keyboards/craftwalk/config.h

* Update keyboards/craftwalk/config.h

* Update keyboards/craftwalk/rules.mk

* Update keyboards/craftwalk/rules.mk
2020-07-24 13:24:58 -07:00
shela
7675e80f5c [Docs] Update Japanese translation of feature_pointing_device.md. (#9771)
* Update Japanese translation of feature_pointing_device.md.

* Update docs/ja/feature_pointing_device.md

* Update feature_pointing_device.md

fix original document version.
2020-07-24 11:19:46 -07:00
shela
2b960b8bd7 [Docs] Update Japanese translation of feature_userspace.md. (#9775) 2020-07-24 02:49:36 -07:00
shela
955047dd7d [Docs] Update Japanese translation of feature_hd44780.md. (#9766) 2020-07-24 01:54:34 -07:00
shela
0a5997b0af [Docs] Update Japanese translation of faq_build.md. (#9762) 2020-07-24 01:45:30 -07:00
NightlyBoards
0adf03c754 [Keyboard] Add N87 Keyboard (#9663)
* Add new keyboard, the N87

* Deleted config.h and readme.md on tsangan keymap folder

* Edited layout names on keymap.c and n87.h. Disabled audio

* Edited files based on requested changes, re-enabled audio on extra data pin B7, enabled audio click, disabled music mode

* Updated the wiring matrix for symmetric_standard layout
2020-07-23 23:51:54 -07:00
MechMerlin
2cebac6f2f [Keyboard] VIA Support: DO60 (#9622)
* fix up that vendor ID

* add a VIA enabled keymap

* use pragma once

* clean up indicator leds code

* remove unused header
2020-07-23 20:17:38 -07:00
Koobaczech
a50c0049f6 [Keyboard] Add Pandora keyboard (#9592)
* Pandora
Co-authored-by: Ryan <fauxpark@gmail.com>

Co-authored-by: Ethan Madden <maddene@madden.ninja>
Co-authored-by: Erovia <Erovia@users.noreply.github.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-07-23 20:01:39 -07:00
Matthew Weldon
e620a7beb2 [Keyboard] add encoder support to PlaidPad default mappings (#9396)
* Add flipped and discrete encoder support default mappings

* Fixed typo in readme

* Removed flipped layout, fix config.h encoder pin mapping, update readme

Co-authored-by: matt <matt@smooth.tech>
2020-07-23 19:42:56 -07:00
Jonathan Rascher
d699fd1fb4 Switch bcat Chrome OS media keys workaround from mouse keys to NKRO (#9790)
* Switch Chrome OS mouse keys workaround to NKRO

* Add NKRO toggle to keymaps

* USE NK_TOGG keycode instead of defining my own
2020-07-23 15:27:01 +01:00
Jonathan Wakely
e38331d94c Update readme.md for cu80 (#9798) 2020-07-23 15:25:01 +01:00
shela
e85ec9a09a Update Japanese translation of _summary.md. (#9777) 2020-07-23 17:34:42 +09:00
shela
562b853a8f [Docs] Update Japanese translation of feature_split_keyboard.md. (#9780)
* Update Japanese translation of feature_split_keyboard.md.

* Update docs/ja/feature_split_keyboard.md

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

Co-authored-by: Takeshi ISHII <2170248+mtei@users.noreply.github.com>
2020-07-23 17:32:57 +09:00
shela
69abe5b405 Update Japanese translation of feature_layers.md. (#9769) 2020-07-23 17:30:59 +09:00
shela
a9cb3835ca Update Japanese translation of feature_encoders.md. (#9765) 2020-07-23 17:29:02 +09:00
shela
e1f1e1582e Update Japanese translation of feature_dynamic_macros.md. (#9764) 2020-07-23 17:27:40 +09:00
shela
65f803a1de Update Japanese translation of feature_dip_switch.md. (#9763) 2020-07-23 17:26:12 +09:00
shela
706f1b433c Update Japanese translation of driver_installation_zadig.md. (#9761) 2020-07-23 17:23:56 +09:00
shela
841a2721bc Update Japanese translation of config_options.md. (#9759) 2020-07-23 17:22:10 +09:00
Mark Sherman
d48e3053b9 Updating comment diagram to match code in lets_split_eh/doxish_dvorak (#9785) 2020-07-23 14:18:21 +10:00
Michael Krasnitski
d7a4b14bc6 Fix compilation warning for the DZ60RGB/DZ65RGB when RGB matrix is disabled (#9791) 2020-07-22 15:55:35 +10:00
Sergey Vlasov
74d3223fb5 Update handwired/onekey/teensy_2pp readme (#9784)
In commit 297aad6ebd pins for handwired/onekey/teensy_2pp were changed
from B2/B1 to F4/F5; update readme.md to match that change.
2020-07-22 15:49:01 +10:00
umi
3f0292d726 [Docs] Japanese translation of docs/cli_development.md (#9699)
* add cli_development.md translation

* update based on comment

* update based on comment

* update based on comment
2020-07-22 11:06:27 +09:00
Matthew Lyon
3f96b88e73 mattly goes windows (#9677)
* mattly's userspace and iris

* [Keymap] mattly's windows overlays

* biton32->get_highest_layer

* few more small tweaks
2020-07-21 17:08:56 -07:00
dsanchezseco
5e812cc4be Add keyboard Punk75 (#9731)
* start of punk75 keyboard

* preliminary code for the punk75 keyboard

* readme

* changes to work with USBasp

* changed cols and added configurable led

* set LED's pin as output

* changed led to new port and added rotary encoders

* added code for rotary encoders

* fixed col pins

* fixed encoder orientation

* added delay for tap_code so encoder works as intended

* added preliminary keymap for mine

* personal keymap for punk75

* personal keymap for punk75

* Apply suggestions from code review

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

* Apply suggestions from code review

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

* fixed image

* Apply suggestions from code review

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

Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-07-21 22:45:21 +01:00
Alabahuy
8c8a320e92 Add via support for rart75 (#9746)
* Update info.json

* Create rules.mk

* Create keymap.c
2020-07-21 22:31:16 +01:00
ladbahuy
43b21cffe0 Update rartpad via keymap (#9747) 2020-07-21 22:30:20 +01:00
shela
58c31f5632 fixed alt text for images. (#9781) 2020-07-22 01:30:33 +09:00
QMK Bot
1778858e24 format code according to conventions [skip ci] 2020-07-21 00:09:52 +00:00
nathanvercaemert
19006c9753 Implemented New MK_COMBINED Functionality (#9557)
* implemented new mousekey_combined functionality

* minor formatting change to documentation

* Update tmk_core/common/mousekey.c

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

* Update tmk_core/common/mousekey.c

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

* Update tmk_core/common/mousekey.c

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

* Update tmk_core/common/mousekey.c

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

* Update docs/feature_mouse_keys.md

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

* Update docs/feature_mouse_keys.md

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

* Update docs/feature_mouse_keys.md

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

* Update docs/feature_mouse_keys.md

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

Co-authored-by: Nathan Vercaemert <nathan.vercaemert@gmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Nick Brassel <nick@tzarc.org>
2020-07-21 09:28:38 +10:00
Nico Cesar
2e08c72e95 Update onekey proton_c readme (#9758)
A3 won't work. The code says A1 and A2 and it works. prints out an "a"
2020-07-20 15:41:21 +01:00
Joshua Rubin
57f408cff5 ensure hhkb runs matrix_init_quantum (#9629) 2020-07-19 19:25:30 -07:00
Drashna Jaelre
c4d778a302 [Docs] Update ISP Guide (#9748)
* [Doc] Update ISP Guide

Correct the fuses for Caterina, and make the `:production` command more obvious.

* fix casing before fauxpark catches it
2020-07-18 21:24:23 +01:00
umi
82dcb17338 [Docs] Japanese translation of docs/feature_debounce_type.md (#9524)
* add feature_debounce_type.md translation

* update based on comment

* update based on comment
2020-07-18 01:47:12 -07:00
Pierre Chevalier
a8c230743a Write firmware for the Ferris keyboard (#9634)
* Write firmware for the Ferris keyboard

Took inspiration from the gergoplex and the ergodox_ez firmware for the
split matrix with io_expander on the right hand.
Cleaned up a lot of bit fiddling on the mcu side by taking inspiration
from the `split_custom` in quantum.
Still bit fiddling on the mcp side as it is particularly natural to do
so with the abstractions provided by the i2c protocol. Would be good to
clean that up and abstract away the wiring from the generic i2c code in
a similar fashion as quantum and the mcp side behave.

One improvement over the ergodox_ez and the gergoplex firmwares is that
the wiring is straight forward as opposed to swapping rows and columns
in two different places that end up cancelling out for some reason.

At this stage, I have flashed this firmware to a board and have verified
that all keys are behaving as intended by shorting pins.
I still have to solder in some switches and test that everything works
correctly at normal typing speeds, but I don't expect any major issues
given I'm building up on previous effort, including the debouncing code
from the ergodox_ez.

* Remove rotation from info.json and label the keys as per default keymap

* Comply with minor review feedback points

* Use CUSTOM_MATRIX=lite to remove boilerplate

* Update keyboards/handwired/ferris/info.json

Didn't play nicely in the configurator

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

* Remove MIDI_ENABLE from rules.mk

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

* Remove FAUXCLICKY_ENABLE from rules.mk

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

* Prefer wait_ms over _delay_ms

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

* Remove unused include

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

* Remove unused include

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

* Remove unused include

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

* Remove unused includeh

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

* Use dprint over print and remove include for print.h

* Remove all unused includes

* Remove unused code

* Cleanups thanks to code review

* Move more personal settings from the ferris config to the default keymap config

These setting happen to be unused in the default keymap at the moment,
as it has only one layer with no homerow modifiers and no mouse key; but
I would like to keep it there for two reasons:
* It can serve as an example to people creating their own keymap
* I plan to design a more usable default keymap that uses these features
  once this PR which adds the Ferris keyboard is merged.

* Consolidate mcp logic inside matrix.c

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-07-18 13:57:33 +10:00
Croktopus
3c84157d83 Add timber wolf keyboard (#9353)
* added timber wolf keyboard

* removed subfolders

* fixed keymap names

* fixed layout macro references

* swapped c6 and c7 functions

* Update keyboards/metamechs/timberwolf/config.h

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

* Update readme.md

* re-updating readme

Co-authored-by: Erovia <Erovia@users.noreply.github.com>
2020-07-17 19:04:44 +01:00
floookay
4989af356e [keyboard] added Adelheid (#9734)
* readded adelheid files

* reworked keymaps

- moved my personal keymap to a new folder
- added a new default keymap

* removed unnecessary backslash

* reenabled command rule

* bumped device number

* fixed layout for configurator

* applied suggestions from code review

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

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-07-17 18:51:56 +01:00
yinxianwei
a2fa12d631 [keyboard] Add x16 (#9709)
* [keyboard] Add x16

* update x16

* Update keyboards/x16/config.h

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

* Update keyboards/x16/readme.md

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

* Update keyboards/x16/rules.mk

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

* Update keyboards/x16/rules.mk

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

* Update keyboards/x16/rules.mk

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

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-07-17 18:46:05 +01:00
NightlyBoards
412c6bf447 Add Alter Keyboard (#9579)
* Create Alter folder

* Revert "Create Alter folder"

This reverts commit 361103b821.

* Add Alter keyboard

* Fixed keymap.c

* Fixed another issue on the keymap.c

* Updated the files based on the comments

* Edited default keymap and enabled rgbanimations on config.h

* Updated the info.json
2020-07-17 16:46:11 +01:00
Alabahuy
9aa953ecb4 [Keyboard] add rart75 (#9649)
* Create config.h

* Create info.json

* Create rart75.c

* Create rart75.h

* Create readme.md

* Create rules.mk

* Create keymap.c

* Create keymap.c

* Update keymap.c

* Update info.json

* Update info.json

* Update info.json

* Update readme.md

* Update config.h

* Update rules.mk

* Update readme.md

* Update readme.md
2020-07-17 16:39:55 +01:00
MechMerlin
9fddb1b5fa VIA Support: Skog Lite (#9686)
* via support for the skog lite

* some code cleanup before submission

* Update keyboards/percent/skog_lite/keymaps/via/config.h

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

* Update keyboards/percent/skog_lite/keymaps/via/keymap.c

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

Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-07-17 15:41:30 +01:00
Josh Johnson
07a817d3e5 [keymap] Add VIA support for Hub16 (#9638)
* fix encoder switch not staying depressed

* add via support

* change default keymap

* change VID-PID

* remove LTO

* fix hold bug keeping debouncing
2020-07-17 13:35:44 +01:00
moyi4681
56beaf7d3f Update MAJA info.json (#9674)
* Update info.json

* Update keyboards/kbdfans/maja/info.json

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

* Update keyboards/kbdfans/maja/info.json

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

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2020-07-17 13:26:50 +01:00
Sid Carter
3f11f41ec7 Keymap addition and updates (Prime_e, ProjectKB PCB, WT60-D) (#9701)
* update keymap

* update ilpse template as well

* fix some key items

* move quote the first layer

* figure out brackets

* update ilpse keymap

* update arrow keys on alice

* change layers

* update layers again

* switch to vim keys

* add mouse keys

Co-authored-by: Khader Syed <khader.syed@aicure.com>
2020-07-17 13:16:09 +01:00
Maarten Dekkers
4e02253aaf [Keyboard] Add PocketType (#9728)
* Add PocketType

* Add info.json, changes readmes and other stuff

* More changes

Co-authored-by: Maarten Dekkers <maartenn2001@gmail.com>
2020-07-17 12:53:37 +01:00
Rossman360
2773082d9d add default Rebound lighting settings (#9740)
* cleaning up

* deleting to undelete

* add rebound lighting settings
2020-07-17 06:20:02 +10:00
Ryan
19b70b2737 MSYS2: Switch to bootloadHID package and bring back avrdude package (#9736)
* MSYS2: Switch to bootloadHID package and bring back avrdude package

* Update Zadig docs as well
2020-07-16 18:01:34 +01:00
Konstantin Đorđević
61b64bb82a Redefine IS_LAYER_ON/OFF() as aliases for existing layer functions (#6352)
* Add IS_LAYER_ON_STATE()/IS_LAYER_OFF_STATE() macros

* Add docs for IS_LAYER_ON/OFF(_STATE) macros

* Remove IS_LAYER_ON/OFF_STATE redefinition in userspace

* Run clang-format on quantum/quantum.h

* Redefine IS_LAYER_ON/OFF(_STATE) as aliases of existing layer functions

Also update relevant doc entries.

Needs testing to check if this breaks existing IS_LAYER_ON/OFF usage in certain
edge cases (namely calling the macros with 0).

* Reformat layer check function docs
2020-07-16 22:27:55 +10:00
Drashna Jaelre
f11437aef3 Allow for user song list (#9281) 2020-07-16 16:45:50 +10:00
Hedgestock
fc13315300 Fixed CA_DOTA key code (#9722) 2020-07-16 15:50:51 +10:00
Ryan
72d3270547 Remove DESCRIPTION (#9732) 2020-07-16 15:49:18 +10:00
Gautham Yerroju
92d0a71af7 OLED driver function to set pixels (#9713)
* Add a function to set individual pixels

* Add documentation for oled_write_pixel

* use smaller data type for oled_write_pixel

* Fix boundary check edge case

* Update oled_write_pixel doc

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

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-07-16 15:48:04 +10:00
Nick Brassel
08b405e1e9 planck/rev6: Enable WS2812 LED matrix with pwm drivers (#9735)
* planck/rev6: Enable WS2812 LED matrix with pwm drivers

* Comments and cleanup.

* GPL2+ Licensing

Co-authored-by: Nick Brassel <nick@tzarc.org>
2020-07-16 15:15:04 +10:00
Riley Inman
13eda1b1a2 planck/rev6: Enable WS2812 LED matrix with pwm drivers 2020-07-16 01:07:44 -04:00
Ryan
e8d577c081 Update new keyboard templates (#9636)
* Update new keyboard templates

* Switch on Bootmagic Lite by default

* Remove MIDI_ENABLE and FAUXCLICKY_ENABLE
2020-07-15 18:52:02 +10:00
Jeong Arm
ceb3ef955e [Keyboard] Update preonic/Kjwon15 layout (#9718) 2020-07-15 18:49:28 +10:00
moyi4681
bc2ebef876 Update KBDFANS/MAJA default keymap (#9727)
* Update keymap.c

* Update keymap.c
2020-07-14 17:06:16 +01:00
Gaëtan Ark
7bdfbde35d [Keymap] Added Bépo layout to Kyria (#9272)
* Added Ergo 42

* Added bépo layout to the Kyria keyboard

* Fixed comment layout, fixed bad quotes

* Fixed outdated keys
2020-07-14 00:42:29 -07:00
Drashna Jaelre
584d38b5f5 Fix RGB Matrix using RGBW WS2812 LEDs (#9705)
This should be a pointer, as that is what the function expects.
2020-07-13 23:28:42 +01:00
ladbahuy
9307762d76 RARTPAD : add support via (#9702)
* Create rules.mk

* Create keymap.c

* Update keymap.c

* Update keymap.c

* Update keymap.c

* Update keymap.c

* Update keymap.c
2020-07-13 23:25:28 +01:00
umi
1b96038115 [Docs] Japanese translation of docs/coding_conventions_python.md (#9517)
* add coding_conventions_python.md translation

* update based on comment

* update based on comment
2020-07-12 11:43:43 +09:00
Joshua Rubin
78f0b5fb02 [Keyboard] Add g60ble (#8952)
* add g60ble

Signed-off-by: Joshua Rubin <mejawa.dev>

* fixes from review

Signed-off-by: Joshua Rubin <mejawa.dev>

* bioi/g60ble better comments in rules.mk

* bioi/g60ble better comments in rules.mk part 2

* Update keyboards/bioi/g60ble/readme.md

* Update keyboards/bioi/g60ble/rules.mk

* Update keyboards/bioi/g60ble/rules.mk
2020-07-11 11:50:57 -07:00
shela
64603ab647 fix typo (#9695) 2020-07-11 23:06:33 +10:00
TerryMathews
ca946f6116 Initial support for TKC Alice (#9640)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Erovia <Erovia@users.noreply.github.com>
2020-07-11 12:28:53 +01:00
Brandon Claveria
63fe92017c [keyboard] added swiftrax/cowfish (#9621)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Swiftrax <swiftrax@gmail.com>
2020-07-11 12:28:22 +01:00
Randall Mason
817de51c12 Add config for Atreus based on Adafruit Feather BLE (#9140)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Erovia <Erovia@users.noreply.github.com>
2020-07-11 21:09:40 +10:00
ladbahuy
6609197cde [keyboard] Add rartpad (#9614) 2020-07-11 11:54:22 +01:00
QMK Bot
421621fbf1 format code according to conventions [skip ci] 2020-07-10 22:02:03 +00:00
Fredrik Salomonsson
21610d245a [Keymap] plattfot - Update and fix issue with DBL_TAP (#9666)
- Fix typo in the default layout.
- Move esc and del to the navi layer.
- Fix issue with oneshot layers and double tap aka DBL_TAP.
- Add caps lock to the raise layer.

Was relying on a broken behavior for the double tap to work with
oneshot keys, i.e. the oneshot layer not being cleared after a key
press in `process_record_user`, which allowed me to first press an
oneshot key, then double tap and then a key. With the behavior fixed,
this no longer works. As the oneshot layer will be cleared when double
tap is pressed.

To make double tap useful again. I changed that any of the layer keys
does not clear the double tap. Which allows me for example to first
press double tap, then an oneshot key and then a key. So now I'm able
to type my double symbols again.
2020-07-10 23:00:04 +01:00
ytkwong
bdfb1bc2b5 Added VIA compatible rules for Duck Octagon V2 PCB (#9676)
* Added keymap and rules to allow VIA compatibility

* Update keymap.c

* Update rules.mk

* Update keyboards/duck/octagon/keymaps/via/keymap.c

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

* Update keymap.c

* Update keyboards/duck/octagon/keymaps/via/keymap.c

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

* Update keyboards/duck/octagon/keymaps/via/keymap.c

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

* Update keyboards/duck/octagon/keymaps/via/keymap.c

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

* Update keyboards/duck/octagon/keymaps/via/keymap.c

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

Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-07-10 22:59:45 +01:00
Ramon Imbao
76b21a4b90 Fix missing column for Herringbone (#9679)
* Add the missing column to the config

* Fix key layout error in info.json
2020-07-10 22:58:41 +01:00
Jonathan Rascher
027570a21b Rework bcat Crkbd and Lily58 modifier keys (#9692)
* Re-enable mouse keys to fix Chrome OS media keys

I'm not sure if there's a bug in Chrome OS, QMK, or both, but
EXTRAKEY_ENABLE isn't sufficient for media keys to work on Chrome OS.
Instead, MOUSEKEY_ENABLE is also required.

* Remove unnecessary SPLIT_USB_DETECT for Lily58

I've since swapped my Lily58 back to Elite-C v2 controllers with working
VBUS detection.

* Move Crkbd Esc and Ctrl keys; add some shortcuts

* Move MC_ALTT to userspace for cross-board support

* Sync Lily58 keymap with Crkbd

* Fix typos
2020-07-10 22:57:49 +01:00
KgOfHedgehogs
bd72a577a2 Update Jian readme.md (#9685) 2020-07-10 22:56:52 +01:00
Joel Challis
aec4125989 Refactor ARM backlight (#7959) 2020-07-10 09:12:40 +01:00
a_p_u_r_o
c272b2422b [Keyboard] Fix inconsistent MATRIX_COLS: 4pplet/steezy60 (#9678) 2020-07-10 11:44:03 +10:00
Callum Oakley
c50009d5d4 [keymap] curly quotes (#9662)
Co-authored-by: Erovia <Erovia@users.noreply.github.com>
2020-07-10 11:31:18 +10:00
Danilo de Klerk
823165b9b7 split_3x6_3 layout support (#9625) 2020-07-09 22:19:16 +01:00
Naoto Takai
9947f1051d Update Nomu30 keyboard (#9599)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Erovia <Erovia@users.noreply.github.com>
2020-07-09 20:21:22 +01:00
ajp10304
c5e255a417 Create ajp10304 userspace and ortho_4x12 layout. (#9304) 2020-07-09 20:18:51 +01:00
umi
bae3e03e5f [Docs] Japanese translation of docs/coding_conventions_c.md (#9516)
* add coding_conventions_c.md translation

* update based on comment

* update based on comment

* update based on comment
2020-07-09 21:13:32 +09:00
pcoves
facca23315 Add pcoves's userspace (#9354)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Pablo COVES <pablo.coves@anatoscope.com>
2020-07-08 21:57:11 +01:00
Abi Shalom
071e0c2029 Created abishalom keymap (#9669)
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-07-08 21:53:29 +01:00
Steve Purcell
2b55c419ea shell.nix improvements, and fix problems on Darwin (#9551) 2020-07-08 21:50:01 +01:00
Brandon
83e1b9ab6e Added VIA support to nightmare (#9672)
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-07-08 21:47:35 +01:00
Oskar Holstensson
ca598c3df6 Changed US_RBRC to KC_RBRC instead of KC_LBRC (#9664) 2020-07-08 21:45:43 +01:00
Rys Sommefeldt
4588c979bd Reduce peak LED brightness for AoS TKL (#9667) 2020-07-08 21:43:23 +01:00
Ramon Imbao
60ee8bddfc Fix }] key in matrix for GHS.RAR (#9671) 2020-07-08 20:03:02 +01:00
Guillaume Gérard
5f9fb01020 [Keymap Extra] Add French AZERTY (AFNOR - NF Z71-300) (#9644)
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-07-08 19:55:02 +01:00
ilikepi2
c4960b7579 Add VIA Functionality for Keyhive Maypad (#9654)
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-07-08 17:20:24 +01:00
James Young
d4917318cc Add layout macros to YD60MQ (#9653)
- LAYOUT_60_ansi_split_bs
- LAYOUT_60_ansi_split_bs_rshift
- LAYOUT_60_ansi_split_rshift
- LAYOUT_60_ansi_tsangan
- LAYOUT_60_hhkb
- LAYOUT_60_iso_split_bs
- LAYOUT_60_iso_split_bs_rshift
- LAYOUT_60_iso_split_rshift
- LAYOUT_60_iso_tsangan
2020-07-08 17:18:50 +01:00
boss566y
047a7f4e33 [Keyboard] Added Handwired Redragon Keyboard (#9590)
* Added Handwired Redragon Keyboard as well as default and via keymaps

* Update keyboards/handwired/boss566y/redragon_vara/info.json

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

* Update keyboards/handwired/boss566y/redragon_vara/keymaps/default/keymap.c

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

* Update keyboards/handwired/boss566y/redragon_vara/keymaps/default/keymap.c

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

* Update keyboards/handwired/boss566y/redragon_vara/keymaps/via/keymap.c

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

* Update keyboards/handwired/boss566y/redragon_vara/keymaps/via/keymap.c

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

* Update keyboards/handwired/boss566y/redragon_vara/keymaps/via/keymap.c

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

* Update keyboards/handwired/boss566y/redragon_vara/redragon_vara.c

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

* Update keyboards/handwired/boss566y/redragon_vara/redragon_vara.h

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

* Update keyboards/handwired/boss566y/redragon_vara/rules.mk

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

* Update keyboards/handwired/boss566y/redragon_vara/keymaps/default/keymap.c

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

* Update keyboards/handwired/boss566y/redragon_vara/info.json

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

* Update keyboards/handwired/boss566y/redragon_vara/rules.mk

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

* Update keymap.c

Removed defined keycodes from via keymap

* Update keymap.c

replaced defined keycodes in default keymap

* Update readme.md

Changed image to one that matches the physical keyboard

Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-07-08 06:33:43 -07:00
TerryMathews
c8ab8e0bab [Keyboard] Add support for YDKB Chili (#9583)
* Add support for YDKB Chili


Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Erovia <Erovia@users.noreply.github.com>
2020-07-08 06:25:30 -07:00
Matthew Tse
038a86a9b8 Add missing bracket for Tap-Hold code sample (#9675)
The `TAPPING_TERM_PER_KEY` code sample is missing a closing bracket.
This adds it.
2020-07-08 13:40:13 +10:00
QMK Bot
9ae15e8c79 format code according to conventions [skip ci] 2020-07-07 21:43:51 +00:00
Dongfeng Yu
666cb44673 Allowing Pressing the Start Buttons Again to Stop Dynamic Macro Recording (#9446) 2020-07-07 21:59:13 +01:00
Sven Grunewaldt
03c790a0f2 Add TAP_CODE_DELAY to Mod-Tap (#9422) 2020-07-07 21:47:59 +01:00
Ryan
29b4f83a1f Un-nest 1up60rgb LAYOUT macros (#9648) 2020-07-07 20:31:44 +01:00
Erovia
e6bcc232ed Docs: update ModemManager recommendation (#9328)
Instead of modifying the service file provided by the distro,
use drop-in functionaly to explicitly specify the policy.
2020-07-07 19:22:38 +01:00
Joakim Tufvegren
5eb4675fda Allow for building layouts from keymap.json files. 2020-07-07 07:27:39 -07:00
KgOfHedgehogs
0fcefdc013 Add jian qmk_via layout and LTO_ENABLE to all jian revs (#9606) 2020-07-06 22:40:23 +10:00
MelGeek
fe744eb1ad [Driver] bugfix reset the scaling register flag to FALSE (#9507)
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-07-06 22:38:41 +10:00
Brennan Vincent
85e20a5cf4 Fix typo in freebsd_install.sh (#9655) 2020-07-06 02:20:46 +10:00
stanrc85
da5aed6bef [Keymap] Add Alice rev2 to my userspace (#9600) 2020-07-04 20:51:37 -07:00
Alabahuy
acb9cf12c4 [Keyboard] RART67 : add support via (#9589) 2020-07-04 20:36:42 -07:00
siano
ade3bdf7e7 [Keyboard] XD87 Caps Lock LED refactor (#9585) 2020-07-04 20:31:07 -07:00
paulgali
83bc0b9e80 [Keyboard] Updated VIA Support for DP60 (#9508)
* Updated VIA Support

- Added LAYOUT_all Support for VIA compatibility
- Updated default dp60\layouts\via\keymap.c to mmirror changes to 
LAYOUT_all
- Rules.mk updated in both base and via directories.


Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
2020-07-04 19:20:22 -07:00
yanekm
29ebb99b1f fixed link to Eclipse instructions (#9647) 2020-07-05 08:50:01 +10:00
QMK Bot
355f075b57 format code according to conventions [skip ci] 2020-07-04 15:01:25 +00:00
Takeshi ISHII
c2ca57c8f4 add DIP_SWITCH_MATRIX_GRID support (#8772)
* dipsw test on helix/rev2/sc/back:five_rows

* add peek_matrix() to matrix_common.c

* add DIP_SWITCH_MATRIX_GRID support to quantum/dip_switch.c

* update docs/feature_dip_switch.md about DIP_SWITCH_MATRIX_GRID

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

This reverts commit 6d4304c74557597c9fb4d324f79c3ae4793ae874.
2020-07-04 23:20:49 +09:00
Takeshi ISHII
5c8b23ccff add SPLIT_HAND_MATRIX_GRID support (#8685)
Co-authored-by: Danny <nooges@users.noreply.github.com>
2020-07-04 15:04:47 +01:00
Sam Gowland
13a8d1681c [Keyboard] Gowla Macro Board (#9643)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Erovia <Erovia@users.noreply.github.com>
2020-07-04 11:51:42 +01:00
Olli
b30d0361c5 Fix “G” in Neo2 keymap (#9645)
Fix duplicated “NE_H” definition to use “NE_G” in Neo2 keymap,
introduced with commit 44ff14f.
2020-07-04 11:43:52 +01:00
kwlodarczy
063a74b660 Rotr - Updated README and default keymap (#9598) 2020-07-04 14:48:37 +10:00
moseschmiedel
3ff635b9a8 Add missing dependency for Void Linux to util/linux-install.sh (#9637) 2020-07-04 00:27:56 +01:00
Ryan
2c98c4dd4e Backlight docs wordsmithing (#9631) 2020-07-03 10:05:59 +01:00
Ramon Imbao
8c66c5aa9b Fix incorrect layout for GHS.rar (#9597)
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-07-03 19:05:44 +10:00
Manna Harbour
b7dc2eb9ab Add movement hook to ps2_mouse (#8805)
Process mouse movement in the keymap before it is sent to the host. Example uses
include filtering noise, adding acceleration, and automatically activating a
layer. To use, define the following function in your keymap:

void ps2_mouse_moved_user(report_mouse_t *mouse_report);
2020-07-02 21:54:15 +01:00
Ryan
00fc35539d Make sendstring respect TAP_CODE_DELAY (#9623) 2020-07-02 18:08:19 +01:00
Dongfeng Yu
65c9da5a65 [Keymap] Adding a Custom Keymap for Matrix Noah (#9581)
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-07-02 18:05:38 +01:00
Manna Harbour
d1819f02df Fix sharing of mouse button state from mousekeys to ps2_mouse (#9124)
With this change, when ps2_mouse is disabled, mousekeys works as usual. With
ps2_mouse enabled, mousekeys button state is shared with ps2_mouse for clicking,
dragging, and scrolling, mousekeys clicks are produced by ps2_mouse only, and
mouskeys button state is transferred to mousekeys without generating clicks to
enable mousekeys dragging.

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

Co-authored-by: Drashna Jaelre <drashna@live.com>
2020-07-02 18:04:55 +01:00
Jacky Tian
e1cdfdc0e7 Add xjtian keymap for Planck (#9502) 2020-07-02 16:33:57 +01:00
akscanb
97c18bfbc4 Arisu keymapping, and corresponding via keymap (#9560)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Erovia <Erovia@users.noreply.github.com>
Co-authored-by: Will <wailinnyu@gmail.com>
Co-authored-by: Andrew Koh <andrew@springlabs.com>
2020-07-02 16:09:23 +01:00
Maarten Dekkers
0e76b27661 Add Eon95 (#9334)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Maarten Dekkers <maartenn2001@gmail.com>
2020-07-02 16:02:39 +01:00
Maarten Dekkers
bd4c66a26b Eon65 (#9331)
Co-authored-by: Maarten Dekkers <maartenn2001@gmail.com>
2020-07-02 09:19:17 +01:00
Ryan
7c57efaaf9 Fix layouts for FM2U (#9604)
* Fix layouts for FM2U

* Leave old layout names as deprecated aliases
2020-07-01 22:47:53 -07:00
Sergey Vlasov
d4dc2a577f Quefrency rev1: Fix default VIA layout options (#9618)
Apparently VIA allocates bits in the layout options field from the
lowest bit, but starting from the **last** option defined in the JSON
file.  So the default value 0x06 was actually trying to set the value
`3` (`0b11`) for the second-to-last option ("Right Shift"), which had
only 3 values defined, and the attempt to set an undefined option value
caused the VIA app to hang with a black window.

Fix the default layout options so that it works as intended (the
"Macropad" and "65% Column" options are set).
2020-07-01 21:32:21 +01:00
Mojitas
92839f8a09 Mojito-keymap (#9566)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-07-01 21:29:06 +01:00
Nick Blyumberg
907c1c64cf [Keymap] AutoHotKey Companion keymap for Super16 (#9216)
* Started AHK Companion Development

* Updated the readme

* Added AutoHotKey companion file

* Updated documentation

* Cleaned up the files and revised documentation

* Finished the readme.md updates

* Fixed the LED issue where the last LED did not reflect the right color
2020-06-30 23:49:16 -07:00
kakunpc
8b9e3e9979 [Keyboard] Add "choc taro" keyboard (#9556)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Erovia <Erovia@users.noreply.github.com>
2020-06-30 20:04:47 +01:00
Xelus22
6600f32d35 Add VIA support on XiuDi (XD) keyboards (#8829)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Erovia <Erovia@users.noreply.github.com>
2020-06-30 18:27:24 +01:00
siano
e9fa41631c XD87 qmk info fixes (#9601)
* Fixed `Nested layout macro detected. Matrix data not available!`

* Updated info for XD87

* Layout fixes.
2020-06-30 10:16:22 -07:00
Danilo de Klerk
91efcfb43a Add layouts for split 3x5 and 3x6 keyboards (#9562)
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-06-30 18:14:42 +01:00
Ryan
24f59c2d72 Add more missing info.json layouts (#9595) 2020-06-30 17:53:24 +01:00
unicorn855
398a7e5b3f re-added mouse and media keys plus slight changes (#9515)
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-06-30 12:23:31 +01:00
Ramon Imbao
48db3ad6ef Fix Herringbone keymap typo (#9578)
* Change TILD to GRV
2020-06-29 19:30:04 -07:00
Alabahuy
12b43f55d6 [Keyboard] rart67 (#9543)
* Create config.h

* Create info.json

* Create rart67.c

* Create rart67.h

* Create readme.md

* Create rules.mk

* Create keymap.c

* Update readme.md

* Update info.json

* Update info.json

* Update config.h
2020-06-29 18:39:07 -07:00
Herpiko Dwi Aguno
6d6340a82b [Keyboard] Add UNK keyboard. (#9571)
* Add UNK keyboard.

* Update keyboards/handwired/unk/info.json

* Use KC_NO to block out nonexistent matrix positions.

* Update keyboards/handwired/unk/readme.md

* Update keyboards/handwired/unk/keymaps/default/keymap.c
2020-06-29 16:32:59 -07:00
kwlodarczy
67beec5e94 [Keyboard] Rotr (#9546)
* Add files via upload

* Add files via upload

Edited code to fix the formatting so that it follows the conventions.

* Create README.md

* Update config.h

* Update keyboards/rotr/config.h

* Update keyboards/rotr/config.h

* Update keyboards/rotr/config.h

* Update keyboards/rotr/kb.h

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

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

* Update keyboards/rotr/rules.mk

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

* Update keyboards/rotr/kb.c

* Delete Makefile

* Rename kb.c to rotr.c

* Rename kb.h to rotr.h

* Update rules.mk

* Rename README.md to readme.md

* Create info.json

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

* Update keyboards/rotr/readme.md

* Update keyboards/rotr/readme.md

* Update keyboards/rotr/readme.md

* Update keymap.c

* Update rotr.c

* Update info.json

* Update keyboards/rotr/readme.md
2020-06-29 15:00:36 -07:00
toraifu
09a53d1aa3 [Keyboard] Fallacy (#9499)
* Add Fallacy

* Accept suggestions

* fixed build error, renamed readme, added keymap specific config to force enable NKRO

* remove FORCE_NKRO on VIA keymap, fix header

* fix info.json to accurately reflect keymap

* remove additional empty layers from default_split_bs keymap

* Accept keymap formatting suggestions

* remove empty config files at keymap level
2020-06-29 13:52:17 -07:00
morbetter
4f9e5d4cde Adding VIA support for CannonKeys/Practice60 (#8169)
* Adding VIA support for 40percentclub/luddite

* Update config.h

* Update rules.mk

* Delete config.h

config.h was created to override the "default" of RGBLED_NUM 8
deleting the file to keep with defaults

* Removing block and comment as suggested

* Update PRODUCT_ID

Changing from:

 #define PRODUCT_ID      0x0A0C 

To:

 #define PRODUCT_ID      0x4C55 // "LU"

* Changing Vendor ID

Changing Vendor ID from:
#define VENDOR_ID       0xFEED
To:
#define VENDOR_ID       0x3430 // "40"

* Adding VIA support to cannonkeys/practice60

Adding VIA support to cannonkeys/practice60

 * updated VENDOR_ID to match other CannonKeys boards
 * changed PRODUCT_ID to be unique
 * added additional notes to readme.md
 * keymap.c and config.h for VIA support

* Update readme.md

* Update keyboards/cannonkeys/practice60/readme.md

* Update keyboards/cannonkeys/practice60/readme.md

* Update keyboards/cannonkeys/practice60/config.h

* Update rules.mk

* Update keyboards/cannonkeys/practice60/config.h

* Update config.h

* Rebased from Master

Rebased from Master
2020-06-29 12:16:14 -07:00
Frothy
cf17a8eb95 Add Via support for Hasu FC660C controller (#9563)
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-06-29 19:58:15 +01:00
Gustavs Gūtmanis
207b17bc4d [keymap] adding a new keymap to planck and crkbd (#9374)
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-06-29 19:27:29 +01:00
Reed
1baa99c647 [Keymap] Adding my keymaps for ergodox_ez and kyria (#9365)
* Trying to fix problems in my kyria steez

* repeating last commit.....

* repeating last commit on EDIT layer but swapping direction

exit

* moving the reversed desktop moves to the symbol layers on the same hand, for easier activation

* adding mac desktop movement keys to Kyria layout

* Adding readmes to my keymaps

* Removing a png...

* Update keyboards/ergodox_ez/keymaps/rmw/keymap-mac.c removing EPRM case

* Apply suggestions from code review

Great updates to various old-school or outdated ways I was doing things, removing some commented out code, etc.

* Apply suggestions from code review

Additional improvements

* Moving tapdances.cpp to userspace as tapdances.c

* reindenting the Kyria keymap to follow four-spaces convention, turning off oled on my kyria, improving the led handling on the Ergodox.

* updating led stuff on the other two versions of the keymap, removing EPRM key from main keymap

* Apply suggestions from code review

I'm adding these various removals to the config file because it seems that at this time those settings are in harmony with the ergodox_ez defaults.

* Moving encoder functions into their own userspace file

* Apply suggestions from code review

Removing settings that are now defaults, clearing out placeholder custom keycodes (smh)

* updating encoder functions.

* Moving to LAYOUT_stack for all layers, adding end of file newlines, switching to some shorter keycode aliases

* Okay, refactor is well underway.

* refactored! Also improved led handling for ergodox and rgb handling for kyria

* removing mac/windows swappable version because I don't feel like dealing with it when reflashing is so easy.

* moving LAYOUT_stack into kyria.h

* moving the alternate default layer down next to QWERTY
2020-06-29 10:23:13 -07:00
mechlovin
e9e6054ee7 [Keyboard] Refactor: add adelais rev.3 (#9496)
* Refactor: add adelais rev.3

* update

* Update keymap.c

* update

* update

* update
2020-06-29 01:19:09 -07:00
umi
4e4a3449a7 [Docs] Japanese translation of docs/compatible_microcontrollers.md (#9518)
* add compatible_microcontrollers.md translation

* update based on comment

* update based on comment
2020-06-29 00:30:16 -07:00
Guillaume Gérard
7c17b87215 Fix WORKMAN layer typo in dudeofawesome planck/preonic (#9576) 2020-06-29 12:54:50 +10:00
Xyverz
62ceb46e9d Fixed MACLOCK key (#9555) 2020-06-29 12:52:23 +10:00
AlisGraveNil
2c0201e80f [Keyboard] Coupe and Sedan keyboards (#9539)
* Initial upload - sedan and coupe keyboards

* Update coupe.h

* Update coupe.h

* Update coupe.h

* Update sedan.h

* Update keyboards/clawsome/coupe/readme.md

* Update keyboards/clawsome/sedan/config.h

* Update keyboards/clawsome/sedan/config.h

* Update keyboards/clawsome/coupe/config.h

* Update keyboards/clawsome/sedan/readme.md

* Update keyboards/clawsome/sedan/info.json

* Update keyboards/clawsome/sedan/readme.md

* Update keyboards/clawsome/coupe/readme.md

* Update keyboards/clawsome/coupe/info.json

* Update keyboards/clawsome/coupe/coupe.h

* Update keyboards/clawsome/coupe/info.json

* Update keyboards/clawsome/coupe/info.json

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

* Update keyboards/clawsome/sedan/info.json

* Update keyboards/clawsome/sedan/sedan.h

* Update keyboards/clawsome/sedan/rules.mk

* Update keyboards/clawsome/sedan/sedan.h

* Update keyboards/clawsome/sedan/keymap/default/keymap.c

* Update keyboards/clawsome/sedan/keymap/default/keymap.c

* Update keyboards/clawsome/coupe/rules.mk

* Update keyboards/clawsome/sedan/info.json

* Update keyboards/clawsome/sedan/info.json

* Rename keymap.c to keymaps.c

* Rename keymap.c to keymaps.c

* folder name updated

* updated keymaps

* remove erroneously added files

* extend keymap functionality

* Update config.h

* Update config.h

* added URL on line #3 for image of Coupe

* Added URL to line #3

* Update keyboards/clawsome/sedan/readme.md

* Update keyboards/clawsome/coupe/readme.md
2020-06-28 18:37:47 -07:00
mcginnisa
51509ec07b Add DZ60 keymap lint_kid (#9477)
* adding dz60 layout lint_kid

* adding dz60 layout lint_kid, removed readme

* removing wrong commented layout from dz60 lint_kid layout

* added readme

* Apply suggestions from code review

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

Co-authored-by: Joel Challis <git@zvecr.com>
2020-06-28 23:26:33 +01:00
Guillaume Gérard
b215bc3aba Add workman layout in JJ50 default keymap (#9574) 2020-06-28 22:47:33 +01:00
Guillaume Gérard
0928496220 [Keyboard] Refactor JJ50 keyboard mapping to current standard (#9415) 2020-06-28 18:45:16 +01:00
Ramon Imbao
a8904d47b7 Add GHS.RAR keyboard (#9561)
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-06-28 17:12:35 +01:00
Ramon Imbao
32a47e7af4 Add Herringbone keyboard (#9495)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Erovia <Erovia@users.noreply.github.com>
2020-06-28 16:22:11 +01:00
Miles Goodhew
b27c20d204 Added DFU instructions for XD004 board (#9565) 2020-06-28 15:38:41 +01:00
Ramon Imbao
b87895dc12 Move Wete to ramonimbao folder (#9569)
* [Breaking] Move Wete to ramonimbao folder

* Delete files

* Move files with git instead

* Update readme with new directory
2020-06-28 15:09:14 +01:00
Ryan
2344b6865a Fix siemens_tastatur info.json (#9568) 2020-06-28 22:21:37 +10:00
Ryan
3d45861216 Fix ordering for new info.jsons (#9567) 2020-06-28 12:51:48 +01:00
Takeshi ISHII
e184da91a6 [Update] Japanese translation of docs/cli.md and docs/cli_commands.md (#9536)
* update docs/ja/cli.md

* update docs/ja/cli_commands.md

* Update docs/ja/cli.md

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

* update docs/ja/cli_commands.md

Co-authored-by: shela <shelaf@users.noreply.github.com>
2020-06-28 20:27:06 +09:00
James Smith
d36d5ecfad Klackygears add user and handwired brain (#9154)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Erovia <Erovia@users.noreply.github.com>
2020-06-28 12:07:57 +01:00
Xelus22
7baeaae9bb Trinity XT tkl - New Keyboard (#9483)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Erovia <Erovia@users.noreply.github.com>
2020-06-28 12:04:47 +01:00
Ryan
c85e010d45 Add missing info.jsons for a few boards (#9549) 2020-06-28 11:56:50 +01:00
umi
097df6afdb [Docs] Japanese translation of docs/documentation_templates.md (#9523)
* add documentation_templates.md translation

* update based on comment

* update based on comment
2020-06-27 20:02:43 -07:00
umi
6574ac52ad [Docs] Japanese translation of docs/documentation_best_practices.md (#9522)
* add documentation_best_practices.md translation

* update based on comment

* update based on comment
2020-06-27 20:00:55 -07:00
myoung34
751a1789b5 Add JD40 keymap for myoung34 (#9545)
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-06-27 20:36:08 +01:00
Salicylic-acid3
ac7b1d0bf3 [Update]JISplite89 Readme and LED nums (#9554)
1.Update the URL and photos in the build guide.
2.Changed the number of LEDs.
2020-06-27 20:33:02 +01:00
jotix
7369e195c2 tap toggle to lower layer (#9542) 2020-06-26 22:04:09 +01:00
Pablo Ovelleiro Corral
30f4b4d763 [Keymap] pinpox keymap for dz60 (#9494)
* pinpox keymap for dz60

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

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

* Update keyboards/dz60/keymaps/pinpox/rules.mk
2020-06-26 04:19:19 -07:00
Adam DeHaven
9236c3a9d0 [Keymap] Adding custom keymaps (#9426)
* Adding custom keymaps

* Update keyboards/kbdfans/kbd75/keymaps/adamdehaven/keymap.c
2020-06-26 03:17:31 -07:00
Ryan
c2dd19de51 Fix error_log complaint about Helix boards (#9528) 2020-06-25 22:11:39 +01:00
TerryMathews
6d88794960 M0lly: add support for VIA (#9535)
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-06-25 22:02:27 +01:00
Rossman360
7a710fb426 [Keyboard] adding Rewind keyboard (#9497)
* adding rewind

* keymap cleanup

* keymap cleanup

* improve keymap

* improved keymap

* reduntant

* deletions

* typos

* readme img size and default bootloader
2020-06-24 23:09:06 -07:00
jotix
c8b35b6230 Jotanck (#9531)
* add_adjust_layer

* add_adjust_layer
2020-06-24 23:08:24 -07:00
shela
995464cb9c [Docs] fix file path (#9540) 2020-06-25 15:58:36 +10:00
Xyverz
45c73b13e1 Minor keymap fix (#9534)
Changed bottom-right keys in WOW and DESTINY layers from KC_ENT
to KC_RCTL.
2020-06-24 22:57:51 -07:00
Guillaume Gérard
9b85bd68a4 feat: add dvorak-fr as extra keymap (#9512) 2020-06-24 22:52:40 -07:00
Takeshi ISHII
ce91b36c5d [Update] Japanese Translation of docs/feature_layers.md (#9537)
* update docs/ja/feature_layers.md

see https://github.com/qmk/qmk_firmware/pull/9492

* update original document's TAG
2020-06-25 14:22:17 +09:00
jotix
2521b970e5 add_adjust_layer (#9532) 2020-06-25 09:27:25 +10:00
Rozakiin
598c392709 Add VIA support to Noxary 268 (#9449)
* Remove "rev1" from readme.md

* Update rules.mk to enable bootmagic, mousekeys, console, command

Also disable NKRO

* Update USB descriptor, replace ifndef with pragma once, remove RGB

* Replace ifndef with pragma once

* Add commented led code

* Add VIA keymap

* Update keyboards/noxary/268/268.c

Remove commented code

* Update keyboards/noxary/268/keymaps/via/readme.md

Flip layout image and title

* Update keyboards/noxary/268/rules.mk

Remove error in comment

* Update keyboards/noxary/268/rules.mk

Remove HD44780 rule option

* Update keyboards/noxary/268/keymaps/via/rules.mk

Replace Link_Time_Optimization with LTO

* Update keyboards/noxary/268/readme.md

Change Noxary link
2020-06-24 11:34:55 -07:00
Pierre Chevalier
4d218566cc [Keymap] Add pierrec83's gherkin keymap (#9465)
* [Keymap] Add pierrec83's gherkin keymap

Contribute my gherkin keymap upstream as it is semi-stable. It has grown
in symbiosis with my Kyria keymap which is already upstream.

Add a readme

* Remove generated keymap and instructions to generate it as it is done by qmk flash
2020-06-24 02:42:20 -07:00
Takeshi ISHII
a4b2baa2ba [Update] Japanese translation of docs/newbs_building_firmware_configurator.md (#9395)
* update docs/ja/newbs_building_firmware_configurator.md

Following the original changes, docs/ja/newbs_building_firmware_configurator.md  was divided into docs/ja/configurator_step_by_step.md and docs/ja/configurator_troubleshooting.md.

* Update docs/ja/configurator_step_by_step.md

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

* Update docs/ja/configurator_step_by_step.md

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

* Update docs/ja/configurator_step_by_step.md

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

* Update docs/ja/configurator_step_by_step.md

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

* Update docs/ja/configurator_step_by_step.md

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

* Update docs/ja/configurator_troubleshooting.md

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

* Update docs/ja/configurator_troubleshooting.md

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

* Update docs/ja/configurator_step_by_step.md

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

* Update docs/ja/configurator_step_by_step.md

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

* Update docs/ja/configurator_step_by_step.md

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

* Update docs/ja/configurator_troubleshooting.md

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

* Update docs/ja/newbs_building_firmware_configurator.md

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

* Update docs/ja/configurator_troubleshooting.md

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

* Update docs/ja/newbs_building_firmware_configurator.md

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

* Update docs/ja/configurator_step_by_step.md

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

Co-authored-by: shela <shelaf@users.noreply.github.com>
2020-06-24 18:10:52 +09:00
Joshua Diamond
4b80ee46f8 Add Hebrew keymap aliases (#9383)
* Add Hebrew keymap aliases

* Use NBSP for internal space in box drawings

* Apply suggestions from code review

* More whitespace fixes

* IL_DVAV, IL_DYOD and IL_VYOD were incorrect

* Add IL_DEG, IL_MUL, IL_DIV

* Hebrew is now ISO (no more BAE)

* Use ISO left shift

* Apply suggestions from code review

* DYOD and VYOD were reversed in diagram.

Oops!
2020-06-23 22:35:43 -07:00
Joshua Diamond
9b398a8f31 Partial and window screenshots (#9332) 2020-06-24 12:02:12 +10:00
4pplet
c30170b868 [Keyboard] added 4pplet keyboards (#8935)
* added 4pplet keyboards

added 4pplet keyboards

* Update keyboards/4pplet/aekiso60_rev_a/aekiso60_rev_a.h

* Update keyboards/4pplet/aekiso60_rev_a/config.h

* Update keyboards/4pplet/aekiso60_rev_a/config.h

* Update keyboards/4pplet/waffling60_rev_a/config.h

* Update keyboards/4pplet/aekiso60_rev_a/rules.mk

* Update keyboards/4pplet/aekiso60_rev_a/rules.mk

* Update keyboards/4pplet/waffling60_rev_a/rules.mk

* Update keyboards/4pplet/waffling60_rev_a/rules.mk

* Update keyboards/4pplet/steezy60_rev_a/config.h

* Delete info.json

* Delete info.json

* Delete info.json

* removed VIA_ENABLE

* Update config.h

* Update rules.mk

* Update steezy60_rev_a.h

* Update config.h

* Removed VIA_ENABLE

* Update keyboards/4pplet/steezy60_rev_a/rules.mk

* Removed VIA_ENABLE

* Update config.h

* Update config.h

* Update config.h

* adding fauxpark suggestion

* Update keyboards/4pplet/aekiso60_rev_a/config.h

* Update keyboards/4pplet/aekiso60_rev_a/rules.mk

* some updates recommended by noroadsleft, still work in progress 

some updates recommended by noroadsleft, still work in progress

* made directorys for revisions per noroadsleft  suggestion

made directorys for revisions per noroadsleft  suggestion

* renamed keyboard_pre_init_user to keyboard_pre_init_kb

* Update keyboards/4pplet/aekiso60/rev_a/config.h

* Update keyboards/4pplet/waffling60/rev_a/rev_a.c

* Update keyboards/4pplet/waffling60/rev_a/rev_a.c

* started working on refactoring led function for waffling60

* removed LED functionality

* Update keyboards/wilba_tech/zeal60/rules.mk

* Update keyboards/wilba_tech/zeal60/rules.mk

* Update keyboards/4pplet/waffling60/rev_a/rules.mk

* Update keyboards/4pplet/steezy60/rev_a/rules.mk

* Update keyboards/4pplet/aekiso60/keymaps/via/keymap.c

* Update keyboards/4pplet/aekiso60/rev_a/rules.mk
2020-06-23 18:13:21 -07:00
Ryan
39b483ad32 Fix maja info.json (#9511) 2020-06-23 22:36:54 +01:00
Ryan
88ebf92184 Fix info.json for Suihankey (#9490) 2020-06-23 10:25:20 -07:00
-k
8d792cfb5f [Keymap] Add personal keymap for Planck (#9424)
* Create readme.md

* Add personal keymap

* Edit readme

* Reorganize layouts

* Update config.h

* Edit beep settings

* Apply suggestions from code review

* More suggestions from code review
2020-06-23 03:28:54 -07:00
Keebz Dot Net
bd1b51cbd1 Wazowski fixed keymap placement (#9408)
- online configurator keys were in the wrong location and needed to be fixed
- fixed a key being to high on the y position
2020-06-23 10:07:15 +01:00
Danny
3028662fa3 [Keyboard] Add KBO-5000 keyboard (#9381)
* Initial fork of Sinc

* Setup keymaps, layouts, and encoders

* Add ANSI configurator layout

* Add ISO layout for configurator

* Add all layout option for configurator

* Fix spacing

* Remove extra line

* Remove unneeded ifdef
2020-06-23 02:05:44 -07:00
Ryan
aea2d6845a Fix error_log complaint about Big Series boards (#9510) 2020-06-23 09:40:00 +01:00
moyi4681
a502ce43c3 create maja info json (#9472) 2020-06-23 09:32:45 +01:00
Stefano
b0e30862d6 bm43a stevexyz keymap (#9468)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: steve <steve@stery>
2020-06-23 09:28:05 +01:00
Brandon Schlack
146873fd8e Add more community layout support to Discipline (#8540) 2020-06-23 09:27:34 +01:00
umi
b3b617633c [Docs] Japanese translation of docs/feature_layers.md (#9252)
* add feature_layers.md translation

* update based on comment

* update based on comment

* update based on comment
2020-06-23 16:42:01 +09:00
shela
9ae8a45197 fixed the layer limit of LT() (#9492) 2020-06-23 16:24:23 +09:00
Rozakiin
a8bb5840ad Update VIA support for Noxary 268.2 (#9451)
* Update readme.md description

* Enable bootmagic lite

* Update USB descriptor

* Add modern led code

* Update default keymap for readability

* Update default keymap readme with layout image

* Add VIA keymap

* Update keyboards/noxary/268_2/keymaps/default/readme.md

Flip order of layout image and title

* Update keyboards/noxary/268_2/keymaps/via/readme.md

Flip order of layout image and title

* Update keyboards/noxary/268_2/readme.md

bullet point keyboard maintainer

* Update keyboards/noxary/268_2/readme.md

Change list style
2020-06-22 23:24:33 -07:00
Rozakiin
d353fcb99c Add VIA support to Noxary x268 (#9450)
* Update USB descriptors

* Update default keymap for readability

* Update readme description

* Update rules.mk build options, enable bootmagic and mousekey

* Add commented modern led code

* Add VIA keymap

* Update default keymap readme.md layout image

* Update keyboards/noxary/x268/rules.mk

remove incorrect comment

* Update keyboards/noxary/x268/x268.c

remove commented setPinOutput(B1)

* Update keyboards/noxary/x268/keymaps/default/readme.md

Flip order of layout image and title

* Update keyboards/noxary/x268/keymaps/via/readme.md

Flip order of layout image and title

* Update LED function to led_update_kb()
2020-06-22 23:08:36 -07:00
Manna Harbour
f0bde7906d Update miryoku (#9442)
- Add mouse buttons overlay layer
- Change button order
- Remove crkbd hardware specifics
- Add alternative base layer alphas
- Change title
- Add logo
- Reword intro text
- Add dev branch and new commits links
- Replace manual toc and remove anchors
- Unindent lists
- Reduce headings
- Update docs
- Build keymap as object instead of including .c file
- Add kle subset mapping images
- Add alternative mapping support
- Change default mapping for ortho_4x12
- Add split mapping for ortho_4x12
- Add contact section
- Add #pragma once to layout and keyboard config.h
2020-06-22 22:30:05 -07:00
Josh Hinnebusch
24b0cda3e8 [Keyboard] add h60 PCB (#9242)
* add h60 initial files

* add h60 image

* updated per PR request

* Update keyboards/hineybush/h60/keymaps/default/keymap.c

* Update keyboards/hineybush/h60/keymaps/kei/keymap.c

* Update keyboards/hineybush/h60/keymaps/via/keymap.c

* Update keyboards/hineybush/h60/h60.h

* Update keyboards/hineybush/h60/h60.h

* Update keyboards/hineybush/h60/rules.mk
2020-06-22 12:25:56 -07:00
Takeshi ISHII
1ab8f969f6 [Update] Japanese Translation of docs/faq_build.md (#9458)
* update docs/ja/faq_build.md

* update docs/ja/faq_build.md to 0.9.10

* Update docs/ja/faq_build.md

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

Co-authored-by: shela <shelaf@users.noreply.github.com>
2020-06-22 20:24:33 +09:00
Takeshi ISHII
58af0305f5 [Update] Japanese translation of newbs.md (#9388)
* update docs/ja/newbs.md

* Update docs/ja/newbs.md

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

* Update docs/ja/newbs.md

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

* Update docs/ja/newbs.md

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

Co-authored-by: shela <shelaf@users.noreply.github.com>
2020-06-22 20:13:01 +09:00
umi
c7cc20918b [Docs] Japanese translation of docs/feature_userspace.md (#9253)
* add feature_userspace.md translation

* update based on comment
2020-06-22 20:11:49 +09:00
umi
924573ece2 [Docs] Japanese translation of docs/feature_macros.md (#9137)
* add feature_macros.md translation

* update based on comment

* update based on comment
2020-06-22 20:08:26 +09:00
Ryan
5f06fce2c5 Fix info.json for Uni660 (#9489) 2020-06-22 09:49:47 +01:00
LucW
4b13c49578 user keymaps for ergodox_ez/dvorak_42_key / atreus/dvorak_42_key (#9429)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-06-22 09:45:47 +01:00
Drashna Jaelre
98642ca028 Improve keycode handling for RGB (#7677)
Co-authored-by: drashna <drashna@live.com>
Co-authored-by: noroadsleft <18669334+noroadsleft@users.noreply.github.com>
2020-06-22 09:38:58 +01:00
AlexOConnorHub
82dc8faaf3 Fixing MIDI for ARM without NKRO enabled (#9466) 2020-06-22 08:43:08 +01:00
Paul Ewers
0b09189087 [Keymap] New custom 'super alt' keymap for the Drop ALT (#9385)
* New custom 'super alt' keymap for the Drop ALT

* Improvements to 'super alt' keymap based on PR feedback

* Fix flickering LED caps lock bug

* Code cleanup from PR feedback

* Minor keymap layout cleanup
2020-06-22 16:11:10 +10:00
Nick Brassel
3d6d899666 qmk cformat (#9500) 2020-06-22 11:21:48 +10:00
MechMerlin
cb13dd0a33 Enable NKRO on 1up's boards (#9434)
* enable NKRO and keep consistent with bootmagic set to lite

* Update keyboards/1upkeyboards/1up60hse/rules.mk

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

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-06-21 23:47:41 +01:00
Gregorio
af4bc251f9 Updates on Mixi default keymaps and fixes on configuration (#9467) 2020-06-21 22:59:43 +01:00
shela
e79fb2c26e [Docs] fix indentation (#9491) 2020-06-21 20:03:35 +01:00
Takeshi ISHII
3e0f8f9c8b update docs/ja/feature_bootmagic.md (#9459) 2020-06-21 21:56:06 +09:00
Takeshi ISHII
b0a31f0bf3 update ja/hardware_keyboard_guidelines.md (#9457) 2020-06-21 21:49:43 +09:00
Takeshi ISHII
a91034b802 [Update] Change Original TAGs of Japanese translations (#9453)
* The TAGs of the original document has been updated to facilitate future verification.

 * docs/ja/driver_installation_zadig.md
 * docs/ja/feature_audio.md
 * docs/ja/feature_auto_shift.md
 * docs/ja/feature_bluetooth.md
 * docs/ja/hardware_avr.md
 * docs/ja/hardware_drivers.md
 * docs/ja/getting_started_make_guide.md

* The TAG of the original document has been updated to facilitate future verification.

* The TAG of the original document has been updated to facilitate future verification.

* update docs/ja/feature_tap_dance.md
2020-06-21 21:45:27 +09:00
Takeshi ISHII
2f85f6fbff [Docs] Japanese translation of breaking_changes*.md (#8576)
* add japanese translation 'docs/ja/breaking_changes.md'

Note: this is cherry-pick from umi-umi's translation in PR #7248

* update ja/breaking_changes.md

* update ja/breaking_changes.md, add ja/breaking_changes_instructions.md

* translating ja/breaking_changes_instructions.md

* translating ja/breaking_changes_instructions.md

* translated ja/breaking_changes_instructions.md

* update ja/breaking_changes.md, ja/breaking_changes_instructions.md

Breaking change の訳語を「破壊的な変更」から「互換性を破る変更」に変更。
ただし、文中の用語としては、Breaking change をそのまま使用するむねドキュメントの導入部で
訳注でしめし、文中では、原語のまま使用する。

* update docs/ja/_summary.md

* Update docs/ja/breaking_changes.md

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

* Update docs/ja/breaking_changes.md

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

* Update docs/ja/breaking_changes.md

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

* Update docs/ja/breaking_changes.md

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

* Update docs/ja/breaking_changes.md

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

* Update docs/ja/breaking_changes.md

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

* Update docs/ja/breaking_changes.md

* update docs/ja/breaking_changes.md

* update docs/ja/breaking_changes.md

* update docs/ja/breaking_changes.md

* update docs/ja/breaking_changes.md

* update docs/ja/breaking_changes.md

* Update docs/ja/breaking_changes_instructions.md

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

* Update docs/ja/breaking_changes_instructions.md

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

* update docs/ja/breaking_changes.md

* Update docs/ja/breaking_changes_instructions.md

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

* Update docs/ja/breaking_changes_instructions.md

* Update docs/ja/breaking_changes_instructions.md

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

* update docs/ja/breaking_changes_instructions.md

* update docs/ja/breaking_changes_instructions.md

* The base of the translation of docs/ja/breaking_changes_instructions.md was changed to 0.9.0.

* The base of the translation of docs/ja/breaking_changes.md was changed to 0.9.0.

* Update docs/ja/breaking_changes.md

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

* update docs/ja/breaking_changes.md

* Update docs/ja/breaking_changes_instructions.md

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

* update docs/ja/breaking_changes.md

* update docs/ja/breaking_changes.md

Co-authored-by: umi-umi <57262844+umi-umi@users.noreply.github.com>
Co-authored-by: shela <shelaf@users.noreply.github.com>
Co-authored-by: s-show <s1shimz@gmail.com>
2020-06-21 20:17:16 +09:00
Ryan
32340e14fb Update newbs MSYS2 pacman instructions (#9445) 2020-06-21 10:54:53 +01:00
AlexOConnorHub
b7da69ec85 Adding information to feature_encoders.md (#9486)
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-06-21 17:10:01 +10:00
cole smith
f36112e957 added keyboard 5x12 to boardsource folder (#9438)
* added keyboard 5x12 to boardsource folder

* Apply suggestions from code review

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

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-06-20 23:13:43 +01:00
Drashna Jaelre
30cdf9331a Change led variable in rgb_matrix_drivers to avoid conflicts (#9412)
* Change `led` to `led_matrix` in rgb_matrix_drivers

Is a minor change that only affects the driver file. 

However, this will allow somebody to run rgblight along side rgb matrix
using the ws2812 driver, as well.  Specifically, so you can use the
custom driver for rgblight to set a different pin (barring a change to
the `ws2812_setleds` function).  

Courtesy of discord conversion:
https://discordapp.com/channels/440868230475677696/568161140534935572/721555623191248906

* Change name to be super specific

* Update rgb_matrix_drivers.c
2020-06-20 23:07:26 +01:00
stanrc85
8252f378d9 Add velocikey to alice keymap (#9476) 2020-06-20 22:57:33 +01:00
siano
d7f9e6fcf1 Added missing RGB controls on layer 1. (#9481) 2020-06-20 22:47:09 +01:00
Joshua Diamond
5c07363054 spidey3 userspace: GUI F-Key lock was affecting some non-F-keys (#9469) 2020-06-20 22:39:45 +01:00
Joel Challis
b6e9ef8dd1 CI: Run 'qmk info' on keyboard changes (#9212) 2020-06-20 22:19:56 +01:00
Thorsten
e58ab6d326 update shell.nix (#8910)
* now uses gcc 8.4
* fixes building boards with adafruit feather (in my case pancake)
2020-06-20 22:03:06 +01:00
Konstantin Đorđević
02781979d6 [Docs] Improve Unicode documentation (#8676) 2020-06-20 21:58:48 +01:00
Ryan
69b484600f Remove more useless code (#9475) 2020-06-20 21:51:50 +01:00
MechMerlin
de79d55187 New Keyboard: E8.5 TKL (#9447)
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-06-20 21:47:50 +01:00
Takeshi ISHII
580cb2c1df [Update] Files with Japanese translations related to #8822 (#9455)
* The TAG of the original document has been updated to facilitate future verification.

* The TAG of the original document has been updated to facilitate future verification.

* The TAG of the original document has been updated to facilitate future verification.
2020-06-20 21:02:16 +09:00
MelGeek
d9eae3ef03 Support IS31FL3741 and IS31FL3741A. (#9201) 2020-06-20 14:49:15 +10:00
James Young
05e6cc2655 Enable Mousekeys for Keebio Quefrency rev1 (#9478) 2020-06-20 13:45:25 +10:00
QMK Bot
8b572de523 format code according to conventions [skip ci] 2020-06-20 03:37:04 +00:00
Joshua Diamond
18e561b82c Fix incorrect delay when setting WS2812 (and similar) leds (#9302)
* Fix incorrect delay when setting WS2812 (and similar) leds

* Add documentation for WS2812_DELAY_MICROSECONDS

* Remove improper cast to uint8_t

Co-authored-by: Sergey Vlasov <sigprof@gmail.com>

* Remove unneeded cast to uint8_t and correct math

Co-authored-by: Sergey Vlasov <sigprof@gmail.com>

* microseconds -> µs

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

* Make documentation better match the spec sheet.

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

* Rename macro to match spec sheet

* Further correction to the delay maths for the SPI case.

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

* Move ws2812_common.h to the drivers directory

* Revert "Further correction to the delay maths for the SPI case."

This reverts commit e61b56a2cfc7dfec9992a7a3af92afa50e5b8ec0.

* Remove ws2812_setleds_pin(); consolidate ws2812.h

Co-authored-by: Sergey Vlasov <sigprof@gmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
2020-06-20 12:59:28 +10:00
Xelus22
c785148445 STM32 WS2812 Open Drain Configuration (#9414)
* update docs stm32 only and applies  to all 3 driver
* cformat
2020-06-20 08:35:32 +10:00
Rossman360
b43bdc1c69 rebound rev4, consolodated switch matrix from 5x12 to 7x8 (#9314) 2020-06-20 08:27:27 +10:00
Ryan
5a5ecd7dd9 Remove rules.mk for gboards/engine and gboards/g (#9444) 2020-06-19 15:51:50 +10:00
AlisGraveNil
60be8d9f24 [Keyboard] GameBuddy macropad (#9391)
* GameBuddy macropad

* Update config.h

* Update keyboards/clawsome/gamebuddy/config.h

* Update keyboards/clawsome/gamebuddy/readme.md

* Update keyboards/clawsome/gamebuddy/readme.md

* Update keyboards/clawsome/gamebuddy/readme.md

* Update readme.md

* Update keyboards/clawsome/gamebuddy/rules.mk

* Update keyboards/clawsome/gamebuddy/readme.md
2020-06-18 20:31:51 -07:00
Ryan
3f85e90126 Fix Eon87 info.json (#9460)
* Fix Eon87 info.json

* Adjust bottom row sizes
2020-06-18 20:16:57 -07:00
Niclas
3eefe31a54 Keymap: Add custom keymap for Planck (#9417)
* Keymap: Add custom keymap for Planck

* Fixup buffet's planck keymap
2020-06-18 18:32:27 -07:00
Rozakiin
7be65f2cd0 Add VIA support to Noxary 220 and Update Noxary 280 for readability (#9348)
* Update noxary 220 readme.md

* Update Noxary 280 readme.md 

add heading and spelling

* Update spelling of Noxary 280 keymap copyright

* Update Noxary 280 config.h

change product ID and product name, remove commented code

* Change  MCU name and disable Mousekey

* Update Noxary 220 config.h

Change vendor ID, Product ID, Product name and desc, remove commented code

* Update 220.h

change LAYOUT_ortho_6x4 to LAYOUT, change copyrght to Rozakiin

* Change LED indicator function

update copyright to Rozakiin

* Add via keymap

* Update  Noxary 220 default keymap for readability and numpad codes

* Update all Noxary 220 readme.md to conform to QMK templates

* Update Noxary 280 readme.md to conform to QMK template

* Disable console and command, and enable link time optimisation for VIA

* Update Noxary 280 keymaps for better readability

* Update keyboards/noxary/220/keymaps/default/keymap.c

* Update keyboards/noxary/220/220.h

* Update keyboards/noxary/220/keymaps/default/keymap.c

* Update keyboards/noxary/220/keymaps/default/keymap.c

* Update keyboards/noxary/220/keymaps/via/rules.mk

* Update keyboards/noxary/280/keymaps/default/keymap.c

* Update keyboards/noxary/280/keymaps/via/rules.mk

* Update keyboards/noxary/220/rules.mk

* Update keyboards/noxary/280/keymaps/via/keymap.c

* Update keyboards/noxary/220/keymaps/default/keymap.c

* Update keyboards/noxary/220/keymaps/default/keymap.c

* Update keyboards/noxary/220/keymaps/via/keymap.c

* Update keyboards/noxary/220/keymaps/via/keymap.c

* Update keyboards/noxary/220/keymaps/via/keymap.c

* Update keyboards/noxary/220/keymaps/via/keymap.c

* Update keyboards/noxary/220/keymaps/via/keymap.c

* Update keyboards/noxary/280/config.h

* Update keyboards/noxary/220/rules.mk

* Update keyboards/noxary/220/config.h

* Update keyboards/noxary/280/readme.md

Change layout links to ones with background removed
2020-06-18 13:14:09 -07:00
Takeshi ISHII
016b4be751 Update docs/ja/feature_backlight.md: apply #9043's change (#9454) 2020-06-19 04:53:16 +09:00
Ryan
db80209e69 Parse version better in qmk doctor GCC version checks (#9324) 2020-06-18 19:37:47 +01:00
Brad Arnett
716924de3e [Keyboard] Added ymdk split64 based on walston's work (#9183)
* Added ymdk split64 based on walson's work

* Commented out features on walston's keymap as it was too big to compile

* Update keyboards/ymdk_sp64/config.h

* Update keyboards/ymdk_sp64/keymaps/daed/keymap.c

* Update keyboards/ymdk_sp64/matrix.c

* Update keyboards/ymdk_sp64/matrix.c

* Update keyboards/ymdk_sp64/matrix.c

* keymap changes

* Update keyboards/ymdk_sp64/matrix.c

* Update keyboards/ymdk_sp64/matrix.c

* Update keyboards/ymdk_sp64/rules.mk

* Update keyboards/ymdk_sp64/config.h

* Update keyboards/ymdk_sp64/config.h

* Update keyboards/ymdk_sp64/readme.md

* Update keyboards/ymdk_sp64/rules.mk

* Update keyboards/ymdk_sp64/config.h

* Update keyboards/ymdk_sp64/rules.mk

* Update keyboards/ymdk_sp64/ymdk_sp64.c

* Update keyboards/ymdk_sp64/keymaps/walston/rules.mk

* Update keyboards/ymdk_sp64/readme.md

* Made requested changes and moved keyboard under ymdk directory

* Update keyboards/ymdk/ymdk_sp64/keymaps/walston/keymap.c

* Update keyboards/ymdk/ymdk_sp64/config.h

* Update keyboards/ymdk/ymdk_sp64/config.h

* Update keyboards/ymdk/ymdk_sp64/keymaps/default/keymap.c

* Update keyboards/ymdk/ymdk_sp64/keymaps/default/keymap.c

* updated changes for pr 9183

* updated changes for pr 9183

* updated changes for pr 9183

* Removed redundant "QMK_KEYBOARD_H" include
2020-06-18 03:01:22 -07:00
James Young
d88dca3ca7 YMD75: move MCU/Bootloader rules to revision level (#9452)
Work-around for an issue with QMK Configurator's API.
2020-06-18 00:15:22 -07:00
Joshua Diamond
9c1097e768 Fix for One Shot Layer not being cleaned up after some actions (#8832) 2020-06-18 08:07:48 +01:00
Jason Laqua
f7eb030e91 Standardize how unicode is processed (fixes #8768) (#8770)
Co-authored-by: Konstantin Đorđević <vomindoraan@gmail.com>
2020-06-18 08:07:34 +01:00
Yasha Mostofi
aae1814319 [Keyboard] Add Via support for Let's Split v2 (#9448)
* initial let's split with rgb

* Revert default

* Add Via keymap

* Remove my keymap

* Remove trailing slashes
2020-06-18 00:06:11 -07:00
Dan
78fdd40622 [Keymap] Dcompact for iris (#9406)
Co-authored-by: Dan Herrera <sonarius@shew.io>
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-06-17 22:20:45 -07:00
Pierre Chevalier
43b6f031b1 [Keymap] Add pierrec83's Kyria keymap (#9401) 2020-06-17 22:18:16 -07:00
yiancar
3e27ceee42 [Keyboard] Nebula12 keyboard (#9397)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2020-06-17 22:16:26 -07:00
unicorn855
67f374029d [Keyboard] added VIA support for HotDox (#9377)
* added VIA support for HotDox

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

Thank you drashna :)

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

Co-authored-by: Drashna Jaelre <drashna@live.com>
2020-06-17 21:52:33 -07:00
Gregorio
30fd69886d [Keyboard] Add Mixi (#9364)
* [Keyboard] Add Mixi

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

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-06-17 21:39:16 -07:00
Maarten Dekkers
ed528403fd [Keyboard] Add Eon87 (#9337)
Co-authored-by: Maarten Dekkers <maartenn2001@gmail.com>
2020-06-17 21:30:34 -07:00
Ryan
faae375ccd Fix error_log complaint about Preonic layouts (#9443) 2020-06-17 21:23:09 -07:00
James Young
b0fd064491 Fix Kudox Columner Configurator key ordering (#9427) 2020-06-17 20:47:52 -07:00
James Young
abf466e57d Add Configurator layout support for westfoxtrot/prophet (#9428) 2020-06-17 20:47:25 -07:00
KgOfHedgehogs
157319fbd0 [Keyboard] Jian keyboard (#8914)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Nick Brassel <nick@tzarc.org>
2020-06-17 19:17:30 -07:00
Dan
39ff121d73 Implement game mode layer for dcompact on planck (#9402) 2020-06-17 18:53:36 -07:00
Hybrid
8018f4db2d [Keymap] new keymap for XD75 (#8675)
Co-authored-by: grousselle <grousselle@WX-OR6215570.ad.francetelecom.fr>
2020-06-17 18:32:02 -07:00
Ryan
1a159a38ed Clean up Tap Dance docs (#9372)
* Clean up Tap Dance docs

* Add heading IDs for translation
2020-06-17 17:10:35 -07:00
Erovia
a0bf235644 CLI: Add ATmega328 and ATtiny85 to supported CPUs (#9371)
* CLI: Add ATmega328 to supported CPUs

Support for ATmega328 was added in #9043.

* Update lib/python/qmk/constants.py
2020-06-17 15:45:53 -07:00
Ryan
f420741f9b Fix error_log complaint about clueboard/66_hotswap/gen1 layout macro (#9400)
* Fix error_log complaint about clueboard/66_hotswap/gen1 layout macro

* Remove gen1 info.json in favour of higher level file

* Split into revision-specific info.json
2020-06-17 00:30:54 -07:00
yiancar
0b7b74f56a Nebula65 (#9368)
* Initial nebula65 commit

* Use PWM driver

* Polishing

* Remove random rgblight settings

* Spelling fix

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

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

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

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

* Update keyboards/nebula65/readme.md

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

* Update keyboards/nebula65/readme.md

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

* Clean includes in .h file

* Update keyboards/nebula65/readme.md

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

* Further cleanup

Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2020-06-16 14:02:01 -07:00
cole smith
80b2b710da added 4x12 (#9411)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2020-06-16 20:08:30 +01:00
MURAMATSU Atshshi
3814dacf27 [Keymap] Add froggy keymap with 106/109 (JP) settings for helix keyboard (#8967)
* initial commit for froggy 106 key mode

* add mode indicator on OLED

* use #pragma once instead of include guard

* remove unusable codes

* remove audio codes, because helix rev.2 has no audio feature

* use set_single_persistent_default_layer

* remove eeprom update check
2020-06-15 21:46:12 -07:00
csc027
7576f6162e [Keymap] csc027/keymap-updates (#9420) 2020-06-15 03:48:21 -07:00
Thomas Lim
e8a02afc8c Add VIA support to keebio/nyquist (#9399) 2020-06-15 20:45:56 +10:00
Drashna Jaelre
357a888d80 [Keymap] Drashna's Keymap Update - Display Edition (#9282)
OLED Display fixes
Add support for RGBLIGHT Layers
Add gaming layer to corn and kyria
RGBLight Startup Animation fixes and improvements (uses matrix_scan now!)
Pimoroni Trackball support added (IT'S RGB!!!)
Fix issues due to code changes
2020-06-15 03:41:28 -07:00
William Lindvall
7f5656996c [Keymap] Add "shwilliam" Preonic keymap (#9409)
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-06-15 03:26:58 -07:00
James Young
b008a9afe6 HID Liberation Device Refactor and Configurator layout support (#9394) 2020-06-15 03:11:19 -07:00
James Young
d8e3294aea [Keyboard] Fix Configurator layout data for handwired/1800fl (#9393) 2020-06-15 03:10:15 -07:00
James Young
a8d073368f [Keyboard] Fix Configurator layout data for acheron/elongate (#9392) 2020-06-15 03:09:48 -07:00
Ryan
44d93285d1 Change ?= to = in keyboard rules.mk (#9390) 2020-06-15 03:06:10 -07:00
Reed
8e0af2f5ba [Docs] Fix link to mod_tap.md in the one_shot_keys.md file (#9380) 2020-06-15 02:55:00 -07:00
Josh Johnson
da76734fe0 [Keyboard] Hub16 keymap bugfix (#9345) 2020-06-15 02:17:30 -07:00
Maarten Dekkers
c029c5b187 [Keyboard] Add Eon75 (#9333)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Maarten Dekkers <maartenn2001@gmail.com>
2020-06-15 02:09:24 -07:00
jems-lee
294cfd8d33 Delete trailing period in documentation (#9416) 2020-06-15 02:49:36 +10:00
George Mao
622e94c6cd [Keyboard] Add S7 Elephant Rev2 Support (#9398)
* Add S7 Elephant Rev2 Support

* Apply suggestions from code review

I tested the changes on my board as well, thanks for the suggestions!

* Added a default folder in the makefile so that this would no longer be a breaking change
2020-06-13 23:45:47 -07:00
cole smith
ba7f52aaeb Boardsource 3x4 info json fix (#9266)
* added bordsource 3x4 macro pad

* added bordsource 3x4 macro pad

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

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

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

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

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

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

* added link to readme

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

* Apply suggestions from code review

* changed the layout to refelect the keyboard

* Update keyboards/boardsource/3x4/info.json

Oh your right my bad. In the future is there an easier way for me to test the info.json and the confiscator before doing my pr?

* Apply suggestions from code review

* got 3x4 building again

* Apply suggestions from code review

* applied requested change on readme

* Update keyboards/boardsource/3x4/readme.md

* Apply suggestions from code review
2020-06-13 12:08:54 -07:00
Sid Carter
307013a2f8 [Keymap] Personal keymaps for Prime_E, Corne, Space65 and updates (#9234)
* initial draft maps

* updates to the keymap to enable LED

* does one still have to do these shenanigans?

* update keymap with lights

* update OLED stuff

* update corne config

* update singav3 pcb config

* update ilpse config and map

* update prime keymap as well

* update the keymap for prime_e

* update tapping term and keymap

* switch numbers to the raise layer

* move nav to lower

* add mousekeys as well

* some fixes

* update keymap

* add my layout for space65

* update map

* update keymap

* add grave key

* update  config for my keymap

* update keymap

* switch to newer mechanisms

* grave on capslock

* cleanup

* udpate config

* update keymap

* Update keyboards/gray_studio/space65/keymaps/madhatter/rules.mk

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

* Update keyboards/crkbd/keymaps/madhatter/rules.mk

* Update keyboards/crkbd/keymaps/madhatter/rules.mk

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

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

* Update keyboards/primekb/prime_e/keymaps/madhatter/config.h

* Update keyboards/gray_studio/space65/keymaps/madhatter/config.h

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

* Update keyboards/wilba_tech/wt75_b/keymaps/madhatter/config.h

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

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

* Update keyboards/gray_studio/space65/keymaps/madhatter/config.h

* Update keyboards/primekb/prime_e/keymaps/madhatter/config.h

* Update keyboards/wilba_tech/wt75_b/keymaps/madhatter/config.h

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

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

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

* Update keyboards/crkbd/keymaps/madhatter/readme.md

* remove file I don't use
2020-06-13 12:03:11 -07:00
QMK Bot
f68abbf6c8 format code according to conventions [skip ci] 2020-06-13 18:51:08 +00:00
qunguyentk
897c4cd175 [Keyboard] Add Batpad 2x4 PCB (#9295)
* Add files via upload

* Update config.h

* Update config.h

* Update keyboards/Yncognito/batpad/batpad.c

* Update batpad.c

* Update keyboards/Yncognito/batpad/keymaps/default/keymap.c

* Update keyboards/Yncognito/batpad/batpad.h

* Update keyboards/Yncognito/batpad/keymaps/default/keymap.c

* Update keyboards/Yncognito/batpad/keymaps/default/keymap.c

* Update keyboards/Yncognito/batpad/keymaps/via/keymap.c

* Update keyboards/Yncognito/batpad/keymaps/via/keymap.c

* Update keyboards/Yncognito/batpad/keymaps/via/keymap.c

* Update keyboards/Yncognito/batpad/batpad.c

* Rename keyboards/Yncognito/batpad/rules.mk to keyboards/yncognito/batpad/rules.mk

* Rename keyboards/Yncognito/batpad/readme.md to keyboards/yncognito/batpad/readme.md

* Rename keyboards/Yncognito/batpad/info.json to keyboards/yncognito/batpad/info.json

* Rename keyboards/Yncognito/batpad/config.h to keyboards/yncognito/batpad/config.h

* Rename keyboards/Yncognito/batpad/batpad.h to keyboards/yncognito/batpad/batpad.h

* Rename keyboards/Yncognito/batpad/batpad.c to keyboards/yncognito/batpad/batpad.c

* Rename keyboards/Yncognito/batpad/keymaps/default/readme.md to keyboards/yncognito/batpad/keymaps/default/readme.md

* Rename keyboards/Yncognito/batpad/keymaps/default/keymap.c to keyboards/yncognito/batpad/keymaps/default/keymap.c

* Rename keyboards/Yncognito/batpad/keymaps/default/config.h to keyboards/yncognito/batpad/keymaps/default/config.h

* Rename keyboards/Yncognito/batpad/keymaps/via/rules.mk to keyboards/yncognito/batpad/keymaps/via/rules.mk

* Rename keyboards/Yncognito/batpad/keymaps/via/keymap.c to keyboards/yncognito/batpad/keymaps/via/keymap.c

* Rename keyboards/Yncognito/batpad/keymaps/via/config.h to keyboards/yncognito/batpad/keymaps/via/config.h

* Update keyboards/yncognito/batpad/readme.md

* Update keyboards/yncognito/batpad/readme.md

* Update keyboards/yncognito/batpad/rules.mk

* Delete config.h

* Delete config.h

* Update readme.md

* Update keyboards/yncognito/batpad/batpad.c

* Update keyboards/yncognito/batpad/readme.md

* Update keyboards/yncognito/batpad/keymaps/via/keymap.c

* Update keyboards/yncognito/batpad/info.json

* Update keyboards/yncognito/batpad/batpad.h
2020-06-13 11:48:48 -07:00
elmo-space
1f2807c2de Add ANSI and ISO layout for KBD67mkII soldered PCB (#9340)
* add ansi and iso layouts

* fix iso map mistake

* fix mistake again...

* Update keyboards/kbdfans/kbd67/mkii_soldered/keymaps/iso/keymap.c

* rename layout macros to the blocker variants and add ansi_split_bs

* Apply suggestions from code review
2020-06-13 11:45:03 -07:00
mechlovin
b160913309 [Keyboard] Add new PCB Infinity87 (#9287)
* Add new PCB Infinity87

* Update keymap.c

* Update readme.md

* Update rules.mk

* update

* Update info.json
2020-06-13 11:43:04 -07:00
Maarten Dekkers
867fded980 [Keyboard] Add OmronTKL (#9346)
* Add OmronTKL

* Fix column pins
2020-06-13 11:41:53 -07:00
Callum Oakley
d1730ec760 [keymap] upstreaming a minor keymap update (#9366) 2020-06-13 21:11:28 +10:00
Gautham Yerroju
4057d44989 [Keymap] Add Kyria keymap (#9224)
* Add Kyria keymap

* clean split hand detection code

* rename "joystick" to "thumbstick"

* thumbstick overhaul

* removed angle correction, seems buggy

* save some memory

* Remove deprecated config option

* Use the correct types for getting host led states

* Fix include path

* Made .h files for encoder and oled code

* Increase speed cap on thumbstick
2020-06-13 01:24:13 -07:00
Gautham Yerroju
2bfcb6bfc5 [Keymap] Add custom corne keymap (#9283)
* Add custom corne keymap

* Clean up rules.mk

* Clean up base layer on keymap.c

* Clean up lower layer on keymap.c

* Clean up raise layer on keymap.c

* Clean up adjust layer in keymap.c
2020-06-13 01:18:33 -07:00
mcarni
1f42071238 dz60 iso split - cleaned up the readme and replaced normal key with numpad key on numpad layer (#9339)
* README cleanup

* replaced "normal" numbers with "keypad" numbers:
KC_P4 replaced by KC_KP_P4

* replaced "normal" keys on Numpad Layer with the "KeyPad" keys
KC_1 replaced by KC_P1 etc.
2020-06-13 00:29:22 -07:00
MechMerlin
400423d10b VIA Support: Noxary 260 (#9349)
* add VIA support to noxary 260

* change the layout macro to be 60_ansi as thats going to be the base VIA layout

* update readme
2020-06-13 00:16:07 -07:00
Andrew Kannan
54ef02dead Fix project alice indicators (#9342) 2020-06-13 00:06:38 -07:00
umi
044b4aaf01 [Docs] Japanese translation of docs/feature_split_keyboard.md (#9031)
* add feature_split_keyboard.md translation

* add header for git

* update based on comment

* update based on comment
2020-06-12 23:50:19 -07:00
Catriel Müller
ccb4b81b3f Fix my personal keymap // Custom keymap for Kbdfans/kbd67/rev2 with improvements on Accessibility (#9207)
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-06-11 22:39:56 +10:00
Adrian
e269977387 Murcielago: improve default keymap (#9363)
* Squashed new default keymap for murcielago
2020-06-11 04:45:53 -07:00
Sergey Vlasov
0cb4da2c74 Really fix Ubuntu/Debian setup when $PATH contains spaces (#9370)
PR #9307 fixed the immediately visible problem (the command that was
added to $HOME/.bashrc was incorrect because of missing quotes around
paths with spaces).  However, the modified command is still wrong - it
captures the value of $PATH at the setup time, and the resulting command
written out to $HOME/.bashrc will overwrite $PATH with that captured
value, ignoring any changes in the environment.  This may be especially
important for WSL, where the initial value of $PATH in Linux includes
everything which has been added to %PATH% on the Windows side; after
adding that command to $HOME/.bashrc the WSL environment will no longer
pick up any changes made by newly installed Windows software.

Instead of that, use single quotes around the command, so that the
environment variables are not expanded at the setup time, and the
command that is added to $HOME/.bashrc becomes exactly this:

    PATH="$HOME/.local/bin:$PATH"

This command will use the $HOME and $PATH environment variable values at
the time the command is executed, not at the time the QMK setup is
performed, so any further updates to $PATH are taken into account.
Double quotes also ensure that the command is safe even if the values of
those environment variables contain spaces.
2020-06-11 12:26:10 +01:00
James Young
9b0c734733 Fix Configurator layout data for clueboard/2x1800/2019 (#9373) 2020-06-11 12:07:15 +01:00
George Mao
fffee6ade1 Fixing Iron165 VIA Keymap (#9298)
* Fixing via issues

* Fixing whitespace issues on the keymap

* Fixed the default via layer 1 keymap, was a little weird before

* Removing redundant declarations in via/rules.mk
2020-06-11 00:12:53 +01:00
neon4272
97ddc7ea18 Fix Ubuntu/Debian setup when $PATH contains spaces (#9307)
* Change `echo` to `export`

* Add `export` as a note under the `echo` command

* Remove note from last commit

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

* Update docs/newbs_getting_started.md

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

* Update docs/newbs_getting_started.md

Add 1 line of whitespace under note

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

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-06-10 23:46:13 +01:00
Nick Brassel
3afd2d81b8 Add documentation for selecting an Arm MCU (#9046)
* Initial doco write-up.

* Update docs/platformdev_selecting_arm_mcu.md

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

* Apply suggestions from code review

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

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-06-10 23:32:58 +01:00
precondition
2543bad250 [Docs] Fixed the hyperlink to /users/_example/. (#9326) 2020-06-10 15:27:25 -07:00
MechMerlin
a056d94561 [keyboard] Project Keyboard Signature 87 (#9062)
* preliminary check in, basically a copy from 159's github with a few additions to get it to compile

* update readme

* fixup the LAYOUT macro labels to be more reasonable

* add tkl_ansi LAYOUT macro for community layout support

* clean up rules.mk, add community layout suport, and add in bootloader

* add a tsangan layout macro

* spruce up readme

* add VIA keymap

* add qmk configurator support

* Update keyboards/projectkb/signature87/rules.mk

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

* Update keyboards/projectkb/signature87/rules.mk

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

* Update keyboards/projectkb/signature87/rules.mk

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

* remove unneeded file

* Update keyboards/projectkb/signature87/config.h

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

* Update keyboards/projectkb/signature87/rules.mk

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

* Update keyboards/projectkb/signature87/config.h

Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-06-10 23:26:21 +01:00
Drashna Jaelre
573d1fbb92 Include pointing_device_send in docs (#9185) 2020-06-10 23:18:53 +01:00
Tsan-Kuang Lee
437446ba8f Fix one shot swaphands compiler error when NO_ACTION_ONESHOT is defined (#9296)
* init

* add RETRO_TAP; tap anyway after TAP_TERM, if no interruption

* RETRO_TAP works for other types of taps

* revert to upstream/master

* explain this fork in readme

* use one readme.md file instaed

* fix the error if NO_ACTION_ONESHOT is defined

* restore readme.md to upstream master

Co-authored-by: Tsan-Kuang Lee <tsan.kuang.lee@gmail.com>
2020-06-10 22:40:17 +01:00
James Incandenza
8640b43214 [Keymap] WPM-responsive OLED animation in personal keymap (#9264)
Using the wpm feature, I create a responsive OLED animation that changes based on how fast the user types. As written there are three phases (It's bongo cat!) but can easily be reconfigured and replaced with other images.

Multiple byte arrays consume considerable space so choose your usage wisely. When customized, the smaller the byte array used, the better, due to space limitations on most microcontrollers.

I made this with no prior knowledge of C, so I'm looking forward to any and all suggested improvements.

Credit is owed to obosob for laying the foundation for this little script as well to /u/pixelbenny for graciously providing the bongocat artwork I adapted for the animation.

The config.h includes a tweak to the Kyria's LED mapping, so that the order now reflects their physical positions, making animations smoother.

Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Simon Schuster <SimonSchuster@Simons-MacBook-Pro-2.local>
Co-authored-by: James Incandenza <james@ij.net>
2020-06-10 14:39:07 -07:00
yfuku
09fc6cab34 Add bat43 rev2 (#9319)
* add rev2

* Update keyboards/bat43/rev1/rules.mk

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

* Update keyboards/bat43/rev2/rules.mk

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

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-06-10 22:38:11 +01:00
elmo-space
7e8dc2e570 [Keymap] Add dual layer keymap for xd002 macropad (#9222)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2020-06-10 14:33:26 -07:00
Keebz Dot Net
263536586d [Keyboard] Wazowski 23-19 PCB Support (#9198)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Chris Figueroa <chrisfigueroa16@gmail.com>
2020-06-10 14:32:03 -07:00
itsnoteasy
7aa4cc9603 adds support for the atmega328 (#9043)
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-06-10 22:23:11 +01:00
Chandler
e26bc21d14 fix rgb mode selection and lighting increments for the 1894 (#9336) 2020-06-10 21:32:19 +01:00
Danny
5c2b46dc47 Add Sinc keyboard (#8986)
* Add Sinc (WIP)

* Rename layouts, add keymaps

* Set EEPROM VIA layout value

* Update QMK Configurator json

* Update VIA layout value

* Add default folder

* Add PR suggestions

* Fix keyboard name
2020-06-10 20:12:02 +01:00
fluffactually
713d34cda4 Add new iris keymap 'fluffactually' (#9325)
* Add new iris keymap 'fluffactually'

* Keymap suggested changes - layer_state_t
2020-06-10 18:45:22 +01:00
Sergey Vlasov
cce301ae83 kbdfans/kbd67/rev2: Fix ISO layout macro (#9329)
A user in Discord reported that the right bracket and ISO hash keys on
KBD67 rev2 using LAYOUT_65_iso were swapped.  When comparing
LAYOUT_65_iso with LAYOUT_65_ansi, the problem with a wrong assignment
of the right bracket key is obvious — that key is K1D in the ANSI layout
macro, but the ISO layout macro had K1E there, and K1D at the position
of the ISO hash key.

Fix the LAYOUT_65_iso macro by swapping those arguments (and also align
the K1D argument for the right bracket key properly).
2020-06-10 18:43:09 +01:00
James Young
08e08b660c Add VIA support to KC60 (#9351)
* Add VIA support to KC60

* enable Bootmagic Lite
2020-06-10 17:34:18 +01:00
Adrian
cff3c3bf28 Fixed slave-side keyboard half unresponsiveness (#9360)
* Fixed slave-side keyboard half unresponsiveness
due to how LUFA handles USB_Disable()

* changes to formatting

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

Co-authored-by: Joel Challis <git@zvecr.com>
2020-06-10 17:25:45 +01:00
umi
b7cb4111ea [Docs] Japanese translation of docs/feature_wpm.md (#9254)
* add feature_wpm.md translation

* update based on comment

* update based on comment

* update based on comment
2020-06-10 21:04:39 +09:00
Danny
184c362324 Add BDN9 rev2 (#9017) 2020-06-09 22:32:46 -04:00
James Young
1d1c0503b6 Gami Studio Lex60: Configurator Layout support (#7726)
* Gami Studio Lex60: Configurator Layout support

* correct key sizes on bottom row per lukelex

* add LAYOUT_60_ansi

To test, run `make gami_studio/lex60:default_60_ansi` and flash.

* add 60_ansi keymap

To test, run `make gami_studio/lex60:60_ansi` and flash.

* remove data for 60_ansi layout
2020-06-09 19:22:33 -07:00
AlisGraveNil
01e74b0ac6 Sidekick/qmk firmware (#9229)
* 5/28/20

* Create readme 2.md

* Revert inadvertently changed files

* Update keyboards/clawsome/sidekick/config.h

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

* Update keyboards/clawsome/sidekick/rules.mk

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

* Update keyboards/clawsome/sidekick/config.h

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

* Update keyboards/clawsome/sidekick/info.json

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

* Update keyboards/clawsome/sidekick/info.json

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

* Update keyboards/clawsome/sidekick/rules.mk

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

* Update keyboards/clawsome/sidekick/rules.mk

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

* Update keyboards/clawsome/sidekick/rules.mk

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

Co-authored-by: Nick Brassel <nick@tzarc.org>
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-06-10 11:04:02 +10:00
Rolf Don
c0cb2ab1c1 Adding extra supported Boardwalk layout (#9341)
* Added ortho layout with 2x2u spacebars
2020-06-09 17:22:28 -07:00
clanghans
7281e86e98 XD75 clanghans layout (#9313)
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-06-10 05:11:01 +10:00
Maarten Dekkers
86812f22e4 [Keyboard] Add nt660 PCB (#9042)
* Upload nt660 files

* Apply suggestions from code review

* Apply suggestions from code review
2020-06-09 12:10:00 -07:00
Cable Car Designs
b83fb9eb71 [Keyboard] add prophet support (#9275)
* add prophet support

* Update keyboards/westfoxtrot/prophet/config.h

* Update keyboards/westfoxtrot/prophet/rules.mk

* Update keyboards/westfoxtrot/prophet/config.h

* Update keyboards/westfoxtrot/prophet/prophet.c

* Update keyboards/westfoxtrot/prophet/readme.md

* Update keyboards/westfoxtrot/prophet/readme.md

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

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

* Update keyboards/westfoxtrot/prophet/keymaps/via/keymap.c

* Update keyboards/westfoxtrot/prophet/keymaps/via/keymap.c

* Update keyboards/westfoxtrot/prophet/keymaps/via/keymap.c

* Update keyboards/westfoxtrot/prophet/keymaps/via/keymap.c

* remove bootloader_defs
fixed via keymap

* Update keyboards/westfoxtrot/prophet/prophet.h

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

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

* Update keyboards/westfoxtrot/prophet/keymaps/via/keymap.c

* Update keyboards/westfoxtrot/prophet/keymaps/via/keymap.c

* Update keyboards/westfoxtrot/prophet/keymaps/via/keymap.c

* changed vendor id

* changed prophet.c
2020-06-09 11:37:41 -07:00
Ryan
3736db6081 Add OS compatibility matrix for basic keycodes (#8557) 2020-06-09 12:28:36 +01:00
Takeshi ISHII
b19187c62c [Update] Japanese translation of newbs_learn_more_resources.md (#9288)
* Updated the Japanese translation of newbs_learn_more_resources.md

Updated the Japanese translation of newbs_learn_more_resources.md to 0.9.0.

* update docs/ja/newbs_learn_more_resources.md

* update ja/newbs_learn_more_resources.md
2020-06-09 00:04:14 +09:00
Takeshi ISHII
4a7725b3ee [Update] Japanese translation of docs/newbs_testing_debugging.md. (#9286)
* Updated the Japanese translation of newbs_testing_debugging.md.

Updated the Japanese translation of newbs_testing_debugging.md to 0.9.0.

* Update docs/ja/newbs_testing_debugging.md

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

* Update docs/ja/newbs_testing_debugging.md

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

* Update docs/ja/newbs_testing_debugging.md

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

Co-authored-by: s-show <s1shimz@gmail.com>
Co-authored-by: shela <shelaf@users.noreply.github.com>
2020-06-09 00:02:32 +09:00
Maarten Dekkers
93a1c5ca16 [Keyboard] Add VIA support for Eon40 (#9330)
Co-authored-by: Maarten Dekkers <maartenn2001@gmail.com>
2020-06-07 23:57:49 -07:00
Ryan
407d6a2b67 [Keyboard] Fix error_log complaint about handwired/onekey layout macro (#9263) 2020-06-07 22:49:18 -07:00
umi
d7523c1260 [Docs] Japanese translation of docs/feature_ps2_mouse.md (#9030)
* add feature_ps2_mouse.md translation

* update based on comment

* update based on comment

* update based on comment

* update based on comment
2020-06-08 02:26:30 +09:00
umi
a7f093b40c [Docs] Japanese translation of docs/feature_terminal.md (#9033)
* add feature_terminal.md translation

* add header for git

* update based on comment
2020-06-08 02:24:35 +09:00
Pete Johanson
b9a38487f3 [Docs] Update udev rules to use TAG+="uaccess". (#8750) 2020-06-07 09:06:55 +01:00
umi
9f400794c0 [Docs] Japanese translation of docs/feature_swap_hands.md (#9032)
* add feature_swap_hands.md translation

* update based on comment

* back to original translation
2020-06-07 03:08:24 +09:00
Frothy
12efb28e13 [Keyboard] Add Via config for Clueboard 66 (#9010)
* Added Via config for Clueboard 66

* Update keyboards/clueboard/66/keymaps/via/rules.mk

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

* Enabled MouseKeys

This required enabling LINK_TIME_OPTIMIZATION_ENABLE

* Added 4th layer as per tzarc's recommendation on another PR

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-06-06 08:56:59 -07:00
Takeshi ISHII
3972978c8d The TAGs of the original document has been updated to facilitate future verification. (#9285) 2020-06-05 21:49:34 +09:00
Derek
b327d20402 [Keyboard] add Juliet (#9240)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Derek <sevinty7@gmail.com>
2020-06-05 02:13:31 -07:00
Chandler
ca451c5aa0 [Keyboard] add 1894 support to qmk (#9238) 2020-06-05 02:12:07 -07:00
Jeremy Bernhardt
7a75af8342 [Keyboard] Gboards common - TOGG()/inject.h (#9236) 2020-06-05 02:06:58 -07:00
Joshua Diamond
d03bc3a9c1 Major enhancements to spidey3 keymaps and userspace (#9261)
* Add Chrome OS specific keys to 75_ansi/spidey3

* Clean up duplicative settings in rules.mk

* Refactor spidey3 userspace to use rgb layer blink

* Blink green on wakeup

* Improve _FN layer indicator

* Glyph transformation modes: wide, script, fraktur, and enclosed characters

* Add spider unicode glyph

* Fix compile error when NO_ACTION_ONESHOT

* Add a few more emoji

* Further refinement of lighting layer usage

* Fix reversed yes/no ack

* Lighting layers override RGB off

* Fix missing wide and incorrect script numbers

* Add LOL and surprise emoji

* Add missing break in switch statement

* Trim firmware size

* Use usage ID definitions in report.h

* Some minor whitespace cleanup

* Disable some unused features to reduce firmware size

* Print version on startup

* Seed rand() on first keystroke

* Add a key to immediately sleep CrOS

* Switch to Bootmagic Lite

* Trim down firmware size a little bit more

* Make RGBLIGHT_MODE_TWINKLE+4 my default

* Scan rate debug / fix version printing

Delay printing version on startup (console may not be ready)
Better scan rate reporting

* Disable locking caps, etc. to save more space

* Enable LTO

* Better seed for rand()

* Set MAX_LAYER for some performance improvement

* Another scan rate improvement

* Set manufacturer

* New startup animation

* Add GUI lock for F-keys (for CrOS)

* Add visual indication for glyph replacement and F-keys GUI lock

* Some cleanup; run cformat on spidey3 userspace

* Cycle between debug verbosity options

* Fix disable RGB Lighting after wakeup on Mac
2020-06-05 02:01:47 -07:00
MakotoKurauchi
c12e429da2 [Keymap] add keymap for meishi2 (#9270)
* add keymap "led_status"

* modified readme

* Update keyboards/meishi2/keymaps/led_status/keymap.c

* I modified the code to be simple.

* Update keyboards/meishi2/keymaps/led_status/keymap.c
2020-06-05 01:49:16 -07:00
Abi Shalom
9219f9e724 Changes to abishalom Tada68 keymap (#9278)
* Changes to abishalom Tada68 keymap

* Update keyboards/tada68/keymaps/abishalom/rules.mk
2020-06-05 01:46:28 -07:00
Leon Anavi
f4ff225c00 [Keyboard] keyboards/anavi: Add ANAVI Macro Pad 8 (#9164)
ANAVI Macro Pad 8 is an open source mini mechanical keyboard with
8 keys, backlit, addressable RGB WS2812B LED strip on the back and
mini OLED display. Powered by ATmega 32U4 microcontroller and with
microUSB connector.

Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Signed-off-by: Leon Anavi <leon@anavi.org>
2020-06-05 00:48:58 -07:00
itsnoteasy
a68b0ed9a2 [Keyboard] Add ortho5by12 keyboard (#9141)
* Add files via upload

* Update keyboards/ortho5by12/rules.mk

* Add files via upload

* Add files via upload

* Update keyboards/ortho5by12/ortho5by12.h

* Update keyboards/ortho5by12/ortho5by12.h

* Add files via upload

* Add files via upload

* Update keyboards/ortho5by12/readme.md

* Update keyboards/ortho5by12/readme.md

* Update keyboards/ortho5by12/readme.md

* Update keyboards/ortho5by12/readme.md

* Update keyboards/ortho5by12/readme.md

* Update keyboards/ortho5by12/readme.md

* Update keyboards/ortho5by12/info.json

* Update keyboards/ortho5by12/ortho5by12.h

* Apply suggestions from code review

* Update rules.mk

* Update config.h

* Update config.h

* Update config.h

* Delete rules.mk

* Delete config.h

* Delete info.json

* Delete ortho5by12.c

* Delete ortho5by12.h

* Delete readme.md

* Delete keymap.c
2020-06-04 23:55:39 -07:00
Joel Challis
a2dee4494d Fix mechlovin/pisces Configurator config (#9290)
* Fix mechlovin/pisces Configurator config

* Update keyboards/mechlovin/pisces/info.json
2020-06-04 17:33:35 -07:00
Josh Hinnebusch
6cfc3cd940 [Keyboard] add hineybush/h10 pcb (#9036)
* initial h10 commit

* update h10

* update files, add via keymap

* edit h10 readme

* update per PR requests

* add copyright (i think this is what fauxpark wants)

* fix comment

* remove config.h files

* update per PR requests

* Update keyboards/hineybush/h10/info.json

* Update keyboards/hineybush/h10/info.json
2020-06-04 16:56:04 -07:00
Frothy
e84e9a2004 Add Via support for Percent Canoe (#9276)
* Add Via support for Percent Canoe

* Removed unnecessary flags from rules.mk

* Changes as per PR

 * Added 2 additional empty layers (for a total of 4)
 * Set a unique vendor id for all percent studio boards
 * Set a unique product id for the canoe

* Fixed formatting, removed trailing comma

* Fixed PS/PT typo for vendor id

* Removed unnecessary variables

* Removed unnecessary slashes

* Fixed missing layer name
2020-06-04 09:22:29 -07:00
Joel Challis
232b9dabbe Fix 'does not have a readme.md' warnings (#9294) 2020-06-04 02:07:37 -07:00
Joel Challis
7b2c09de59 Fix handwired/novem Configurator config (#9291) 2020-06-04 01:57:37 -07:00
Joel Challis
e571f53ae9 Fix wt60_d and rama_works_u80_a Configurator config (#9292) 2020-06-04 01:45:35 -07:00
Jesse Leventhal
6fc4f1eddd [keyboard] Add two new The Mad Noodle Keypads (#8934)
* Adding support for two new The Mad Noodle Keypads (Revised..Again)

* Adding support for two new The Mad Noodle Keypads (Revised..Again)

* Update keyboards/themadnoodle/ncc1701kbv2/ncc1701kbv2.h

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

* Update keyboards/themadnoodle/noodlepad/noodlepad.h

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

* Update keyboards/themadnoodle/ncc1701kbv2/rules.mk

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

* Update keyboards/themadnoodle/noodlepad/rules.mk

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

* Update keyboards/themadnoodle/noodlepad/keymaps/default/keymap.c

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

* Update keyboards/themadnoodle/noodlepad/keymaps/default/keymap.c

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

* Update keyboards/themadnoodle/noodlepad/keymaps/default/keymap.c

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

* Update keyboards/themadnoodle/noodlepad/keymaps/default/keymap.c

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

* Requested Changes to all files

* Revert "Requested Changes to all files"

This reverts commit 7f6c708da8.

* Update keyboards/themadnoodle/ncc1701kbv2/info.json

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

* Update keyboards/themadnoodle/ncc1701kbv2/keymaps/default/keymap.c

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

* Update keyboards/themadnoodle/ncc1701kbv2/keymaps/default/keymap.c

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

* Update keyboards/themadnoodle/ncc1701kbv2/keymaps/default/keymap.c

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

* Update keyboards/themadnoodle/noodlepad/rules.mk

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

* Update keyboards/themadnoodle/ncc1701kbv2/rules.mk

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

* Update keyboards/themadnoodle/ncc1701kb/rules.mk

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

* Update keyboards/themadnoodle/ncc1701kbv2/keymaps/default/keymap.c

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

* rework ncc1701kb v1 to vendor/keyboard/revision structure

* rework ncc1701kb v2 to vendor/keyboard/revision structure

* Update keyboards/themadnoodle/ncc1701kb/v2/rules.mk

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

* Update keyboards/themadnoodle/noodlepad/config.h

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

* Update keyboards/themadnoodle/noodlepad/info.json

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

* Update keyboards/themadnoodle/noodlepad/noodlepad.h

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

* Update keyboards/themadnoodle/noodlepad/rules.mk

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

* checkedout folder and removed v1 as requested

* Update keyboards/themadnoodle/noodlepad/config.h

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

* Update keyboards/themadnoodle/ncc1701kb/v2/config.h

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

* Updated Noodle Pad Readme

Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-authored-by: Joel Challis <git@zvecr.com>
2020-06-04 00:25:59 +01:00
MechMerlin
be73820f7b [Keyboard] New Keyboard: Duck TC-V3 (#8265)
Co-Authored-By: Ryan <fauxpark@gmail.com>
Co-Authored-By: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-Authored-By: Drashna Jaelre <drashna@live.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2020-06-02 21:59:13 -07:00
MechMerlin
81a2113cbd VIA Support: Waldo 60 (#9151)
* pick a sane VID

* add the VIA Keymap

* update copyright notice

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

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

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

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

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

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

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

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

* Update keyboards/waldo/keymaps/via/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-06-03 01:07:18 +01:00
Joel Challis
d17572b125 Move encoder_read to common location (#9003) 2020-06-03 00:54:53 +01:00
Joel Challis
517d607fa4 [Keyboard] Add zvecr/zv48 (#9227)
* Add zv48 keyboard

* tidy up rules

* correct product name
2020-06-03 00:49:52 +01:00
Drashna Jaelre
1110fe6c6f Move dip switch init to back of the init process (#9233) 2020-06-03 00:32:02 +01:00
Dan Hertz
eefc05e078 Update canoe:dhertz to use new post-init functions (#9257)
* Update to use new post-init functions

* Update readme so I don't forget reset key again
2020-06-03 06:38:56 +10:00
Eduardo Lourenço Pinto Neto
f1e09dd388 Update keymap.c (#9265)
Add Insert on Fn+Del and fix TG to TO for layer switching
2020-06-03 06:33:27 +10:00
jotix
0def9ed528 jotix ortho_4x12 layout (#9209)
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-06-02 21:51:24 +10:00
Ryan
c73125eea7 Void Linux: Switch to cross-arm-none-eabi toolchain (#9228) 2020-06-02 18:53:38 +10:00
mechlovin
306d02aa93 Adelais: Fix indicator LED pinout (#9241)
* Fix indicator LED pinout

Fix indicator LED pinout, active some function
2020-06-01 17:31:14 -07:00
umi
b8ddfd34ec [Docs] Japanese translation of docs/feature_mouse_keys.md (#8992)
* add feature_mouse_keys.md translation

* update based on comment

* update based on comment

* update based on comment

* update based on comment

* update based on comment
2020-06-01 17:28:41 -07:00
goranzarkovic
14eccef7bf Fixing the PRODUCT_ID to match the liminal.json on VIA repo (#9232) 2020-06-01 17:23:25 -07:00
mechlovin
aab5c44c7d Infinity CE PCB: Update rules.mk (#9235)
* Update rules.mk 

Actice NKRO function
2020-06-01 17:19:56 -07:00
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
zvecr
406dc2fb2d Move encoder_read to common location 2020-05-02 22:44:36 +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
Luís Oliveira
dc79792ab4 Add Portuguese keymap and sendstring lookup tables (#8390)
* Add Portuguese keymap and sendstring lookup tables

* Update quantum/keymap_extras/keymap_portuguese.h

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

* Update quantum/keymap_extras/keymap_portuguese.h

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

* Update quantum/keymap_extras/keymap_portuguese.h

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

* Update quantum/keymap_extras/keymap_portuguese.h

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

* Update quantum/keymap_extras/keymap_portuguese.h

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

* Update quantum/keymap_extras/keymap_portuguese.h

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

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-03-13 17:21:00 -07:00
Andy Jack
e6a9f700de Update link for Learn Plover google site (#8410) 2020-03-14 11:06:54 +11:00
Jonas Avellana
0fdd37ee19 [Keymap] ninjonas keymap updates (#8373)
* [keymap(ninjonas)] ninjonas keymap updates

* [refactor] switching encoder rotation logic. recent pull seems to have flipped encoder stuff

* [keymap(lily58)] added chrome change profile key on RAISE

Co-authored-by: Jonas Avellana <jonas.avellana@workday.com>
2020-03-13 16:56:21 -07:00
Ryan
40e8d60ecd Fix bootloader for Maypad (#8411) 2020-03-13 23:44:43 +00:00
skullydazed
f81b0e35a6 Add decorators for determining keyboard and keymap based on current directory (#8191)
* Use pathlib everywhere we can

* Improvements based on @erovia's feedback

* rework qmk compile and qmk flash to use pathlib

* style

* Remove the subcommand_name argument from find_keyboard_keymap()

* add experimental decorators

* Create decorators for finding keyboard and keymap based on current directory.

Decorators were inspired by @Erovia's brilliant work on the proof of concept.
2020-03-13 15:47:04 -07:00
QMK Bot
5e98eaaaff format code according to conventions [skip ci] 2020-03-13 18:44:56 +00:00
fredizzimo
9e8767917d Fix pressing two keys with the same keycode but different modifiers (#2710)
* Fix extra keyboard report during test_fixture teardown

* Add tests for pressing two keys with only different modifers

* Fix #1708

When two keys that use the same keycode, but different modifiers were
pressed at the same time, the second keypress wasn't registered. This is
fixed by forcing a key release when we detect a new press for the same
keycode.

* Fix the NKRO version of is_key_pressed

* Fix uninitalized loop variable

Co-authored-by: Jack Humbert <jack.humb@gmail.com>
2020-03-13 14:09:38 -04:00
QMK Bot
f89439ae09 format code according to conventions [skip ci] 2020-03-13 17:24:38 +00:00
francislan
3cd2a27ac0 Decouple mouse cursor and mouse wheel in accelerated mode (#6685)
* Decouples mouse cursor and mouse wheel movements in accelerated mode.

* Fixed comment indentation.

* Updated docs

Co-authored-by: Francis LAN <francislan@google.com>
2020-03-13 12:49:44 -04:00
Koichi Katano
28d94b7248 [Keyboard] Add Wallaby (#8398)
* Add wallaby

* Update readme.md

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

* Update keyboards/wallaby/rules.mk
2020-03-12 19:30:59 -07:00
nickolaij
abd8e75cb7 [Keyboard] Abacus Keyboard ReMerge (#8308)
* added abacus keyboard

* keymap updates

* Update keyboards/abacus/config.h

* Update keyboards/abacus/config.h

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

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

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

* start cleaning up for merge

* cleaned for merge

* cleaned

* cleaned

* Update keyboards/abacus/abacus.h

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

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

* Update keyboards/abacus/readme.md

* Update keyboards/abacus/readme.md

* Update keyboards/abacus/rules.mk

* Update keyboards/abacus/info.json

* Update keyboards/abacus/info.json

* Update keyboards/abacus/info.json

* Update keyboards/abacus/readme.md

* Update keyboards/abacus/info.json

* Update keyboards/abacus/rules.mk

* Update keyboards/abacus/rules.mk
2020-03-12 19:22:27 -07:00
James Young
9046107183 Restore getting_started_github.md doc 2020-03-12 17:24:07 -07:00
Ryan
2b63896466 Update Swedish keymap and add sendstring LUT (#8365) 2020-03-12 17:09:30 -07:00
Ryan
6734a39811 Update Spanish keymap and sendstring LUT (#8364) 2020-03-12 17:00:28 -07:00
skullY
799acb2802 use qmk.path.normpath to locate the output file. 2020-03-12 13:48:17 -07:00
TerryMathews
18bc525493 [Keyboard] Candybar update (#8335)
* Candybar: split lefty and righty into subprojects.

* Update readme.md

* Update readme.md

* Candybar: Moved STM32 library files into project root folder.

* Update keyboards/candybar/righty/readme.md

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

* Update keyboards/candybar/righty/readme.md

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

* Update keyboards/candybar/righty/readme.md

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

* Update keyboards/candybar/righty/readme.md

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

* Update keyboards/candybar/righty/righty.c

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

* Candybar: remove Boards directory so project uses one from drivers

* Update keyboards/candybar/righty/readme.md

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

* Update readme.md

* Update readme.md

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2020-03-12 19:52:59 +00:00
Christopher Janzen
4edb5a5e8c Add new keymap with split shift and split backspace for bananas… (#8395)
* Add new keymap with split right shift and split backspace for bananasplit PCB

* Remove unecessary config.h

* Remove unecessary line breaks

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

Co-authored-by: Christopher Janzen <hello@christopherjanzen.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-03-13 06:14:03 +11:00
Joel Challis
3b5fd4cc51 Enable custom backlight driver for kmac (#8397) 2020-03-12 13:11:55 +01:00
Joel Challis
cd9a430d66 Force "blank" issue template to end of list (#8387)
* force ascii sort of issue templates to add blank to end of list
2020-03-12 01:27:33 -07:00
Nick Brassel
1b267d4840 Fix darkmode (#8393)
* Rearrange the custom CSS a bit.

* fix css name

* add missing quote

* Fix up dark mode rendering. (#8392)

* Fix up dark mode rendering.

* Update index.html

* Fix up code blocks

* Fix code in page toc

* Update docs/qmk_custom_dark.css

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

Co-authored-by: skullY <skullydazed@gmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-03-12 18:17:47 +11:00
Daniel Rodríguez Rivero
32d03eef90 Danielo515/redox (#8232)
* feat(build): added script for compiling with docker easily

* chore: bring my own build with docker to master

* chore: delete a file that does not make sense anymore

* feat: first redox for danielo

* chore: basic compatibility between redox and my space

* refactor: removed some old stuff

* feat: added go coding symbols

* feat: name control_k and alt_j

* chore: reduce combo term

* feat: improved first layer of redox

* feat: add configurations to the redox

* feat: make alt tab more portable

* feat: small improvements to redox layout

* feat: added leader

* refactor: move leader defs to my userspace config

* chore: movement modified

* feat: more predefined keys and a a new combo

* feat: redox alt tab functionality

* refactor: move alt_tab processing to a separate file

* refactor: early return

* refactor: move process record to a separate file

* format leader function

* chore: backspace on digits layer

* feat: add extra combo

* feat: added more combos

* implement guard proposed by @drashna

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

* chore: include @drashna placeholder suggestion

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

Co-authored-by: Drashna Jaelre <drashna@live.com>
2020-03-12 02:50:19 +00:00
Nick Brassel
f2f2afe13b Add support for STM32L0/L1 onboard EEPROM. (#8002)
* Add support for STM32L0/L1 onboard EEPROM.

* Update docs/eeprom_driver.md

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

Co-authored-by: Joel Challis <git@zvecr.com>
2020-03-12 12:59:55 +11:00
Erkki Halinen
3a3ea03b6e [Keymap] Add Erkhal keymap to PRKL30 (#8355)
* Add Erkhal keymap

* Fix comment of layer

* Update keyboards/handwired/prkl30/keymaps/erkhal/readme.md
2020-03-11 16:06:47 -07:00
Takeshi ISHII
f3afc716cb fix keyboards/mxss/rgblight.h (#8388)
Since #7773 caused a build error for `mxss:default`, I made similar changes to 'keyboards/mxss/rgblight.h' as #7773 did to 'quantum/rgblight.h'.

**This commit does not change the build result.**

Testing script
```shell
 # build on versions earlier than PR #7773
 git checkout 0.8.24
 echo master > /tmp/master_md5.txt

 make mxss:default:clean
 make mxss:default
 md5 mxss_default.hex >> /tmp/master_md5.txt

 # build on this commit
 git checkout fix-keyboards-mxss-rgblight.h
 echo fix-keyboards-mxss-rgblight.h > /tmp/branch_md5.txt

 make mxss:default:clean
 make mxss:default
 md5 mxss_default.hex >> /tmp/branch_md5.txt

 diff -u /tmp/master_md5.txt /tmp/branch_md5.txt
```

Test result:
```
--- /tmp/master_md5.txt 2020-03-12 05:51:39.000000000 +0900
+++ /tmp/branch_md5.txt 2020-03-12 05:51:49.000000000 +0900
@@ -1,2 +1,2 @@
-master
+fix-keyboards-mxss-rgblight.h
MD5 (mxss_default.hex) = 3034b2504d0c7fc6bd8bf1dffb6b8486
```
2020-03-11 21:23:31 +00:00
Alexander Tulloh
e72562fe6f [Keyboard] Oddball keyboard (#8352)
* Initial commit of oddball keyboard

* Update oddball project url

* Update pointer functions to only run on master side

* Add unique product version

* Capitalise product name

* Convert oddball keymap layer flags to enum

* Remove commented keyboard boilerplate code

* Remove unused keymap config

* Fix incorrect layout in info.json

* Add markdown link text in readme
2020-03-11 00:56:05 -07:00
QMK Bot
2b66acf04a format code according to conventions [skip ci] 2020-03-11 05:11:02 +00:00
Drew Mills
5ac6fe1888 Add ADC support for STM32F3 and STM32F0 devices (#7681)
* Add ADC support for STM32F3 and STM32F0 devices

* Add section about configration options available to the ARM ADC implementation

* Fix STM32 typo
2020-03-11 15:38:39 +11:00
Zambumon
979ac0d8da Add VIA support to Tokyo60. (#8362)
* VIA_ENABLE Tokyo60 PCB

* Update config.h

* Apply suggestions from code review

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

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2020-03-11 00:44:20 +00:00
elmo-space
7a89b51018 fix kira80 matrix mapping and add more preset layouts (#8361)
* fix kira80 matrix mapping

* add more preset keymaps

* remove uselesss rgb mod keys
2020-03-10 15:10:14 -07:00
skullydazed
2a05d433c9 Rename qmk json-keymap to qmk json2c (#8372) 2020-03-10 13:51:19 -07:00
QMK Bot
1aa40dde46 format code according to conventions [skip ci] 2020-03-10 20:24:13 +00:00
Nathan Gray
2ffb08843b Feature: RGBLight layers (#7768)
* New feature: RGBLIGHT_LAYERS

This feature allows users to define multiple independent layers of lighting
that can be toggled on and off individually, making it easy to use your
RGB lighting to indicate things like active keyboard layer & modifier state.

* Demonstrate built in functions for layer state checking

Also link the video in the docs.

* Follow existing pattern for setting rgblight_status flags

* Eliminate rgblight_is_static_mode since it's not needed

Just check to see if the timer is enabled directly.
2020-03-10 12:50:01 -07:00
Wilba
2a8ccafe6e Refactor Equinox PCB revisions (#8266)
* Refactor Equinox PCB revisions

* typo
2020-03-10 11:34:19 -07:00
Alvin See
1757960b7b Replace tab indentation with spaces in is0 default keymap. (#8368) 2020-03-10 20:30:34 +11:00
Drashna Jaelre
668121bbf8 Fix layer debug calls (#8370) 2020-03-10 20:23:26 +11:00
Brett Mandler
483ab88489 [Keymap] Added HHKB Keymap and user config (#8119)
* Added my config

* Update my keymap

* Improve quality of brett.c

* Finish cleaning brett.c

* Remove QMK_FIRMWARE_H

* Update keyboards/hhkb/keymaps/brett/keymap.c

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

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-03-10 01:52:39 -07:00
Takeshi ISHII
dbbab40981 Refactor rgblight_reconfig.h (#7773)
* Moved contents of rgblight_reconfig.h to rgblight_post_config.h.

In #3582, rgblight_reconfig.h had to be newly created. Now, the build system of qmk_firmware has a post_cofig feature, so that what was done in rgblight_reconfig.h can now be realized in rgblight_post_config.h.

**This commit does not change the build result.**

Testing script
```shell
  # build on master
  git checkout master
  echo master > /tmp/master_md5.txt

  # RGBLIGHT_ENABLE = no
  make HELIX=verbose helix/rev2:default:clean
  make HELIX=verbose helix/rev2:default
  md5 helix_rev2_default.hex >> /tmp/master_md5.txt

  # RGBLIGHT_ENABLE = yes, with animations
  make HELIX=verbose helix/rev2/back:default:clean
  make HELIX=verbose helix/rev2/back:default
  md5 helix_rev2_back_default.hex >> /tmp/master_md5.txt

  # RGBLIGHT_ENABLE = yes, without animations
  make HELIX=verbose,no_ani helix/rev2/back:default:clean
  make HELIX=verbose,no_ani helix/rev2/back:default
  md5 helix_rev2_back_default.hex >> /tmp/master_md5.txt

  # build on refactor_rgblight_reconfig.h
  git checkout refactor_rgblight_reconfig.h
  echo refactor_rgblight_reconfig.h > /tmp/branch_md5.txt

  # RGBLIGHT_ENABLE = no
  make HELIX=verbose helix/rev2:default:clean
  make HELIX=verbose helix/rev2:default
  md5 helix_rev2_default.hex >> /tmp/branch_md5.txt

  # RGBLIGHT_ENABLE = yes, with animations
  make HELIX=verbose helix/rev2/back:default:clean
  make HELIX=verbose helix/rev2/back:default
  md5 helix_rev2_back_default.hex >> /tmp/branch_md5.txt

  # RGBLIGHT_ENABLE = yes, without animations
  make HELIX=verbose,no_ani helix/rev2/back:default:clean
  make HELIX=verbose,no_ani helix/rev2/back:default
  md5 helix_rev2_back_default.hex >> /tmp/branch_md5.txt

  diff -u /tmp/master_md5.txt /tmp/branch_md5.txt
```

Test result:
```
--- /tmp/master_md5.txt 2020-01-03 15:42:22.000000000 +0900
+++ /tmp/branch_md5.txt 2020-01-03 15:42:42.000000000 +0900
@@ -1,4 +1,4 @@
-master
+refactor_rgblight_reconfig.h
 MD5 (helix_rev2_default.hex) = f360032edd522448366d471d8f4f8181
 MD5 (helix_rev2_back_default.hex) = 0c663acc6cccc44476b3b969ad22a48f
 MD5 (helix_rev2_back_default.hex) = e66b1195ff6d38e6e22c975b8ae42fd3
```

* Expressions that are too long are difficult to read, so wrap them.

* Edit the expression again

* remove `defined(RGBLIGHT_ANIMATIONS)` in `tmk_core/common/*/suspend.c`, `tmk_core/protocol/*/main.c`

move contents of rgblight_reconfig.h to rgblight.h.

The following changes were made to rgblight.h.

```diff
+#ifdef RGBLIGHT_USE_TIMER
 void rgblight_task(void);

 void rgblight_timer_init(void);
 void rgblight_timer_enable(void);
 void rgblight_timer_disable(void);
 void rgblight_timer_toggle(void);
+#else
+#define rgblight_task()
+#define rgblight_timer_init()
+#define rgblight_timer_enable()
+#define rgblight_timer_disable()
+#define rgblight_timer_toggle()
+#endif
```

The following changes were made to tmk_core/common/avr/suspend.c, tmk_core/common/chibios/suspend.c, tmk_core/protocol/chibios/main.c, tmk_core/protocol/lufa/lufa.c, tmk_core/protocol/vusb/main.c.

```diff
-#    ifdef RGBLIGHT_ANIMATIONS
     rgblight_timer_enable();
-#    endif
```
```diff
-#if defined(RGBLIGHT_ANIMATIONS) && defined(RGBLIGHT_ENABLE)
+#if defined(RGBLIGHT_ENABLE)
         rgblight_task();
 #endif
```

* remove 'defined(RGBLIGHT_ANIMATIONS)' in tmk_core/common/keyboard.c

Co-authored-by: Joel Challis <git@zvecr.com>
2020-03-10 01:46:03 -07:00
Takashi Shibusawa
20a0fa9209 [Keyboard] Palette1202 (#7736)
* added Palette1202

* removed currently unused cords

* Update keyboards/palette1202/config.h

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

* Apply suggestions from code review

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

* Update readme.md

removed unnecessary horizontal line from readme.md

* Update readme.md

Fixed style, make command example

* Removed spaces

* removed unused config.h

* fixed defines

* fixed send string on rotate encoder

* fixed layer numbers for OLED Display

* fixed to use existing function to set default layer

https://github.com/qmk/qmk_firmware/pull/7736#discussion_r366699616

* flipped rotary encoder directions

* Added layer for Clip studio on iOS

* Update keyboards/palette1202/rules.mk

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

* Update keyboards/palette1202/lib/oled_helper.h

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

Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-03-10 01:38:37 -07:00
MakotoKurauchi
2d14d12c74 [Keyboard] Helix add split common option (#7718)
* is_master, has_usb() move to rev2.[hc]

* Do recent helix/rev2 changes to helix/pico as well.

helix/pico/matrix.c: remove 'is_master'
helix/pico/pico.c: add 'is_master'
helix/pico/pico.h: add 'has_usb()' macro
helix/pico/split_util.c: remove 'setup_handedness()' 'has_usb()', add 'is_helix_master()' etc

* add HELIX=scan option into {rev2/pico}/local_features.mk

Made DEBUG_MATRIX_SCAN_RATE easy to use.

* Changed rules.mk to link "helix/local_drivers/ssd1306.c" only when OLED_ENABLE = yes.

* Added option to use split_common for helix/rev2, helix/pico keyboard.

how to build:
 ### build helix/pico (HelixPico) with helix current codes
  $ make helix/pico:KEY_MAP
  $ make helix/pico/back:KEY_MAP

 ### build helix/rev2 (Helix or Helix beta) with helix current codes
  $ make helix:KEY_MAP
  $ make helix/rev2/back:KEY_MAP
  $ make helix/rev2/under:KEY_MAP
  $ make helix/rev2/oled:KEY_MAP
  $ make helix/rev2/oled/back:KEY_MAP
  $ make helix/rev2/oled/under:KEY_MAP

 ### build helix/pico (HelixPico) with split_common codes
  $ make helix/pico/sc:KEY_MAP
  $ make helix/pico/sc/back:KEY_MAP
  $ make helix/pico/sc/under:KEY_MAP

 ### build helix/rev2 (Helix) with split_common codes
  $ make helix/rev2/sc:KEY_MAP
  $ make helix/rev2/sc/back:KEY_MAP
  $ make helix/rev2/sc/under:KEY_MAP
  $ make helix/rev2/sc/oled:KEY_MAP
  $ make helix/rev2/sc/oledback:KEY_MAP
  $ make helix/rev2/sc/oledunder:KEY_MAP

* add matrix_slave_scan_user() to helix/rev2/rev2.c, helix/pico/pico.h

* Changed 'helix:xulkal' to always use split_common and removed ad hoc code.

Added the following line to 'helix/rev2/keymaps/xulkal/rules.mk':

        SPLIT_KEYBOARD = yes

Removed the following ad hoc code from 'users/xulkal/custom_oled.c':

        #if KEYBOARD_helix_rev2
        extern uint8_t is_master;
        bool is_keyboard_master(void) { return is_master; }
        #endif

* add '#define DIODE_DIRECTION COL2ROW' into helix/{rev2|pico}/config.h

This commit does not change the build result.

* update helix readme

* keyboards/helix/readme.md
* keyboards/helix/pico/keymaps/default/readme.md
* keyboards/helix/rev2/keymaps/default/readme.md

Co-authored-by: mtei <2170248+mtei@users.noreply.github.com>
2020-03-10 01:33:46 -07:00
marcoSchr
0ba352356d Enable bootmagic lite for CU80 (#8363) 2020-03-10 00:30:02 -07:00
Richard Baptist
a4fd5e2491 [Keymap] Update personal keymap (#8354) 2020-03-09 23:40:27 -07:00
Ryan
5e3951b361 Remove NO_UART defines from config.h for V-USB boards (#8351) 2020-03-09 19:58:25 +00:00
elmo-space
5e4fcfac1c [Keyboard] Add Kira 80 support (#8342)
* add kira 80 initial support

* Delete config.h

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

* Update keyboards/kira80/readme.md

* Update keyboards/kira80/rules.mk

* Update keyboards/kira80/usbconfig.h

* Update keyboards/kira80/usbconfig.h

* Update keyboards/kira80/usbconfig.h

* Update keyboards/kira80/usbconfig.h

* update readme and fix wrong LED assignment (scrolllock instead of numlock)

* Update keyboards/kira80/rules.mk

* fix weird double commit

* exchange images in readme for smaller versions

* Update keyboards/kira80/readme.md

* Update keyboards/kira80/readme.md

* Update keyboards/kira80/readme.md

* Update keyboards/kira80/readme.md

* Apply suggestions from code review

* Apply suggestions from code review
2020-03-09 12:39:41 -07:00
Erkki Halinen
89ef9de98c [Keyboard] Add PRKL30 keyboard (#8319)
* Add PRKL30 default keymap

* Modify readmes, fix info.json url

* added layer pictures to readme.md

* edited layer pictures

* edited layer pictures

* edited layer pictures

* edited layout pictures

* edited layout pictures

* Modify default keymap

* Add arrows to Raise layer

* Add perkele macro and adjust symbols

* Add PRKL macro and modify keymap comments

* updated layout pictures

* edited layut pictures

* Add correct minus keycode

* Configure Feather config

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

* Update keyboards/handwired/prkl30/feather/rules.mk

* Update keyboards/handwired/prkl30/feather/config.h

* Update keyboards/handwired/prkl30/feather/config.h

* Update keyboards/handwired/prkl30/promicro/config.h

* Update keyboards/handwired/prkl30/promicro/rules.mk

* Update keyboards/handwired/prkl30/feather/config.h

* Update keyboards/handwired/prkl30/feather/config.h

* Update keyboards/handwired/prkl30/promicro/config.h

* Update keyboards/handwired/prkl30/feather/rules.mk

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

* Update keyboards/handwired/prkl30/info.json

* Update keyboards/handwired/prkl30/info.json

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

* Delete unused config

* Apply suggestions from code review

Commit code review changes

* Remove false comments from rules.mk

* Change layout to layout_all

* Apply suggestions from code review

Co-authored-by: Toni Johansson <toni.r.johansson@gmail.com>
2020-03-09 02:21:59 -07:00
Ryan
6c8d815f2e Update Dvorak, Colemak and Workman keycode aliases (#8217)
* Update Dvorak, Colemak and Workman keycode aliases

* Add missing shifted keycode aliases for Workman
2020-03-09 15:37:10 +11:00
Nick Brassel
2271da00bc Move splittest I2C (#8346) 2020-03-09 15:36:40 +11:00
Christian Gurholt
6e28ff24ba [Keymap] planck layout for kifinnsson (#8324)
* [Keymap] kifinnsson keymap for planck

Initial commit for kifinnsson keymap
* placeholder macros
* extend layer

* [Keymap] kifinnsson planck keymap updates

commented out placeholder SEND_STRING macros

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

Remove extern keymap_config_t keymap_config;

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

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

Changed KC_MENU to KC_APP

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

* Removing COLEMAK set_single_persistent_default_layer

as suggested

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

* updated uinit32()_t to layer_state_t() for update_tri_layer_state

as suggested

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

* Removing COLEMAK keycode

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

* Removing COLEMAK keycode in _ADJUST layer

* Update keymap.c

added switch (keycode) back into process_record_user

Co-authored-by: Ki Finnsson <kifinnsson@wgu.edu>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2020-03-08 20:58:30 -07:00
moyi4681
d526117896 add via support for dztech 60 and 65 pcb (#8334)
* add via support for dztech 60 and 65 pcb

add via support for dztech 60 and 65 pcb

* Update dz60rgb.h

* Update dz60rgb.h

* Update dz60rgb_ansi.h

* Update dz60rgb_wkl.h

* Update dz65rgb.h

* Update dz60rgb.h

* Update dz60rgb_ansi.h

* Update dz60rgb_wkl.h

* Update dz65rgb.h

* Update keyboards/dztech/dz60rgb/dz60rgb.h

* Update keyboards/dztech/dz60rgb_wkl/dz60rgb_wkl.h

* Update keyboards/dztech/dz65rgb/dz65rgb.h

* Update keyboards/dztech/dz60rgb_ansi/dz60rgb_ansi.h

* Update dz60rgb_wkl.h

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

* Update keyboards/dztech/dz60rgb_wkl/keymaps/via/keymap.c
2020-03-08 19:16:48 -07:00
skullydazed
cf40c33c90 Add gcc version detection to qmk doctor (#8338) 2020-03-08 09:21:45 -07:00
Samuel Li
4b7a3b2265 [Keyboard] New Keyboard: handwired/jtallbean/split_65 (#8275)
* New keyboard: split_65

* Updated readme

* Update with requested changes

* Add writePinLow to prevent flickering

* Renamed LAYOUT to LAYOUT_all
2020-03-08 00:26:26 -08:00
Ryan
829906969c Update Norwegian keymap and add sendstring LUT (#8300) 2020-03-08 15:43:05 +11:00
yulei
e0d15e6182 fixed #8259 (#8333) 2020-03-07 13:19:06 +00:00
Joel Challis
3a303bd2ae Backlight - Carve out a better location for private driver functionality (#8329)
* rename backlight_soft to match rules.mk

* rename backlight_soft to match rules.mk - update common_features

* Carve out a better location for private driver backlight functionality
2020-03-07 12:09:49 +00:00
su8044
d7ba0ad684 [Keyboard] Handwired Skeeb Keyboard (#8161)
* adding Handwired Skeeb Keyboard

* Apply suggestions from fauxpark

* Apply more suggestions from fauxpark and small change to layout

* Apply more suggestions from noroadsleft and last tap dance
2020-03-07 01:53:05 -08:00
Wilba
c4d8e56928 Added VIA keymap for Ramaworks M10-A (#8255)
* Added VIA keymap for Ramaworks M10-A

* change vendor/product in base config.h

* #pragma once

* Uee LAYOUT() in keymaps
2020-03-07 01:38:08 -08:00
zvecr
5e1ce3988d Remove unused LED_BREATHING_TABLE 2020-03-06 22:29:01 -08:00
kymok
dd05007f3b [Docs] i2c_driver translation to Japanese (#8274)
* [WIP] i2c_driver translation to ja

* update docs/ja/i2c_driver.md

* update docs/ja/i2c_driver.md

* align table + remove comment

* Update docs/ja/i2c_driver.md

* Update docs/ja/i2c_driver.md

* Update docs/ja/i2c_driver.md

* Update docs/ja/i2c_driver.md

* Update docs/ja/i2c_driver.md

* Update docs/ja/i2c_driver.md

* Update docs/ja/i2c_driver.md

* Update docs/ja/i2c_driver.md

* Update docs/ja/i2c_driver.md

* Update docs/ja/i2c_driver.md

* Update docs/ja/i2c_driver.md

* Update docs/ja/i2c_driver.md

* update docs/ja/i2c_driver.md

* Update docs/ja/i2c_driver.md

* Update docs/ja/i2c_driver.md

* Update docs/ja/i2c_driver.md

* add original document commit hash

Co-Authored-By: shela <shelaf@users.noreply.github.com>
2020-03-06 18:27:15 -08:00
QMK Bot
2306c974e5 format code according to conventions [skip ci] 2020-03-07 01:24:47 +00:00
brickbots
833c5ae87a Buffer based OLED panning, write byte to buffer at arbitrary index (#8055)
* Add buffer based single line pan, arbitrary byte write to buffer

* Change dirty mask to inverse of OLED_BLOCK_TYPE for future proofing larger buffer sizes

* Updating docs to include new functions

* Updating to clarify scroll vs pan
2020-03-07 00:52:39 +00:00
swreinehr
57de9e65ef Super 16 Puzzle Game (#8306)
* 15/16 game with lights for the super 16

* Updated readme with style

* adding comments and initial style to keymap

trying to make the code look prettier, need to test by redownloading

* Final style revisions before pull request

* formatting changes, removed config.h

* modified rules.mk, works with changes in PR8314

* formatting

no number of spaces is enough for a newline, whoops

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

* Update keyboards/1upkeyboards/super16/keymaps/15game/keymap.c

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

* Update keyboards/1upkeyboards/super16/keymaps/15game/keymap.c

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

* Update keyboards/1upkeyboards/super16/keymaps/15game/keymap.c

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

Co-authored-by: Sam Reinehr <swreinehr@mines.edu>
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-03-07 00:15:44 +00:00
Chris Alves
6b6e47cbf1 DZ60 keyboard layout tuning and README update/fix (#8325)
* Added custom dz60 keymap

* Update readme.md

* Updated pictures in README.md

* README.md fixes

* Updated mouse layout/ added ` key

* Changed bkspc key to del in mod

* Changed picture

* Updated keymap

* Removed default dz60 config.h

* Updated Readme

* Added Devorak Keymap

* Re-added Default Config File

* Updated Flash Command

* Cleaned Up Custom Config File

* Added Lock Security Layer

* Updated Readme Picture

* Fixed Readme

* Re-added keyboard picture

* Added home and end button

* added insert, pgup, pgdn

* final commit before pull request

* fixing merge

* Added custom dz60 keymap

* adding lufa?

Co-authored-by: chrisae9 <chrisae9@penguin>
2020-03-07 00:11:41 +00:00
Anthony Leung
54b6bf5910 [Keyboard] Add VIA support for neuron (#8264)
* add VIA support for neuron

* update neuron vendor and product id

* update neuron product id

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

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2020-03-06 16:00:44 -08:00
James Young
73728e9bec [Docs] Fix links in Config Options doc 2020-03-06 13:10:17 -08:00
Mikkel Jeppesen
4f1a62ca1d [Keyboard] keebwerk. nano. slider support (#7914)
* Initial Keeb.werk nano.slider support

* fixed open ifdef

* Fixed layout macros

* Added LTO

* Enabled LTO and dissabled console

* Added basic slider example

* rate limited adc, and fixed send_string

* Made slider courser

* new-line after each slider print

* Switched slider example mirror the stock behavior using midi

* switched division to bit-shifting

* Apply suggestions from code review

* Update keyboards/keebwerk/nano_slider/keymaps/default/keymap.c

* Update keyboards/keebwerk/nano_slider/config.h

* Update keyboards/keebwerk/nano_slider/config.h

* Applied suggestions from code review

* Apply suggestions from code review

* Added fauxparks info.json

* Reverse midi value direction, move to QMKVID

* Update keyboards/keebwerk/nano_slider/config.h

* Update keyboards/keebwerk/nano_slider/config.h

* Update keyboards/keebwerk/nano_slider/keymaps/default/keymap.c

* Apply suggestions from code review

* Update keyboards/keebwerk/nano_slider/rules.mk

* Update keyboards/keebwerk/nano_slider/nano_slider.h

* Update keyboards/keebwerk/nano_slider/readme.md

* Defined backlight pin and settings
2020-03-06 11:00:17 -08:00
Shaun
4e826ba61f Correct typo in tap_hold.md (#8326)
Correct typo: "reasonal" to "reasonable"
2020-03-07 05:42:08 +11:00
Nick Brassel
b438c6f8ea Fix up Arm builds with nix-shell. (#8312) 2020-03-07 03:05:51 +11:00
QMK Bot
bad9468ce1 format code according to conventions [skip ci] 2020-03-06 13:28:11 +00:00
Ryan
9810756ee0 Fix typo in uart.c backport and add 32A "support" (#8219) 2020-03-06 23:55:15 +11:00
Joel Challis
918a85d342 Refactor more backlight to a common location (#8292)
* Refactor more backlight to a common location

* BACKLIGHT_PIN not defined for custom backlight

* align function names
2020-03-06 12:49:45 +00:00
Joel Challis
116c0e44a1 Remove stub backlight functions from clueboard/66/rev4 (#8303) 2020-03-06 12:12:20 +00:00
dr-BEat
3c0ef04390 [Keymap] Dichotomy keymap by beat (#8279)
* Added more led helpers

* Working keymap

* Added new mouse button an made lower layer toggleable

* Small improvement to process_record_user

* Removed extra layer buttons

* Added Numpad to apply layer

* Moved buttons and added toggle for raise button

* Added Menu,PrintScreen and Windowslock buttons, and left handmouse

* Fixed Scroll Buttons

* Turned TAPPING TOGGLE to 2

* Switched Del and Ctrl on left hand

* Added Home Button to Mouse layer

* Fixed led initialization to avoid red led on boot

* Updated formatting to follow guidelines

* Used enums instead of defines and used layer_state_t type

* Added license

* Moved TAPPING settings to keymap config

* Fixed small formatting issue in keymap.c

* Use GPIO Control instead of lowlevel ports
2020-03-06 00:47:52 -08:00
QMK Bot
fd7b52cc64 format code according to conventions [skip ci] 2020-03-06 02:15:29 +00:00
Joel Challis
d0d6fb27c4 Add f401 and f411 blackpill examples (#7930)
* Add f401 and f411 blackpill examples

* Add readme files

* Align dfu args with core

* Add support for RESET keycode

* move STM32_BOOTLOADER_ADDRESS to rules

* Update conf files to latest ChibiOS

* Update conf files to latest ChibiOS
2020-03-06 01:40:39 +00:00
Joel Challis
b368db9e02 Refactor fortitude60 to use split_common (#8113) 2020-03-06 01:39:54 +00:00
James Young
76189d9a28 link the 2020 Feb 29 Breaking Changes changelog from the summary 2020-03-05 16:00:10 -08:00
James Young
2939751eb3 keycodes.md: hard-code section link id attributes 2020-03-05 16:00:10 -08:00
James Young
772bacb770 keycodes.md: don't use section headings as links
It prevents the Table of Contents from parsing that heading.
2020-03-05 16:00:10 -08:00
skullY
961477c791 make sure all our redirects are in order 2020-03-05 16:00:10 -08:00
skullY
6956784ac1 Add more call to action items 2020-03-05 16:00:10 -08:00
skullY
54c58ea6de Add explicit id tags to externally linked headers 2020-03-05 16:00:10 -08:00
James Young
a95a314f78 refactor How a Matrix Works doc 2020-03-05 16:00:10 -08:00
James Young
bc31ebd0c4 Hand Wire guide tidying, part 2 2020-03-05 16:00:10 -08:00
James Young
fbf27e7444 Hand Wire guide tidying 2020-03-05 16:00:10 -08:00
James Young
8b5ca3d110 clean up Firmware Setup section in Hand Wire guide 2020-03-05 16:00:10 -08:00
James Young
06708b9dc8 remove collapsible section for Compiling; redirect to Building Firmware doc 2020-03-05 16:00:10 -08:00
James Young
772d5264d6 replace QMK Toolbox image in Hand Wire guide
Showing a current version of QMK Toolbox
2020-03-05 16:00:10 -08:00
James Young
994de86121 restructure Hand Wire Guide 2020-03-05 16:00:10 -08:00
James Young
906bdce6ce split Hand Wire Preamble to a separate doc 2020-03-05 16:00:10 -08:00
James Young
3bd65d2173 CSS updates: ul and pre elements 2020-03-05 16:00:10 -08:00
James Young
d5f34c4810 Polish Configurator section 2020-03-05 16:00:10 -08:00
skullY
503b52652c Adjust the H2 and H2 margins 2020-03-05 16:00:10 -08:00
skullY
b5030907eb reduce the line-height of the sidebar 2020-03-05 16:00:10 -08:00
skullY
8b0fdc82dc rearrange the sidebar a bit 2020-03-05 16:00:10 -08:00
skullY
8d8d61b3c5 limit the TOC to H1 and H2 2020-03-05 16:00:10 -08:00
skullY
f86fd0cd14 remove line drawing chars 2020-03-05 16:00:10 -08:00
skullY
12e43230c6 make custom_keycode_names.md a faq entry instead 2020-03-05 16:00:10 -08:00
skullY
55c5b82638 reduce space on h3s 2020-03-05 16:00:10 -08:00
skullY
9035c3497e break feature_advanced_keycodes.md up into multiple files 2020-03-05 16:00:10 -08:00
skullY
5d35098bfc improve our docsify setup 2020-03-05 16:00:10 -08:00
skullY
8249a288d7 fix numbering 2020-03-05 16:00:10 -08:00
skullY
45e218ceec overhaul the newbs guide 2020-03-05 16:00:10 -08:00
skullY
86f6405574 More sidebar organization 2020-03-05 16:00:10 -08:00
skullY
99850aabca Add API documentation 2020-03-05 16:00:10 -08:00
James Young
3c98854044 update flashing.md
- minor typo on intro paragraph (the -> them)
- remove note about :check-size target (`make` task now does this automatically)
- heading level for Caterina commands section
- typo regarding Halfkay (come -> comes)
2020-03-05 16:00:10 -08:00
James Young
7b1b53054f update newbs_building_firmware.md
Update the text sample for when the compile task completes.
2020-03-05 16:00:10 -08:00
skullY
a701c15d87 Rework the newbs guide around the qmk cli 2020-03-05 16:00:10 -08:00
skullY
1b7fa46f8e Add dark mode support 2020-03-05 16:00:10 -08:00
James Young
58fb57bfa7 _summary.md: move Auto Shift page to Software Features category 2020-03-05 16:00:10 -08:00
James Young
6af58fc25e clean up links to keycode references in newbs_building_firmware_configurator.md 2020-03-05 16:00:10 -08:00
James Young
e01763b8e5 clean up callouts in newbs_building_firmware_configurator.md 2020-03-05 16:00:10 -08:00
James Young
cdb5c074d3 remove some unnecessary external links
Also clean up some trailing whitespace.
2020-03-05 16:00:10 -08:00
skullY
3f1e47dbcd rework the index page 2020-03-05 16:00:10 -08:00
skullY
d1c0710dec remove unused docs 2020-03-05 16:00:10 -08:00
skullY
5b14456082 more wip 2020-03-05 16:00:10 -08:00
skullY
d1c18086d2 wip 2020-03-05 16:00:10 -08:00
James Young
4ef10a424a [Keyboard] add miller/gm-862 keyboard (#8230)
* add miller/gm-862 keyboard

* Update keyboards/miller/gm862/gm862.c

* Update keyboards/miller/gm862/gm862.h

* Update keyboards/miller/gm862/gm862.h

* Update keyboards/miller/gm862/readme.md

* Update keyboards/miller/gm862/readme.md

* Update keyboards/miller/gm862/readme.md

* Update keyboards/miller/gm862/readme.md

* Update config.h

* Update keyboards/miller/gm862/config.h

* Update keyboards/miller/gm862/readme.md
2020-03-05 13:51:43 -08:00
Ryan
23c31dd929 update lily58/rev1:yshrsmz (#8298)
* update lily58/rev1:yshrsmz

* use pre-shifted keycodes
2020-03-06 06:56:28 +11:00
James Young
921e18988f [Keyboard] CapsUnlocked CU80 (#8257)
* Initial commit for CU80

* Added iso and ansi to .json

* Update keyboards/cu80/config.h

Remove "Custom matrix"

* Update keyboards/cu80/config.h

* Update keyboards/cu80/config.h

* Update keyboards/cu80/config.h

* Update keyboards/cu80/cu80.h

* Update keyboards/cu80/rules.mk

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

* Update keyboards/cu80/rules.mk

* Update keyboards/cu80/rules.mk

* Update keyboards/cu80/cu80.h

* Update keyboards/cu80/readme.md

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

* Update keyboards/cu80/rules.mk

* Update keyboards/cu80/rules.mk

* Update keyboards/cu80/cu80.h

* Update keyboards/cu80/cu80.h

* Update keyboards/cu80/cu80.h

* Update keyboards/cu80/info.json

* Update keyboards/cu80/info.json

* Update keyboards/cu80/info.json

* Update keyboards/cu80/info.json

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

* Update keyboards/cu80/rules.mk
2020-03-04 21:40:03 -08:00
Ryan
7e30d189e9 Update config.h - Fixed number of RGB LEDs (#8316)
There are 18 LEDs, not 16
2020-03-05 12:39:50 +11:00
James Young
8fd8454308 [Keymap] Add @cjuniet's keymap/layout/userspace (#8258)
* Add Colemak layout

* Add status bar for mods & locks with a custom font

* Swap DEL and TAB

* Fix media keys and add QMK Configurator layout

* Add dead grave accent on <leader>e
2020-03-04 17:19:26 -08:00
James Young
8e229f0db6 [Keymap] Wilba/Singav3 nk65 keymap updates (#8267)
* via configurator can't do AG_TOGG with any key - meh

* same issue - via can't do AG_TOGG

* oops - missed AG_TOGG on the NK65

* add media and mousekeys

* Update keyboards/nk65/keymaps/madhatter/keymap.c
2020-03-04 17:14:36 -08:00
James Young
95ce19f846 Add RGB lighting through one of the free pins (#8294) 2020-03-04 16:59:06 -08:00
James Young
9550ab3342 [Keymap] Adding the 4sStylZ xd75 (#8285)
* Adding the 4sStylZ xd75

* Update keyboards/xd75/keymaps/4sstylz/keycodes.h

* Apply suggestions from code review
2020-03-04 16:42:09 -08:00
Nick Brassel
607e2f6c31 YD60MQ refactor and Configurator layout support (#8313)
* refactor yd60mq.h

- four-space indent
- use K<row><col> base32hex notation
- rename LAYOUT to LAYOUT_all (with alias for backwards compatibility)

* refactor yd60mq.c to use led_update_kb()

* align rules.mk to AVR template

* refactor default keymap

Also correct positions for KC_NUHS and KC_NUBS.

* update readme

* add Configurator layout support

* initialize the Caps Lock LED pin properly
2020-03-05 07:26:25 +11:00
Joel Challis
2d1081c296 [Keyboard] Forget to ifdef Super16 led config (#8314) 2020-03-04 19:46:03 +00:00
Joel Challis
0275098bdd [Keyboard] Switch to RGB Matrix for Super16 (#8305) 2020-03-04 18:19:39 +00:00
Salicylic-acid3
0c9171a619 [Keymap] Keymap Update (#8309)
* Keymap Update

Some key codes have been updated.
naked64:salicylic
7skb:default

* Keymap Update

Some key codes have been updated.
KC_GRAVE to KC_GRV
7skb:default
2020-03-04 16:16:36 +00:00
MechMerlin
23eb9f4fe5 New Keyboard: SiddersKB Majbritt (Pronounced My Brit) (#8260)
* Initial commit of majbritt

* Add QMK and VIA support to majbritt

* Change vendor and product id

* Change name

* Change make path

* Move Majbritt into sidderskb directory

* Update keyboards/sidderskb/majbritt/majbritt.c

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

* Update keyboards/sidderskb/majbritt/keymaps/default/config.h
Co-Authored-By: Ryan <fauxpark@gmail.com>

* remove unused file
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-03-04 13:12:00 +01:00
MechMerlin
31662af342 [Keyboard] VIA Support: Tada68 (#8289)
* tada68 via files

* change vid and pid based on wilba's recommendaton
2020-03-04 01:22:47 -08:00
Ryan
8c3ff3f32c [Keyboard] LFK78 refactor (#7835)
* Change include guards to pragma once

* Clean up default keymaps

* Remove some magic numbers and use GPIO macros

* Clean up keyboard.[ch]

* Tidy up info.json and readme

* Align config.h with template

* Split up revision code into subfolders

* rev C-H has no audio, apparently

* Change revc_h to revc and document differences

* Turn off Audio on revb for now, for Travis' sake

* Split info.json into revision folders

* Clean up default keymaps some more
2020-03-03 14:10:39 -08:00
Ibnu Daru Aji
910d603c65 [Keymap] new userspace for ibnuda (#8221)
* to ease the maintenance for some boards ibnuda has.

* followed ridingqwerty's suggestion on 8821.

* folloing drashna's suggestion on qmk's 8221.

* following drashn's suggestion on qmk's 8211
2020-03-03 13:46:11 -08:00
Jason Thigpen
ad96e995af [Keymap] Add crd's equinox keymap (#8251) 2020-03-03 12:45:18 -08:00
Alfred Maler
ed6586e25b [Keymap] Feature/alfrdmalr/keymap update (#8174)
* WIP do not merge

* first pass at custom preonic layout

* add auto shift and reset via leader key

* Update readme

* update copyright notice

* formatting changes

* fix: use MO instead of process_record_user

* added backslash and moved grave position

* remove extraneous 'j' characer in NUMPAD template

* update template formatting

* remove process_record_user

* swap "!" with "@"

* fix readme formatting

* update readme layout image

* restore settings layer

* add windows minimize sequence

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

* fix: missing semicolon

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

* add numlock to numpad layer

* add readme

* update readme formatting

* remove unused wrappers from layout keymap

* update readme title to reflect new location

* remove alfrdmalr directory from preonic/keymaps

* add ortho 4x12 support

* add 'trilayer' settings and update keymap

* update SYMBOLS layer to SYMBOL

* remove minimize sequence

* clean up user config

* add brightness controls

* update settings ascii

* moved some symbols around to make vim/linux smoother
2020-03-03 10:13:42 -08:00
shela
acaecb4f94 Fix bootloader definition for namecard2x4 (#8301)
BOOTLOADER needs to be defined as caterina because namecard2x4 uses avrdude for flasher.
2020-03-03 15:00:34 +00:00
Ryan
53ac4d214f Update Hungarian keymap and add sendstring LUT (#8220) 2020-03-03 11:55:42 +11:00
Ryan
bff56aa46c Remove "ugly hack in usb_main.c" comments (#8296) 2020-03-02 23:56:46 +00:00
Danny
ce30cd2a01 Update encoder functions for Iris VIA keymap (#8295) 2020-03-02 23:55:57 +00:00
Ted M Lin
552f8d81b9 Reduce PROGMEM usage for sendstring LUT (#8109)
* Reduce PROGMEM usage for keycode map

Bit-pack the keycode bool array to gain back a small amount of flash space.
The trade-off is an increase in runtime instructions when running macros.

It does make the code a bit harder to read, as well as maintain.

For configs that use send_string() et al, it saves ~100 bytes.

* Switch to macro and common definition

Rewrite the array declarations so both the unpacked (original) and
packed LUT arrays can use the same value definitions. This is done by
defining a macro that "knows what to do".

This makes the code much easier to read and maintain.

* Fix macro typos and improve perf

Pack the bits in a more efficient order for extraction.
And also fix the copy/paste error in the macro...

* Switch fully to packed LUT

Some minor reformatting.
Compile tested all sendstring_xyz.h to make sure they were converted
properly. Also checked that an unconverted version would generate a
compile error.

* Apply whitespace suggestions from code review

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

Co-authored-by: Ryan <fauxpark@gmail.com>
2020-03-03 10:43:18 +11:00
Drashna Jaelre
abd36de5ad [Docs] Update ISP Flashing guide (#8149)
* [Docs] Update ISP Flashing guide

* Apply suggestions from code review

AKA why you shouldn't write docs at 2am

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

* Update workding for planck-qmk-dfu

Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2020-03-01 22:29:26 -08:00
Dustin L. Howett
b72a1aa3fe Rewrite the Bathroom Epiphanies Frosty Flake matrix and LED handling (#8243)
* Keyboard: revamp frosty-flake leds

This commit transitions bpiphany/frosty_flake to led_update_{kb,user}
and rewrites the AVR bit twiddling logic to use the standard QMK GPIO
API.

* Keyboard: rewrite frosty_flake's matrix reader to be a lite custom matrix

This commit replaces frosty_flake's custom matrix and debounce logic
with a "lite" custom matrix. In addition to being somewhat clearer, this
allows a consumer of the flake board to choose their own debouncing
algorithm. The one closest to the implementation originally in use is
sym_g, but this opens us up to supporting eager_pk and eager_pr.

The original matrix code was 18 columns for 8 rows, but using a single
row read and unpacking the bits into individual columns. To simplify,
I've changed the key layout to be 8C 18R instead of 18C 8R: this lets us
use a single read directly into the matrix _and_ drop down to a uint8_t
instead of a uint32_t for matrix_row_t.

Since we're no longer implementing our own debouncing and row unpacking,
we save ~400 bytes on the final firmware image.

Fully tested against a CM Storm QFR hosting the flake -- this commit
message was written using the new matrix code.

Firmware Sizes (assuming stock configuration as of 42d6270f2)

Matrix+Debounce     Size (bytes)
---------------     ------------
original            17740
new + sym_g         17284
new + eager_pr      18106
new + eager_pk      18204

I expect that there are some scanning speed benefits as well.

* Keyboard: update frosty_flake's UNUSED_PINS

* Keyboard: Remove meaningless weak redefinitions from frosty

These are not necessary (and all of them already live somewhere in
Quantum).
2020-03-02 05:17:09 +00:00
Nick Brassel
78069d4826 Add onekey keymap for testing reset to bootloader. (#8288) 2020-03-01 22:36:17 +00:00
Andrew Kannan
c543ccf07c Get the direction right on the S75 encoder (#8287) 2020-03-01 21:30:01 +00:00
Joel Challis
88356c85c4 Prune out pure software pwm && custom driver && remove wrapping BACKLIGHT_PIN (#8041) 2020-03-01 20:22:13 +00:00
Andrew Kannan
3dc061ac78 Make a fix to savage65 and tmov2 for via (#8286) 2020-03-02 07:16:43 +11:00
QMK Bot
95124bf933 format code according to conventions [skip ci] 2020-03-01 19:20:09 +00:00
Joel Challis
e7fb873ee2 Short term fix for conflicting types for 'tfp_printf' (#8157) 2020-03-02 05:46:40 +11:00
Joel Challis
629950e51b Fix recent clang-format breaking quantum.c (#8282) 2020-03-01 17:55:43 +00:00
QMK Bot
1ec8a7205f format code according to conventions [skip ci] 2020-03-01 13:54:25 +00:00
Ryan
ce604e1629 Remove duplicate BRTG case (#8277) 2020-03-01 13:22:21 +00:00
Ryan
c9e3fa6f70 Clean up includes for glcdfont headers (#7745)
* Clean up includes for glcdfont headers

* Remove pragma once, most of these are not headers

* Missed these
2020-03-01 17:56:50 +11:00
James Young
f513a9193c Fix the Breaking Changes doc again
WHAT YEAR IS IT?!
2020-02-29 20:46:48 -08:00
s-show
21715210e2 [Docs] translated 'feature_tap_dance.md' to japanese. (#8137)
* complete translation.

* Update docs/ja/feature_tap_dance.md

Update the file based on the suggestions.

* Update docs/ja/feature_tap_dance.md

Update the file based on the suggestions.

* Apply suggestions from code review

Update the file based on the suggestions.

* Apply suggestions from code review

Update the file based on the suggestions (Part 2).

* Apply suggestions from code review

Update the file based on the suggestions (Part 3).

* Apply suggestions from code review

Update the file based on the suggestions (Part 3).

* Apply suggestions from code review

Update the file based on the suggestions (Part 4).

* Apply suggestions from code review

Update the file based on the suggestions (Part 5).
ご提案いただいた修正案は全て確認できました。
続いて、コメント行の調整、「打つ・叩く」の変更、その他の修正を行います。

* fixed typo.

* Update the file based on the suggestions (Part 6).

* Update the file based on the suggestions (Part 7).

* Fixed sentence.

* Update docs/ja/feature_tap_dance.md

Update the file based on the suggestions (Part 8).

* Update the file based on the suggestions (Part 9).

Co-Authored-By: Takeshi ISHII <2170248+mtei@users.noreply.github.com>
Co-Authored-By: shela <shelaf@users.noreply.github.com>
2020-02-29 20:22:15 -08:00
Joel Challis
f74c769a19 PWM DMA based RGB Underglow for STM32 (#7928)
* Add pwm ws2812 driver

* Add docs for pwm ws2812 driver

* Update ws2812_pwm for ChibiOS 19

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

Co-authored-by: Nick Brassel <nick@tzarc.org>
2020-03-01 13:05:56 +11:00
holtenc
bb47236490 Add VIA support to Prime_M. Clean up all files (#8247)
* Add VIA support for Prime_L

* Update keyboards/primekb/prime_l/v1/config.h

* Add prime_exl_plus keyboard

* Temporary removal of prime_exl_plus

* Add Prime_EXL Plus, including VIA support

* Update keyboards/handwired/prime_exl_plus/readme.md

* Update keyboards/handwired/prime_exl_plus/readme.md

* Update keyboards/handwired/prime_exl_plus/readme.md

* Update keyboards/handwired/prime_exl_plus/rules.mk

* Update keyboards/handwired/prime_exl_plus/info.json

* Update keyboards/handwired/prime_exl_plus/info.json

* Update keyboards/handwired/prime_exl_plus/info.json

* Update keymap.c

* correct spacing of keymaps and layout macro. move indicator logic from user space to keyboard space

* further corrections to keymaps and layout macro.

* Update keyboards/handwired/prime_exl_plus/prime_exl_plus.c

* Update keyboards/handwired/prime_exl_plus/prime_exl_plus.c

* Update keyboards/handwired/prime_exl_plus/prime_exl_plus.c

* Update keyboards/handwired/prime_exl_plus/prime_exl_plus.c

* Update prime_exl_plus.c

* small edit to prime_exl_plus.c

* Add via support to Prime_M and clean things up

* Update rules.mk

* Update keyboards/primekb/prime_m/readme.md

* Update keyboards/primekb/prime_m/readme.md

* Update keyboards/primekb/prime_m/config.h
2020-02-29 17:42:50 -08:00
Nick Brassel
f5d1409c26 Track master branches for lib/chibios, lib/chibios-contrib, lib/ugfx. (#8273) 2020-03-01 11:51:38 +11:00
Nick Brassel
d0c3acbe3e Allow for ChibiOS 20.x (master), as well as enabling ChibiOS-Contrib HAL. (#8272) 2020-03-01 11:50:49 +11:00
Joel Challis
c775104b9f Use nano specs (#8270) 2020-03-01 11:49:16 +11:00
Joel Challis
8d9c800da0 Unconditionally enable ChibiOS syscalls (#8268)
* Enable syscalls all the time

* fix whitespace
2020-03-01 09:45:21 +11:00
James Young
cae91510dc Breaking Changes documentation fixes 2020-02-29 12:30:38 -08:00
James Young
26eef35f07 2020 February 29 Breaking Changes Update (#8064) 2020-02-29 11:59:30 -08:00
James Young
85041ff05b Update Breaking Changes checklist 2020-02-27 12:03:30 -08:00
James Young
7eab5ad60f Update Breaking Changes timeline
I've been working from one timeline while the docs said something different.
2020-02-27 11:17:23 -08:00
James Young
ae46e6ace9 Fix MCU rule for Wete (#8254)
Including the `xB` suffix prevents qmk_compiler (and thus QMK Configurator) from compiling firmware for the Wete.

Rolling this change back until we work out a long-term solution for the suffixes.
2020-02-27 20:40:31 +11:00
Nick Brassel
444fd3b1cc Add support for delays in send_string. (#8244) 2020-02-27 20:38:19 +11:00
Brandon Schlack
e18be69104 Add community layout support to KBD67 MKIIRGB v2 (#8249) 2020-02-27 13:19:34 +11:00
Mikkel Jeppesen
4667bc554e Fixed OS detection such that OSX doesn't take over the world (#8248) 2020-02-26 10:12:13 +01:00
holtenc
d52cd8886c [Keyboard] Add Prime_EXL Plus to handwired (#8238)
* Add VIA support for Prime_L

* Update keyboards/primekb/prime_l/v1/config.h

* Add prime_exl_plus keyboard

* Temporary removal of prime_exl_plus

* Add Prime_EXL Plus, including VIA support

* Update keyboards/handwired/prime_exl_plus/readme.md

* Update keyboards/handwired/prime_exl_plus/readme.md

* Update keyboards/handwired/prime_exl_plus/readme.md

* Update keyboards/handwired/prime_exl_plus/rules.mk

* Update keyboards/handwired/prime_exl_plus/info.json

* Update keyboards/handwired/prime_exl_plus/info.json

* Update keyboards/handwired/prime_exl_plus/info.json

* Update keymap.c

* correct spacing of keymaps and layout macro. move indicator logic from user space to keyboard space

* further corrections to keymaps and layout macro.

* Update keyboards/handwired/prime_exl_plus/prime_exl_plus.c

* Update keyboards/handwired/prime_exl_plus/prime_exl_plus.c

* Update keyboards/handwired/prime_exl_plus/prime_exl_plus.c

* Update keyboards/handwired/prime_exl_plus/prime_exl_plus.c

* Update prime_exl_plus.c

* small edit to prime_exl_plus.c
2020-02-25 13:21:59 -08:00
QMK Bot
61b71320f7 format code according to conventions [skip ci] 2020-02-25 18:57:18 +00:00
ridingqwerty
b949343b78 New feature: PERMISSIVE_HOLD_PER_KEY (#7994)
* Implement 'PERMISSIVE_HOLD_PER_KEY'

* Document 'PERMISSIVE_HOLD_PER_KEY'

Co-authored-by: GeorgeKoenig <35542036+GeorgeKoenig@users.noreply.github.com>
2020-02-25 13:25:52 -05:00
Joel Challis
f6111d49bb Split - Avoid race condition during matrix_init_quantum (#8235)
* Avoid race condition during matrix_init_quantum

* spelling is hard
2020-02-25 14:10:04 +00:00
Joel Challis
891d28a379 Acheron VIA support (#8204)
* Update acheron USB IDs

* Add shark via keymap

* Update austin via keymap

* Fix eeprom build error

* 3 layers fit
2020-02-25 11:28:07 +00:00
6518 changed files with 342151 additions and 95875 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

@@ -26,7 +26,8 @@
<!--- Go over all the following points, and put an `x` in all the boxes that apply. -->
<!--- If you're unsure about any of these, don't hesitate to ask. We're here to help! -->
- [ ] My code follows the code style of this project.
- [ ] My code follows the code style of this project: [**C**](https://docs.qmk.fm/#/coding_conventions_c), [**Python**](https://docs.qmk.fm/#/coding_conventions_python)
- [ ] I have read the [**PR Checklist** document](https://docs.qmk.fm/#/pr_checklist) and have made the appropriate changes.
- [ ] My change requires a change to the documentation.
- [ ] I have updated the documentation accordingly.
- [ ] I have read the [**CONTRIBUTING** document](https://docs.qmk.fm/#/contributing).

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

54
.github/workflows/info.yml vendored Normal file
View File

@@ -0,0 +1,54 @@
name: PR Lint keyboards
on:
pull_request:
paths:
- 'keyboards/**'
jobs:
info:
runs-on: ubuntu-latest
container: qmkfm/base_container
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- uses: trilom/file-changes-action@v1.2.3
id: file_changes
with:
output: '\n'
- name: Print info
run: |
git rev-parse --short HEAD
echo ${{ github.event.pull_request.base.sha }}
echo '${{ steps.file_changes.outputs.files}}'
- name: Run qmk info
shell: 'bash {0}'
run: |
QMK_CHANGES=$(echo -e '${{ steps.file_changes.outputs.files}}')
QMK_KEYBOARDS=$(qmk list-keyboards)
exit_code=0
for KB in $QMK_KEYBOARDS; do
KEYBOARD_CHANGES=$(echo "$QMK_CHANGES" | grep -E '^(keyboards/'${KB}'/)')
if [[ -z "$KEYBOARD_CHANGES" ]]; then
# skip as no changes for this keyboard
continue
fi
KEYMAP_ONLY=$(echo "$KEYBOARD_CHANGES" | grep -cv /keymaps/)
if [[ $KEYMAP_ONLY -gt 0 ]]; then
echo "linting ${KB}"
# TODO: info info always returns 0 - right now the only way to know failure is to inspect log lines
qmk info -l -kb ${KB} 2>&1 | tee /tmp/$$
!(grep -cq ☒ /tmp/$$)
: $((exit_code = $exit_code + $?))
fi
done
exit $exit_code

8
.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
@@ -70,3 +70,9 @@ id_rsa_*
# python things
__pycache__
# prerequisites for updating ChibiOS
/util/fmpp*
# Allow to exist but don't include it in the repo
user_song_list.h

12
.gitmodules vendored
View File

@@ -1,16 +1,24 @@
[submodule "lib/chibios"]
path = lib/chibios
url = https://github.com/qmk/ChibiOS
branch = master
[submodule "lib/chibios-contrib"]
path = lib/chibios-contrib
url = https://github.com/qmk/ChibiOS-Contrib
branch = k-type-fix
branch = master
[submodule "lib/ugfx"]
path = lib/ugfx
url = https://github.com/qmk/uGFX
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

22
.vscode/settings.json vendored
View File

@@ -5,15 +5,21 @@
// Configure glob patterns for excluding files and folders.
"files.exclude": {
"**/.build": true,
"**/*.hex": true
"**/*.hex": true,
"**/*.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 \
@@ -623,13 +628,19 @@ endif
# Generate the version.h file
ifndef SKIP_GIT
GIT_VERSION := $(shell git describe --abbrev=6 --dirty --always --tags 2>/dev/null || date +"%Y-%m-%d-%H:%M:%S")
CHIBIOS_VERSION := $(shell cd lib/chibios && git describe --abbrev=6 --dirty --always --tags 2>/dev/null || date +"%Y-%m-%d-%H:%M:%S")
CHIBIOS_CONTRIB_VERSION := $(shell cd lib/chibios-contrib && git describe --abbrev=6 --dirty --always --tags 2>/dev/null || date +"%Y-%m-%d-%H:%M:%S")
else
GIT_VERSION := NA
CHIBIOS_VERSION := NA
CHIBIOS_CONTRIB_VERSION := NA
endif
ifndef SKIP_VERSION
BUILD_DATE := $(shell date +"%Y-%m-%d-%H:%M:%S")
$(shell echo '#define QMK_VERSION "$(GIT_VERSION)"' > $(ROOT_DIR)/quantum/version.h)
$(shell echo '#define QMK_BUILDDATE "$(BUILD_DATE)"' >> $(ROOT_DIR)/quantum/version.h)
$(shell echo '#define CHIBIOS_VERSION "$(CHIBIOS_VERSION)"' >> $(ROOT_DIR)/quantum/version.h)
$(shell echo '#define CHIBIOS_CONTRIB_VERSION "$(CHIBIOS_CONTRIB_VERSION)"' >> $(ROOT_DIR)/quantum/version.h)
else
BUILD_DATE := NA
endif

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 json-keymap --quiet --output $(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

@@ -3,8 +3,14 @@ LAYOUTS_REPOS := $(patsubst %/,%,$(sort $(dir $(wildcard $(LAYOUTS_PATH)/*/))))
define SEARCH_LAYOUTS_REPO
LAYOUT_KEYMAP_PATH := $$(LAYOUTS_REPO)/$$(LAYOUT)/$$(KEYMAP)
LAYOUT_KEYMAP_JSON := $$(LAYOUT_KEYMAP_PATH)/keymap.json
LAYOUT_KEYMAP_C := $$(LAYOUT_KEYMAP_PATH)/keymap.c
ifneq ("$$(wildcard $$(LAYOUT_KEYMAP_C))","")
ifneq ("$$(wildcard $$(LAYOUT_KEYMAP_JSON))","")
-include $$(LAYOUT_KEYMAP_PATH)/rules.mk
KEYMAP_C := $(KEYBOARD_OUTPUT)/src/keymap.c
KEYMAP_JSON := $$(LAYOUT_KEYMAP_JSON)
KEYMAP_PATH := $$(LAYOUT_KEYMAP_PATH)
else ifneq ("$$(wildcard $$(LAYOUT_KEYMAP_C))","")
-include $$(LAYOUT_KEYMAP_PATH)/rules.mk
KEYMAP_C := $$(LAYOUT_KEYMAP_C)
KEYMAP_PATH := $$(LAYOUT_KEYMAP_PATH)
@@ -24,4 +30,7 @@ ifneq ($(FORCE_LAYOUT),)
endif
endif
$(foreach LAYOUT,$(LAYOUTS),$(eval $(call SEARCH_LAYOUTS)))
$(foreach LAYOUT,$(LAYOUTS),$(eval $(call SEARCH_LAYOUTS)))
# Use rule from build_json.mk, but update prerequisite in case KEYMAP_JSON was updated
$(KEYBOARD_OUTPUT)/src/keymap.c: $(KEYMAP_JSON)

View File

@@ -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
@@ -141,6 +114,10 @@ else
SRC += $(PLATFORM_COMMON_DIR)/flash_stm32.c
OPT_DEFS += -DEEPROM_EMU_STM32F072xB
OPT_DEFS += -DSTM32_EEPROM_ENABLE
else ifneq ($(filter $(MCU_SERIES),STM32L0xx STM32L1xx),)
OPT_DEFS += -DEEPROM_DRIVER
COMMON_VPATH += $(DRIVER_PATH)/eeprom
SRC += eeprom_driver.c eeprom_stm32_L0_L1.c
else
# This will effectively work the same as "transient" if not supported by the chip
SRC += $(PLATFORM_COMMON_DIR)/eeprom_teensy.c
@@ -159,7 +136,6 @@ ifeq ($(strip $(RGBLIGHT_ENABLE)), yes)
SRC += $(QUANTUM_DIR)/color.c
SRC += $(QUANTUM_DIR)/rgblight.c
CIE1931_CURVE := yes
LED_BREATHING_TABLE := yes
RGB_KEYCODES_ENABLE := yes
ifeq ($(strip $(RGBLIGHT_CUSTOM_DRIVER)), yes)
OPT_DEFS += -DRGBLIGHT_CUSTOM_DRIVER
@@ -168,7 +144,7 @@ ifeq ($(strip $(RGBLIGHT_ENABLE)), yes)
endif
endif
VALID_MATRIX_TYPES := yes IS31FL3731 IS31FL3733 IS31FL3737 WS2812 custom
VALID_MATRIX_TYPES := yes IS31FL3731 IS31FL3733 IS31FL3737 IS31FL3741 WS2812 custom
LED_MATRIX_ENABLE ?= no
ifneq ($(strip $(LED_MATRIX_ENABLE)), no)
@@ -229,6 +205,13 @@ ifeq ($(strip $(RGB_MATRIX_ENABLE)), IS31FL3737)
QUANTUM_LIB_SRC += i2c_master.c
endif
ifeq ($(strip $(RGB_MATRIX_ENABLE)), IS31FL3741)
OPT_DEFS += -DIS31FL3741 -DSTM32_I2C -DHAL_USE_I2C=TRUE
COMMON_VPATH += $(DRIVER_PATH)/issi
SRC += is31fl3741.c
QUANTUM_LIB_SRC += i2c_master.c
endif
ifeq ($(strip $(RGB_MATRIX_ENABLE)), WS2812)
OPT_DEFS += -DWS2812
WS2812_DRIVER_REQUIRED := yes
@@ -246,42 +229,30 @@ 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)
endif
ifneq ($(strip $(VARIABLE_TRACE)),)
VARIABLE_TRACE ?= no
ifneq ($(strip $(VARIABLE_TRACE)),no)
SRC += $(QUANTUM_DIR)/variable_trace.c
OPT_DEFS += -DNUM_TRACED_VARIABLES=$(strip $(VARIABLE_TRACE))
ifneq ($(strip $(MAX_VARIABLE_TRACE_SIZE)),)
OPT_DEFS += -DMAX_VARIABLE_TRACE_SIZE=$(strip $(MAX_VARIABLE_TRACE_SIZE))
endif
ifneq ($(strip $(MAX_VARIABLE_TRACE_SIZE)),)
OPT_DEFS += -DMAX_VARIABLE_TRACE_SIZE=$(strip $(MAX_VARIABLE_TRACE_SIZE))
endif
endif
ifeq ($(strip $(LCD_ENABLE)), yes)
@@ -304,17 +275,17 @@ ifeq ($(strip $(BACKLIGHT_ENABLE)), yes)
COMMON_VPATH += $(QUANTUM_DIR)/backlight
SRC += $(QUANTUM_DIR)/backlight/backlight.c
SRC += $(QUANTUM_DIR)/process_keycode/process_backlight.c
OPT_DEFS += -DBACKLIGHT_ENABLE
ifeq ($(strip $(BACKLIGHT_DRIVER)), custom)
OPT_DEFS += -DBACKLIGHT_CUSTOM_DRIVER
else ifeq ($(strip $(BACKLIGHT_DRIVER)), software)
SRC += $(QUANTUM_DIR)/backlight/backlight_soft.c
else
ifeq ($(PLATFORM),AVR)
SRC += $(QUANTUM_DIR)/backlight/backlight_avr.c
SRC += $(QUANTUM_DIR)/backlight/backlight_driver_common.c
ifeq ($(strip $(BACKLIGHT_DRIVER)), pwm)
SRC += $(QUANTUM_DIR)/backlight/backlight_$(PLATFORM_KEY).c
else
SRC += $(QUANTUM_DIR)/backlight/backlight_arm.c
SRC += $(QUANTUM_DIR)/backlight/backlight_$(strip $(BACKLIGHT_DRIVER)).c
endif
endif
endif
@@ -350,11 +321,6 @@ ifeq ($(strip $(CIE1931_CURVE)), yes)
LED_TABLES := yes
endif
ifeq ($(strip $(LED_BREATHING_TABLE)), yes)
OPT_DEFS += -DUSE_LED_BREATHING_TABLE
LED_TABLES := yes
endif
ifeq ($(strip $(LED_TABLES)), yes)
SRC += $(QUANTUM_DIR)/led_tables.c
endif
@@ -369,34 +335,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
@@ -415,26 +363,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
@@ -492,6 +425,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
@@ -499,10 +455,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
@@ -521,3 +501,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

View File

@@ -0,0 +1,75 @@
# QMK Breaking Change - 2020 Feb 29 Changelog
Four times a year QMK runs a process for merging Breaking Changes. A Breaking Change is any change which modifies how QMK behaves in a way that is incompatible or potentially dangerous. We limit these changes to 4 times per year so that users can have confidence that updating their QMK tree will not break their keymaps.
## Update ChibiOS/ChibiOS-Contrib/uGFX submodules
* General Notes
* A `make git-submodule` may be required after pulling the latest QMK firmware code to update affected submodules to the upgraded revisions
* Enabling link-time-optimization (`LINK_TIME_OPTIMIZATION_ENABLE = yes`) should work on a lot more boards
* Upgrade to ChibiOS ver19.1.3
* This will allow QMK to update to upstream ChibiOS a lot easier -- the old version was ~2 years out of date. Automated update scripts have been made available to simplify future upgrades.
* Includes improved MCU support and bugfixes
* ChibiOS revision is now included in Command output
* Timers should now be more accurate
* Upgrade to newer ChibiOS-Contrib
* Also includes improved MCU support and bugfixes
* ChibiOS-Contrib revision is now included in Command output
* Upgrade to newer uGFX
* Required in order to support updated ChibiOS
## Fix ChibiOS timer overflow for 16-bit SysTick devices
* On 16-bit SysTick devices, the timer subsystem in QMK was incorrectly dealing with overflow.
* When running at a 100000 SysTick frequency (possible on 16-bit devices, but uncommon), this overflow would occur after 0.65 seconds.
* Timers are now correctly handling this overflow case and timing should now be correct on ChibiOS/ARM.
## Update LUFA submodule
* Updates the LUFA submodule to include updates from upstream (abcminiuser/lufa)
* Includes some cleanup for QMK DFU generation
## Encoder flip
* Flips the encoder direction so that `clockwise == true` is for actually turning the knob clockwise
* Adds `ENCODER_DIRECTION_FLIP` define, so that reversing the expected dirction is simple for users.
* Cleans up documentation page for encoders
## Adding support for `BACKLIGHT_ON_STATE` for hardware PWM backlight
* Previously, the define only affected software PWM, and hardware PWM always assumed an N-channel MOSFET.
* The hardware PWM backlight setup has been updated to respect this option.
* The default "on" state has been changed to `1` - **this impacts all keyboards using software PWM backlight that do not define it explicitly**. If your keyboard's backlight is acting strange, it may have a P-channel MOSFET, and will need to have `#define BACKLIGHT_ON_STATE 0` added to the keyboard-level `config.h`. Please see the PR for more detailed information.
## Migrating `ACTION_LAYER_TAP_KEY()` entries in `fn_actions` to `LT()` keycodes
* `fn_actions` is deprecated, and its functionality has been superseded by direct keycodes and `process_record_user()`
* The end result of removing this obsolete feature should result in a decent reduction in firmware size and code complexity
* All keymaps affected are recommended to switch away from `fn_actions` in favour of the [custom keycode](https://docs.qmk.fm/#/custom_quantum_functions) and [macro](https://docs.qmk.fm/#/feature_macros) features
## Moving backlight keycode handling to `process_keycode/`
* This refactors the backlight keycode logic to be clearer and more modular.
* All backlight-related keycodes are now actioned in a single file.
* The `ACTION_BACKLIGHT_*` macros have also been deleted. If you are still using these in a `fn_actions[]` block, please switch to using the backlight keycodes or functions directly.
## Refactor Planck keymaps to use Layout Macros
* Refactor Planck keymaps to use layout macros instead of raw matrix assignments
* Makes keymaps revision-agnostic
* Should reduce noise and errors in Travis CI logs
## GON NerD codebase refactor
* Splits the codebase for GON NerD 60 and NerdD TKL PCBs into two separate directories.
* If your keymap is for a NerD 60 PCB, your `make` command is now `make gon/nerd60:<keymap>`.
* If your keymap is for a NerD TKL PCB, your `make` command is now `make gon/nerdtkl:<keymap>`.

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

@@ -9,24 +9,35 @@
## What is QMK Firmware?
QMK (*Quantum Mechanical Keyboard*) is an open source community that maintains QMK Firmware, QMK Toolbox, qmk.fm, and these docs. QMK Firmware is a keyboard firmware based on the [tmk\_keyboard](http://github.com/tmk/tmk_keyboard) with some useful features for Atmel AVR controllers, and more specifically, the [OLKB product line](http://olkb.com), the [ErgoDox EZ](http://www.ergodox-ez.com) keyboard, and the [Clueboard product line](http://clueboard.co/). It has also been ported to ARM chips using ChibiOS. You can use it to power your own hand-wired or custom keyboard PCB.
QMK (*Quantum Mechanical Keyboard*) is an open source community centered around developing computer input devices. The community encompasses all sorts of input devices, such as keyboards, mice, and MIDI devices. A core group of collaborators maintains [QMK Firmware](https://github.com/qmk/qmk_firmware), [QMK Configurator](https://config.qmk.fm), [QMK Toolbox](https://github.com/qmk/qmk_toolbox), [qmk.fm](https://qmk.fm), and this documentation with the help of community members like you.
## How to Get It
## Get Started
If you plan on contributing a keymap, keyboard, or features to QMK, the easiest thing to do is [fork the repo through Github](https://github.com/qmk/qmk_firmware#fork-destination-box), and clone your repo locally to make your changes, push them, then open a [Pull Request](https://github.com/qmk/qmk_firmware/pulls) from your fork.
Totally new to QMK? There are two ways to get started:
Otherwise, you can clone it directly with `git clone https://github.com/qmk/qmk_firmware`. Do not download the zip or tar files; a git repository is required to download the submodules in order to compile.
* Basic: [QMK Configurator](https://config.qmk.fm)
* Just select your keyboard from the dropdown and program your keyboard.
* We have an [introductory video](https://www.youtube.com/watch?v=-imgglzDMdY) you can watch.
* There is also an overview [document you can read](newbs_building_firmware_configurator.md).
* Advanced: [Use The Source](newbs.md)
* More powerful, but harder to use
## How to Compile
## Make It Yours
Before you are able to compile, you'll need to [install an environment](getting_started_build_tools.md) for AVR or/and ARM development. Once that is complete, you'll use the `make` command to build a keyboard and keymap with the following notation:
QMK has lots of [features](features.md) to explore, and a good deal of reference documentation to dig through. Most features are taken advantage of by modifying your [keymap](keymap.md), and changing the [keycodes](keycodes.md).
make planck/rev4:default
## Need help?
This would build the `rev4` revision of the `planck` with the `default` keymap. Not all keyboards have revisions (also called subprojects or folders), in which case, it can be omitted:
Check out the [support page](support.md) to see how you can get help using QMK.
make preonic:default
## Give Back
## How to Customize
There are a lot of ways you can contribute to the QMK Community. The easiest way to get started is to use it and spread the word to your friends.
QMK has lots of [features](features.md) to explore, and a good deal of [reference documentation](http://docs.qmk.fm) to dig through. Most features are taken advantage of by modifying your [keymap](keymap.md), and changing the [keycodes](keycodes.md).
* Help people out on our forums and chat rooms:
* [/r/olkb](https://www.reddit.com/r/olkb/)
* [Discord Server](https://discord.gg/Uq7gcHh)
* Contribute to our documentation by clicking "Edit This Page" at the bottom
* [Translate our documentation into your language](translating.md)
* [Report a bug](https://github.com/qmk/qmk_firmware/issues/new/choose)
* [Open a Pull Request](contributing.md)

View File

@@ -1,130 +1,176 @@
* [Complete Newbs Guide](newbs.md)
* [Getting Started](newbs_getting_started.md)
* Tutorial
* [Introduction](newbs.md)
* [Setup](newbs_getting_started.md)
* [Building Your First Firmware](newbs_building_firmware.md)
* [Flashing Firmware](newbs_flashing.md)
* [Testing and Debugging](newbs_testing_debugging.md)
* [Best Git Practices](newbs_git_best_practices.md)
* [Using Your Fork's Master](newbs_git_using_your_master_branch.md)
* [Resolving Merge Conflicts](newbs_git_resolving_merge_conflicts.md)
* [Resynchronizing a Branch](newbs_git_resynchronize_a_branch.md)
* [Learning Resources](newbs_learn_more_resources.md)
* [Getting Help/Support](support.md)
* [Other Resources](newbs_learn_more_resources.md)
* [Syllabus](syllabus.md)
* [QMK Basics](README.md)
* [QMK Introduction](getting_started_introduction.md)
* [QMK CLI](cli.md)
* [QMK CLI Config](cli_configuration.md)
* [Contributing to QMK](contributing.md)
* [How to Use Github](getting_started_github.md)
* [Getting Help](getting_started_getting_help.md)
* [Breaking Changes](breaking_changes.md)
* [My Pull Request Was Flagged](breaking_changes_instructions.md)
* [2019 Aug 30](ChangeLog/20190830.md)
* [FAQ](faq.md)
* FAQs
* [General FAQ](faq_general.md)
* [Build/Compile QMK](faq_build.md)
* [Debugging/Troubleshooting QMK](faq_debug.md)
* [Keymap](faq_keymap.md)
* [Driver Installation with Zadig](driver_installation_zadig.md)
* Detailed Guides
* [Install Build Tools](getting_started_build_tools.md)
* [Vagrant Guide](getting_started_vagrant.md)
* [Build/Compile Instructions](getting_started_make_guide.md)
* [Flashing Firmware](flashing.md)
* [Customizing Functionality](custom_quantum_functions.md)
* [Keymap Overview](keymap.md)
* [Hardware](hardware.md)
* [Compatible Microcontrollers](compatible_microcontrollers.md)
* [AVR Processors](hardware_avr.md)
* [Drivers](hardware_drivers.md)
* Reference
* [Keyboard Guidelines](hardware_keyboard_guidelines.md)
* [Config Options](config_options.md)
* [Keycodes](keycodes.md)
* [Coding Conventions - C](coding_conventions_c.md)
* [Coding Conventions - Python](coding_conventions_python.md)
* [Documentation Best Practices](documentation_best_practices.md)
* [Documentation Templates](documentation_templates.md)
* [Keymap FAQ](faq_keymap.md)
* [Glossary](reference_glossary.md)
* [Unit Testing](unit_testing.md)
* [Useful Functions](ref_functions.md)
* [Configurator Support](reference_configurator_support.md)
* [info.json Format](reference_info_json.md)
* [Python CLI Development](cli_development.md)
* [Features](features.md)
* [Basic Keycodes](keycodes_basic.md)
* [US ANSI Shifted Keys](keycodes_us_ansi_shifted.md)
* [Quantum Keycodes](quantum_keycodes.md)
* [Advanced Keycodes](feature_advanced_keycodes.md)
* [Audio](feature_audio.md)
* [Auto Shift](feature_auto_shift.md)
* [Backlight](feature_backlight.md)
* [Bluetooth](feature_bluetooth.md)
* [Bootmagic](feature_bootmagic.md)
* [Combos](feature_combo.md)
* [Command](feature_command.md)
* [Debounce API](feature_debounce_type.md)
* [DIP Switch](feature_dip_switch.md)
* [Dynamic Macros](feature_dynamic_macros.md)
* [Encoders](feature_encoders.md)
* [Grave Escape](feature_grave_esc.md)
* [Haptic Feedback](feature_haptic_feedback.md)
* [HD44780 LCD Controller](feature_hd44780.md)
* [Key Lock](feature_key_lock.md)
* [Layouts](feature_layouts.md)
* [Leader Key](feature_leader_key.md)
* [LED Matrix](feature_led_matrix.md)
* [Macros](feature_macros.md)
* [Mouse Keys](feature_mouse_keys.md)
* [OLED Driver](feature_oled_driver.md)
* [One Shot Keys](feature_advanced_keycodes.md#one-shot-keys)
* [Pointing Device](feature_pointing_device.md)
* [PS/2 Mouse](feature_ps2_mouse.md)
* [RGB Lighting](feature_rgblight.md)
* [RGB Matrix](feature_rgb_matrix.md)
* [Space Cadet](feature_space_cadet.md)
* [Split Keyboard](feature_split_keyboard.md)
* [Stenography](feature_stenography.md)
* [Swap Hands](feature_swap_hands.md)
* [Tap Dance](feature_tap_dance.md)
* [Terminal](feature_terminal.md)
* [Thermal Printer](feature_thermal_printer.md)
* [Unicode](feature_unicode.md)
* [Userspace](feature_userspace.md)
* [Velocikey](feature_velocikey.md)
* Configurator
* [Overview](newbs_building_firmware_configurator.md)
* [Step by Step](configurator_step_by_step.md)
* [Troubleshooting](configurator_troubleshooting.md)
* QMK API
* [Overview](api_overview.md)
* [API Documentation](api_docs.md)
* [Keyboard Support](reference_configurator_support.md)
* For Makers and Modders
* [Hand Wiring Guide](hand_wire.md)
* [ISP Flashing Guide](isp_flashing_guide.md)
* [ARM Debugging Guide](arm_debugging.md)
* [ADC Driver](adc_driver.md)
* [I2C Driver](i2c_driver.md)
* [WS2812 Driver](ws2812_driver.md)
* [EEPROM Driver](eeprom_driver.md)
* [GPIO Controls](internals_gpio_control.md)
* [Custom Matrix](custom_matrix.md)
* [Proton C Conversion](proton_c_conversion.md)
* CLI
* [Overview](cli.md)
* [Configuration](cli_configuration.md)
* [Commands](cli_commands.md)
* For a Deeper Understanding
* [How Keyboards Work](how_keyboards_work.md)
* [Understanding QMK](understanding_qmk.md)
* Using QMK
* Guides
* [Customizing Functionality](custom_quantum_functions.md)
* [Driver Installation with Zadig](driver_installation_zadig.md)
* [Keymap Overview](keymap.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)
* IDEs
* [Using Eclipse with QMK](other_eclipse.md)
* [Using VSCode with QMK](other_vscode.md)
* Git Best Practices
* [Introduction](newbs_git_best_practices.md)
* [Your Fork](newbs_git_using_your_master_branch.md)
* [Merge Conflicts](newbs_git_resolving_merge_conflicts.md)
* [Fixing Your Branch](newbs_git_resynchronize_a_branch.md)
* Keyboard Building
* [Hand Wiring Guide](hand_wire.md)
* [ISP Flashing Guide](isp_flashing_guide.md)
* Other Topics
* [Using Eclipse with QMK](other_eclipse.md)
* [Using VSCode with QMK](other_vscode.md)
* [Support](support.md)
* [Translating the QMK Docs](translating.md)
* Simple Keycodes
* [Full List](keycodes.md)
* [Basic Keycodes](keycodes_basic.md)
* [Language-Specific Keycodes](reference_keymap_extras.md)
* [Modifier Keys](feature_advanced_keycodes.md)
* [Quantum Keycodes](quantum_keycodes.md)
* QMK Internals (In Progress)
* [Defines](internals_defines.md)
* [Input Callback Reg](internals_input_callback_reg.md)
* [Midi Device](internals_midi_device.md)
* [Midi Device Setup Process](internals_midi_device_setup_process.md)
* [Midi Util](internals_midi_util.md)
* [Send Functions](internals_send_functions.md)
* [Sysex Tools](internals_sysex_tools.md)
* Advanced Keycodes
* [Command](feature_command.md)
* [Dynamic Macros](feature_dynamic_macros.md)
* [Grave Escape](feature_grave_esc.md)
* [Leader Key](feature_leader_key.md)
* [Mod-Tap](mod_tap.md)
* [Macros](feature_macros.md)
* [Mouse Keys](feature_mouse_keys.md)
* [Space Cadet Shift](feature_space_cadet.md)
* [US ANSI Shifted Keys](keycodes_us_ansi_shifted.md)
* Software Features
* [Auto Shift](feature_auto_shift.md)
* [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
* [HD44780 LCD Controller](feature_hd44780.md)
* [OLED Driver](feature_oled_driver.md)
* Lighting
* [Backlight](feature_backlight.md)
* [LED Matrix](feature_led_matrix.md)
* [RGB Lighting](feature_rgblight.md)
* [RGB Matrix](feature_rgb_matrix.md)
* [Audio](feature_audio.md)
* [Bluetooth](feature_bluetooth.md)
* [Bootmagic](feature_bootmagic.md)
* [Custom Matrix](custom_matrix.md)
* [DIP Switch](feature_dip_switch.md)
* [Encoders](feature_encoders.md)
* [Haptic Feedback](feature_haptic_feedback.md)
* [Proton C Conversion](proton_c_conversion.md)
* [PS/2 Mouse](feature_ps2_mouse.md)
* [Split Keyboard](feature_split_keyboard.md)
* [Stenography](feature_stenography.md)
* [Thermal Printer](feature_thermal_printer.md)
* [Velocikey](feature_velocikey.md)
* Developing QMK
* [PR Checklist](pr_checklist.md)
* Breaking Changes
* [Overview](breaking_changes.md)
* [My Pull Request Was Flagged](breaking_changes_instructions.md)
* History
* [2020 May 30](ChangeLog/20200530.md)
* [2020 Feb 29](ChangeLog/20200229.md)
* [2019 Aug 30](ChangeLog/20190830.md)
* C Development
* [ARM Debugging Guide](arm_debugging.md)
* [AVR Processors](hardware_avr.md)
* [Coding Conventions](coding_conventions_c.md)
* [Compatible Microcontrollers](compatible_microcontrollers.md)
* [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)
* Configurator Development
* QMK API
* [Development Environment](api_development_environment.md)
* [Architecture Overview](api_development_overview.md)
* Hardware Platform Development
* Arm/ChibiOS
* [Selecting an MCU](platformdev_selecting_arm_mcu.md)
* [Early initialization](platformdev_chibios_earlyinit.md)
* QMK Reference
* [Contributing to QMK](contributing.md)
* [Translating the QMK Docs](translating.md)
* [Config Options](config_options.md)
* [Make Documentation](getting_started_make_guide.md)
* [Documentation Best Practices](documentation_best_practices.md)
* [Documentation Templates](documentation_templates.md)
* [Community Layouts](feature_layouts.md)
* [Unit Testing](unit_testing.md)
* [Useful Functions](ref_functions.md)
* [info.json Format](reference_info_json.md)
* For a Deeper Understanding
* [How Keyboards Work](how_keyboards_work.md)
* [How a Matrix Works](how_a_matrix_works.md)
* [Understanding QMK](understanding_qmk.md)
* QMK Internals (In Progress)
* [Defines](internals_defines.md)
* [Input Callback Reg](internals_input_callback_reg.md)
* [Midi Device](internals_midi_device.md)
* [Midi Device Setup Process](internals_midi_device_setup_process.md)
* [Midi Util](internals_midi_util.md)
* [Send Functions](internals_send_functions.md)
* [Sysex Tools](internals_sysex_tools.md)

View File

@@ -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 is currently AVR-only. The values returned are 10-bit integers (0-1023) mapped between 0V and VCC (usually 5V or 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
@@ -20,7 +20,9 @@ Then place this include at the top of your code:
## Channels
|Channel|AT90USB64/128|ATmega16/32U4|ATmega32A|ATmega328P|
### AVR
|Channel|AT90USB64/128|ATmega16/32U4|ATmega32A|ATmega328/P|
|-------|-------------|-------------|---------|----------|
|0 |`F0` |`F0` |`A0` |`C0` |
|1 |`F1` |`F1` |`A1` |`C1` |
@@ -37,10 +39,86 @@ Then place this include at the top of your code:
|12 | |`B5` | | |
|13 | |`B6` | | |
<sup>\* The ATmega328P possesses two extra ADC channels; however, they are not present on the DIP pinout, and are not shared with GPIO pins. You can use `adc_read()` directly to gain access to these.</sup>
<sup>\* The ATmega328/P possesses two extra ADC channels; however, they are not present on the DIP pinout, and are not shared with GPIO pins. You can use `adc_read()` directly to gain access to these.</sup>
### ARM
Note that some of these pins are doubled-up on ADCs with the same channel. This is because the pins can be used for either ADC.
Also note that the F0 and F3 use different numbering schemes. The F0 has a single ADC and the channels are 0-based, whereas the F3 has 4 ADCs and the channels are 1 based. This is because the F0 uses the `ADCv1` implementation of the ADC, whereas the F3 uses the `ADCv3` implementation.
|ADC|Channel|STM32F0XX|STM32F3XX|
|---|-------|---------|---------|
|1 |0 |`A0` | |
|1 |1 |`A1` |`A0` |
|1 |2 |`A2` |`A1` |
|1 |3 |`A3` |`A2` |
|1 |4 |`A4` |`A3` |
|1 |5 |`A5` |`F4` |
|1 |6 |`A6` |`C0` |
|1 |7 |`A7` |`C1` |
|1 |8 |`B0` |`C2` |
|1 |9 |`B1` |`C3` |
|1 |10 |`C0` |`F2` |
|1 |11 |`C1` | |
|1 |12 |`C2` | |
|1 |13 |`C3` | |
|1 |14 |`C4` | |
|1 |15 |`C5` | |
|1 |16 | | |
|2 |1 | |`A4` |
|2 |2 | |`A5` |
|2 |3 | |`A6` |
|2 |4 | |`A7` |
|2 |5 | |`C4` |
|2 |6 | |`C0` |
|2 |7 | |`C1` |
|2 |8 | |`C2` |
|2 |9 | |`C3` |
|2 |10 | |`F2` |
|2 |11 | |`C5` |
|2 |12 | |`B2` |
|2 |13 | | |
|2 |14 | | |
|2 |15 | | |
|2 |16 | | |
|3 |1 | |`B1` |
|3 |2 | |`E9` |
|3 |3 | |`E13` |
|3 |4 | | |
|3 |5 | | |
|3 |6 | |`E8` |
|3 |7 | |`D10` |
|3 |8 | |`D11` |
|3 |9 | |`D12` |
|3 |10 | |`D13` |
|3 |11 | |`D14` |
|3 |12 | |`B0` |
|3 |13 | |`E7` |
|3 |14 | |`E10` |
|3 |15 | |`E11` |
|3 |16 | |`E12` |
|4 |1 | |`E14` |
|4 |2 | |`B12` |
|4 |3 | |`B13` |
|4 |4 | |`B14` |
|4 |5 | |`B15` |
|4 |6 | |`E8` |
|4 |7 | |`D10` |
|4 |8 | |`D11` |
|4 |9 | |`D12` |
|4 |10 | |`D13` |
|4 |11 | |`D14` |
|4 |12 | |`D8` |
|4 |13 | |`D9` |
|4 |14 | | |
|4 |15 | | |
|4 |16 | | |
## Functions
### AVR
|Function |Description |
|----------------------------|-------------------------------------------------------------------------------------------------------------------|
|`analogReference(mode)` |Sets the analog voltage reference source. Must be one of `ADC_REF_EXTERNAL`, `ADC_REF_POWER` or `ADC_REF_INTERNAL`.|
@@ -48,3 +126,28 @@ Then place this include at the top of your code:
|`analogReadPin(pin)` |Reads the value from the specified QMK pin, eg. `F6` for ADC6 on the ATmega32U4. |
|`pinToMux(pin)` |Translates a given QMK pin to a mux value. If an unsupported pin is given, returns the mux value for "0V (GND)". |
|`adc_read(mux)` |Reads the value from the ADC according to the specified mux. See your MCU's datasheet for more information. |
### ARM
Note that care was taken to match all of the functions used for AVR devices, however complications in the ARM platform prevent that from always being possible. For example, the `STM32` chips do not have assigned Arduino pins. We could use the default pin numbers, but those numbers change based on the package type of the device. For this reason, please specify your target pins with their identifiers (`A0`, `F3`, etc.). Also note that there are some variants of functions that accept the target ADC for the pin. Some pins can be used for multiple ADCs, and this specified can help you pick which ADC will be used to interact with that pin.
|Function |Description |
|----------------------------|--------------------------------------------------------------------------------------------------------------------|
|`analogReadPin(pin)` |Reads the value from the specified QMK pin, eg. `A0` for channel 0 on the STM32F0 and ADC1 channel 1 on the STM32F3. Note that if a pin can be used for multiple ADCs, it will pick the lower numbered ADC for this function. eg. `C0` will be channel 6 of ADC 1 when it could be used for ADC 2 as well.|
|`analogReadPinAdc(pin, adc)`|Reads the value from the specified QMK pin and ADC, eg. `C0, 1` will read from channel 6, ADC 2 instead of ADC 1. Note that the ADCs are 0-indexed for this function.|
|`pinToMux(pin)` |Translates a given QMK pin to a channel and ADC combination. If an unsupported pin is given, returns the mux value for "0V (GND)".|
|`adc_read(mux)` |Reads the value from the ADC according to the specified pin and adc combination. See your MCU's datasheet for more information.|
## Configuration
## ARM
The ARM implementation of the ADC has a few additional options that you can override in your own keyboards and keymaps to change how it operates.
|`#define` |Type |Default |Description|
|-------------------|------|---------------------|-----------|
|ADC_CIRCULAR_BUFFER|`bool`|`false` |If `TRUE`, then the implementation will use a circular buffer.|
|ADC_NUM_CHANNELS |`int` |`1` |Sets the number of channels that will be scanned as part of an ADC operation. The current implementation only supports `1`.|
|ADC_BUFFER_DEPTH |`int` |`2` |Sets the depth of each result. Since we are only getting a 12-bit result by default, we set this to `2` bytes so we can contain our one value. This could be set to 1 if you opt for a 8-bit or lower result.|
|ADC_SAMPLING_RATE |`int` |`ADC_SMPR_SMP_1P5` |Sets the sampling rate of the ADC. By default, it is set to the fastest setting. Please consult the corresponding `hal_adc_lld.h` in ChibiOS for your specific microcontroller for further documentation on your available options.|
|ADC_RESOLUTION |`int` |`ADC_CFGR1_RES_12BIT`|The resolution of your result. We choose 12 bit by default, but you can opt for 12, 10, 8, or 6 bit. Please consult the corresponding `hal_adc_lld.h` in ChibiOS for your specific microcontroller for further documentation on your available options.|

View File

@@ -0,0 +1,3 @@
# Development Environment Setup
To setup a development stack head over to the [qmk_web_stack](https://github.com/qmk/qmk_web_stack).

View File

@@ -0,0 +1,44 @@
# QMK Compiler Development Guide
This page attempts to introduce developers to the QMK Compiler. It does not go into nitty gritty details- for that you should read code. What this will give you is a framework to hang your understanding on as you read the code.
# Overview
The QMK Compile API consists of a few movings parts:
![Architecture Diagram](https://raw.githubusercontent.com/qmk/qmk_api/master/docs/architecture.svg)
API Clients interact exclusively with the API service. This is where they submit jobs, check status, and download results. The API service inserts compile jobs into [Redis Queue](https://python-rq.org) and checks both RQ and S3 for the results of those jobs.
Workers fetch new compile jobs from RQ, compile them, and then upload the source and the binary to an S3 compatible storage engine.
# Workers
QMK Compiler Workers are responsible for doing the actual building. When a worker pulls a job from RQ it does several things to complete that job:
* Make a fresh qmk_firmware checkout
* Use the supplied layers and keyboard metadata to build a `keymap.c`
* Build the firmware
* Zip a copy of the source
* Upload the firmware, source zip, and a metadata file to S3.
* Report the status of the job to RQ
# API Service
The API service is a relatively simple Flask application. There are a few main views you should understand.
## @app.route('/v1/compile', methods=['POST'])
This is the main entrypoint for the API. A client's interaction starts here. The client POST's a JSON document describing their keyboard, and the API does some (very) basic validation of that JSON before submitting the compile job.
## @app.route('/v1/compile/&lt;string:job_id&gt;', methods=['GET'])
This is the most frequently called endpoint. It pulls the job details from redis, if they're still available, or the cached job details on S3 if they're not.
## @app.route('/v1/compile/&lt;string:job_id&gt;/download', methods=['GET'])
This method allows users to download the compiled firmware file.
## @app.route('/v1/compile/&lt;string:job_id&gt;/source', methods=['GET'])
This method allows users to download the source for their firmware.

68
docs/api_docs.md Normal file
View File

@@ -0,0 +1,68 @@
# QMK API
This page describes using the QMK API. If you are an application developer you can use this API to compile firmware for any [QMK](https://qmk.fm) Keyboard.
## Overview
This service is an asynchronous API for compiling custom keymaps. You POST some JSON to the API, periodically check the status, and when your firmware has finished compiling you can download the resulting firmware and (if desired) source code for that firmware.
#### Example JSON Payload:
```json
{
"keyboard": "clueboard/66/rev2",
"keymap": "my_awesome_keymap",
"layout": "LAYOUT_all",
"layers": [
["KC_GRV","KC_1","KC_2","KC_3","KC_4","KC_5","KC_6","KC_7","KC_8","KC_9","KC_0","KC_MINS","KC_EQL","KC_GRV","KC_BSPC","KC_PGUP","KC_TAB","KC_Q","KC_W","KC_E","KC_R","KC_T","KC_Y","KC_U","KC_I","KC_O","KC_P","KC_LBRC","KC_RBRC","KC_BSLS","KC_PGDN","KC_CAPS","KC_A","KC_S","KC_D","KC_F","KC_G","KC_H","KC_J","KC_K","KC_L","KC_SCLN","KC_QUOT","KC_NUHS","KC_ENT","KC_LSFT","KC_NUBS","KC_Z","KC_X","KC_C","KC_V","KC_B","KC_N","KC_M","KC_COMM","KC_DOT","KC_SLSH","KC_RO","KC_RSFT","KC_UP","KC_LCTL","KC_LGUI","KC_LALT","KC_MHEN","KC_SPC","KC_SPC","KC_HENK","KC_RALT","KC_RCTL","MO(1)","KC_LEFT","KC_DOWN","KC_RIGHT"],
["KC_ESC","KC_F1","KC_F2","KC_F3","KC_F4","KC_F5","KC_F6","KC_F7","KC_F8","KC_F9","KC_F10","KC_F11","KC_F12","KC_TRNS","KC_DEL","BL_STEP","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","_______","KC_TRNS","KC_PSCR","KC_SLCK","KC_PAUS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","MO(2)","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_PGUP","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","MO(1)","KC_LEFT","KC_PGDN","KC_RGHT"],
["KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","RESET","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","MO(2)","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","MO(1)","KC_TRNS","KC_TRNS","KC_TRNS"]
]
}
```
As you can see the payload describes all aspects of a keyboard necessary to create and generate a firmware. Each layer is a single list of QMK keycodes the same length as the keyboard's `LAYOUT` macro. If a keyboard supports mulitple `LAYOUT` macros you can specify which macro to use.
## Submitting a Compile Job
To compile your keymap into a firmware simply POST your JSON to the `/v1/compile` endpoint. In the following example we've placed the JSON payload into a file named `json_data`.
```
$ curl -H "Content-Type: application/json" -X POST -d "$(< json_data)" http://api.qmk.fm/v1/compile
{
"enqueued": true,
"job_id": "ea1514b3-bdfc-4a7b-9b5c-08752684f7f6"
}
```
## Checking The Status
After submitting your keymap you can check the status using a simple HTTP GET call:
```
$ curl http://api.qmk.fm/v1/compile/ea1514b3-bdfc-4a7b-9b5c-08752684f7f6
{
"created_at": "Sat, 19 Aug 2017 21:39:12 GMT",
"enqueued_at": "Sat, 19 Aug 2017 21:39:12 GMT",
"id": "f5f9b992-73b4-479b-8236-df1deb37c163",
"status": "running",
"result": null
}
```
This shows us that the job has made it through the queue and is currently running. There are 5 possible statuses:
* **failed**: Something about the compiling service has broken.
* **finished**: The compilation is complete and you should check `result` to see the results.
* **queued**: The keymap is waiting for a compilation server to become available.
* **running**: The compilation is in progress and should be complete soon.
* **unknown**: A serious error has occurred and you should [file a bug](https://github.com/qmk/qmk_compiler/issues).
## Examining Finished Results
Once your compile job has finished you'll check the `result` key. The value of this key is a hash containing several key bits of information:
* `firmware_binary_url`: A list of URLs for the the flashable firmware
* `firmware_keymap_url`: A list of URLs for the the `keymap.c`
* `firmware_source_url`: A list of URLs for the full firmware source code
* `output`: The stdout and stderr for this compile job. Errors will be found here.

15
docs/api_overview.md Normal file
View File

@@ -0,0 +1,15 @@
# QMK API
The QMK API provides an asynchronous API that Web and GUI tools can use to compile arbitrary keymaps for any keyboard supported by [QMK](http://qmk.fm/). The stock keymap template supports all QMK keycodes that do not require supporting C code. Keyboard maintainers can supply their own custom templates to enable more functionality.
## App Developers
If you are an app developer interested in using this API in your application you should head over to [Using The API](api_docs.md).
## Keyboard Maintainers
If you would like to enhance your keyboard's support in the QMK Compiler API head over to the [Keyboard Support](reference_configurator_support.md) section.
## Backend Developers
If you are interested in working on the API itself you should start by setting up a [Development Environment](api_development_environment.md), then check out [Hacking On The API](api_development_overview.md).

View File

@@ -1,9 +0,0 @@
# Becoming a QMK Collaborator
A QMK collaborator is a keyboard maker or designer that is interested in helping QMK grow and fully support their keyboard(s), and encouraging their users and customers to submit features, ideas, and keymaps. We're always looking to add more keyboards and collaborators, but we ask that they fulfill these requirements:
* **Have a PCB available for sale.** Unfortunately there's just too much variation and complications with handwired keyboards.
* **Maintain your keyboard in QMK.** This may just require an initial setup to get your keyboard working, but it could also include accommodating changes made to QMK's core that might break or render any custom code redundant.
* **Approve and merge keymap pull requests for your keyboard.** We like to encourage users to contribute their keymaps for others to see and work from when creating their own.
If you feel you meet these requirements, shoot us an email at hello@qmk.fm with an introduction and some links to your keyboard!

View File

@@ -6,26 +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 February 29, 2020.
The next Breaking Change is scheduled for Aug 29, 2020.
### Important Dates
* [x] 2019 Sep 21 - `future` is created. It will be rebased weekly.
* [x] 2020 Feb 1 - `future` closed to new PR's.
* [x] 2020 Feb 1 - Call for testers.
* [ ] 2020 Feb 26 - `master` is locked, no PR's merged.
* [ ] 2020 Feb 28 - Merge `future` to `master`.
* [ ] 2020 Feb 29 - `master` is unlocked. PR's can be merged again.
* [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:
@@ -36,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:
@@ -46,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
@@ -93,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,269 +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 <https://docs.qmk.fm/#/flashing>
for more details of the available bootloaders.
**Usage for Configurator Exports**:
```
qmk flash <configuratorExport.json> -bl <bootloader>
```
**Usage for Keymaps**:
```
qmk flash -kb <keyboard_name> -km <keymap_name> -bl <bootloader>
```
**Listing the Bootloaders**
```
qmk flash -b
```
## `qmk config`
This command lets you configure the behavior of QMK. For the full `qmk config` documentation see [CLI Configuration](cli_configuration.md).
**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 json-keymap`
Creates a keymap.c from a QMK Configurator export.
**Usage**:
```
qmk json-keymap [-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

@@ -4,7 +4,7 @@ This document explains how `qmk config` works.
# Introduction
Configuration for QMK CLI is a key/value system. Each key consists of a subcommand and an argument name separated by a period. This allows for a straightforward and direct translation between config keys and the arguments they set.
Configuration for the QMK CLI is a key/value system. Each key consists of a subcommand and an argument name separated by a period. This allows for a straightforward and direct translation between config keys and the arguments they set.
## Simple Example
@@ -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

@@ -14,6 +14,7 @@ Certain MCUs which do not have native USB will use [V-USB](https://www.obdev.at/
* [ATmega32A](https://www.microchip.com/wwwproducts/en/ATmega32A)
* [ATmega328P](https://www.microchip.com/wwwproducts/en/ATmega328P)
* [ATmega328](https://www.microchip.com/wwwproducts/en/ATmega328)
## ARM

View File

@@ -43,8 +43,6 @@ This is a C header file that is one of the first things included, and will persi
* generally who/whatever brand produced the board
* `#define PRODUCT Board`
* the name of the keyboard
* `#define DESCRIPTION a keyboard`
* a short description of what the keyboard is
* `#define MATRIX_ROWS 5`
* the number of rows in your keyboard's matrix
* `#define MATRIX_COLS 15`
@@ -115,9 +113,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
@@ -136,20 +134,22 @@ If you define these options you will enable the associated feature, which may in
* enables handling for per key `TAPPING_TERM` settings
* `#define RETRO_TAPPING`
* tap anyway, even after TAPPING_TERM, if there was no other key interruption between press and release
* See [Retro Tapping](feature_advanced_keycodes.md#retro-tapping) for details
* See [Retro Tapping](tap_hold.md#retro-tapping) for details
* `#define TAPPING_TOGGLE 2`
* how many taps before triggering the toggle
* `#define PERMISSIVE_HOLD`
* makes tap and hold keys trigger the hold if another key is pressed before releasing, even if it hasn't hit the `TAPPING_TERM`
* See [Permissive Hold](feature_advanced_keycodes.md#permissive-hold) for details
* See [Permissive Hold](tap_hold.md#permissive-hold) for details
* `#define PERMISSIVE_HOLD_PER_KEY`
* enabled handling for per key `PERMISSIVE_HOLD` settings
* `#define IGNORE_MOD_TAP_INTERRUPT`
* makes it possible to do rolling combos (zx) with keys that convert to other keys on hold, by enforcing the `TAPPING_TERM` for both keys.
* See [Mod tap interrupt](feature_advanced_keycodes.md#ignore-mod-tap-interrupt) for details
* See [Ignore Mod Tap Interrupt](tap_hold.md#ignore-mod-tap-interrupt) for details
* `#define IGNORE_MOD_TAP_INTERRUPT_PER_KEY`
* enables handling for per key `IGNORE_MOD_TAP_INTERRUPT` settings
* `#define TAPPING_FORCE_HOLD`
* makes it possible to use a dual role key as modifier shortly after having been tapped
* See [Hold after tap](feature_advanced_keycodes.md#tapping-force-hold)
* See [Tapping Force Hold](tap_hold.md#tapping-force-hold)
* Breaks any Tap Toggle functionality (`TT` or the One Shot Tap Toggle)
* `#define TAPPING_FORCE_HOLD_PER_KEY`
* enables handling for per key `TAPPING_FORCE_HOLD` settings
@@ -188,6 +188,15 @@ If you define these options you will enable the associated feature, which may in
* pin the DI on the WS2812 is hooked-up to
* `#define RGBLIGHT_ANIMATIONS`
* run RGB animations
* `#define RGBLIGHT_LAYERS`
* 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`
@@ -239,7 +248,10 @@ There are a few different ways to set handedness for split keyboards (listed in
* `#define SPLIT_HAND_PIN B7`
* For using high/low pin to determine handedness, low = right hand, high = left hand. Replace `B7` with the pin you are using. This is optional, and if you leave `SPLIT_HAND_PIN` undefined, then you can still use the EE_HANDS method or MASTER_LEFT / MASTER_RIGHT defines like the stock Let's Split uses.
* `#define EE_HANDS` (only works if `SPLIT_HAND_PIN` is not defined)
* `#define SPLIT_HAND_MATRIX_GRID <out_pin>,<in_pin>`
* The handedness is determined by using the intersection of the keyswitches in the key matrix, which does not exist. Normally, when this intersection is shorted (level low), it is considered left. If you define `#define SPLIT_HAND_MATRIX_GRID_LOW_IS_RIGHT`, it is determined to be right when the level is low.
* `#define EE_HANDS` (only works if `SPLIT_HAND_PIN` and `SPLIT_HAND_MATRIX_GRID` are not defined)
* Reads the handedness value stored in the EEPROM after `eeprom-lefthand.eep`/`eeprom-righthand.eep` has been flashed to their respective halves.
* `#define MASTER_RIGHT`
@@ -313,10 +325,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`
@@ -333,7 +345,7 @@ This is a [make](https://www.gnu.org/software/make/manual/make.html) file that i
* `bootloadHID`
* `USBasp`
## Feature Options
## Feature Options :id=feature-options
Use these to enable or disable building certain features. The more you have enabled the bigger your firmware will be, and you run the risk of building a firmware too large for your MCU.

View File

@@ -0,0 +1,58 @@
# QMK Configurator: Step by Step
This page describes the steps for building your firmware in QMK Configurator.
## Step 1: Select Your Keyboard
Click the drop down box and select the keyboard you want to create a keymap for.
?> If your keyboard has several versions, make sure you select the correct one.
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? -->
## Step 2: Select Your Keyboard Layout
Choose the layout that best represents the keymap you want to create. Some keyboards do not have enough layouts or correct layouts defined yet. They will be supported in the future.
!> Sometimes there isn't a layout that supports your exact build. In that case select `LAYOUT_all`.
## Step 3: Name Your Keymap
Call this keymap what you want.
?> If you are running into issues when compiling, it may be worth changing this name, as it may already exist in the QMK Firmware repo.
## Step 4: Define Your Keymap
Keycode Entry is accomplished in one of 3 ways:
1. Drag and drop
2. Clicking on an empty spot on the layout, then clicking the keycode you desire
3. Clicking on an empty spot on the layout, then pressing the physical key on your keyboard
?> Hover your mouse over a key and a short blurb will tell you what that keycode does. For a more verbose description please see:
* [Basic Keycode Reference](keycodes_basic.md)
* [Advanced Keycode Reference](feature_advanced_keycodes.md)
!> If your selected layout doesn't match your physical build leave the unused keys blank. If you're not sure which key is in use, for example you have a one backspace key but `LAYOUT_all` has 2 keys, put the same keycode in both locations.
## Step 5: Save Your Keymap for Future Changes
When you're satisfied with your keymap or just want to work on it later, press the `Export Keymap` button. It will save your keymap to your computer. You can then load this .json file in the future by pressing the `Import Keymap` button.
!> **CAUTION:** This is not the same type of .json file used for kbfirmware.com or any other tool. If you try to use this for those tools, or the .json from those tools with QMK Configurator, you will encounter problems.
## Step 6: Compile Your Firmware File
Press the green `Compile` button.
When the compilation is done, you will be able to press the green `Download Firmware` button.
## Next steps: Flashing Your Keyboard
Please refer to [Flashing Firmware](newbs_flashing.md).

View File

@@ -0,0 +1,26 @@
# Configurator Troubleshooting
## My .json file is not working
If the .json file was generated with QMK Configurator, congratulations you have stumbled upon a bug. File an issue at [qmk_configurator](https://github.com/qmk/qmk_configurator/issues).
If not... how did you miss the big bold message at the top saying not to use other .json files?
## There are extra spaces in my layout? What do I do?
If you're referring to having three spots for space bar, the best course of action is to just fill them all with Space. The same can be done for Backspace and Shift keys.
## What is the keycode for...
Please see:
* [Basic Keycode Reference](keycodes_basic.md)
* [Advanced Keycode Reference](feature_advanced_keycodes.md)
## It won't compile
Please double check the other layers of your keymap to make sure there are no random keys present.
## Problems and Bugs
We are always accepting customer requests and bug reports. Please file them at [qmk_configurator](https://github.com/qmk/qmk_configurator/issues).

View File

@@ -101,7 +101,7 @@ enum my_keycodes {
};
```
### Previewing the Documentation
### Previewing the Documentation :id=previewing-the-documentation
Before opening a pull request, you can preview your changes if you have set up the development environment by running this command from the `qmk_firmware/` folder:

View File

@@ -4,7 +4,7 @@ For a lot of people a custom keyboard is about more than sending button presses
This page does not assume any special knowledge about QMK, but reading [Understanding QMK](understanding_qmk.md) will help you understand what is going on at a more fundamental level.
## A Word on Core vs Keyboards vs Keymap
## A Word on Core vs Keyboards vs Keymap :id=a-word-on-core-vs-keyboards-vs-keymap
We have structured QMK as a hierarchy:
@@ -34,7 +34,7 @@ enum my_keycodes {
};
```
## Programming the Behavior of Any Keycode
## Programming the Behavior of Any Keycode :id=programming-the-behavior-of-any-keycode
When you want to override the behavior of an existing key, or define the behavior for a new key, you should use the `process_record_kb()` and `process_record_user()` functions. These are called by QMK during key processing before the actual key event is handled. If these functions return `true` QMK will process the keycodes as usual. That can be handy for extending the functionality of a key rather than replacing it. If these functions return `false` QMK will skip the normal key handling, and it will be up to you to send any key up or down events that are required.
@@ -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:
@@ -313,13 +313,13 @@ void suspend_wakeup_init_user(void) {
* Keyboard/Revision: `void suspend_power_down_kb(void)` and `void suspend_wakeup_init_user(void)`
* Keymap: `void suspend_power_down_kb(void)` and `void suspend_wakeup_init_user(void)`
# Layer Change Code
# Layer Change Code :id=layer-change-code
This runs code every time that the layers get changed. This can be useful for layer indication, or custom layer handling.
### Example `layer_state_set_*` Implementation
This example shows how to set the [RGB Underglow](feature_rgblight.md) lights based on the layer, using the Planck as an example
This example shows how to set the [RGB Underglow](feature_rgblight.md) lights based on the layer, using the Planck as an example.
```c
layer_state_t layer_state_set_user(layer_state_t state) {
@@ -343,6 +343,11 @@ layer_state_t layer_state_set_user(layer_state_t state) {
return state;
}
```
Use the `IS_LAYER_ON_STATE(state, layer)` and `IS_LAYER_OFF_STATE(state, layer)` macros to check the status of a particular layer.
Outside of `layer_state_set_*` functions, you can use the `IS_LAYER_ON(layer)` and `IS_LAYER_OFF(layer)` macros to check global layer state.
### `layer_state_set_*` Function Documentation
* Keyboard/Revision: `layer_state_t layer_state_set_kb(layer_state_t state)`
@@ -438,7 +443,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
@@ -449,7 +454,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
layer_state_set(layer_state); // then immediately update the layer color
}
}
return false; break;
return false;
case RGB_MODE_FORWARD ... RGB_MODE_GRADIENT: // For any of the RGB codes (see quantum_keycodes.h, L400 for reference)
if (record->event.pressed) { //This disables layer indication, as it's assumed that if you're changing this ... you want that disabled
if (user_config.rgb_layer_change) { // only if this is enabled
@@ -486,56 +491,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)
@@ -77,7 +77,7 @@
* [Macros](de/feature_macros.md)
* [Mouse Keys](de/feature_mouse_keys.md)
* [OLED Driver](de/feature_oled_driver.md)
* [One Shot Keys](de/feature_advanced_keycodes.md#one-shot-keys)
* [One Shot Keys](de/one_shot_keys.md)
* [Pointing Device](de/feature_pointing_device.md)
* [PS/2 Mouse](de/feature_ps2_mouse.md)
* [RGB Lighting](de/feature_rgblight.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)
@@ -108,7 +109,7 @@
* Andere Themen
* [Eclipse mit QMK](de/other_eclipse.md)
* [VSCode mit QMK](de/other_vscode.md)
* [Support](de/support.md)
* [Support](de/getting_started_getting_help.md)
* [Übersetzungen](de/translating.md)
* QMK Internals (In Progress)

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

@@ -61,4 +61,4 @@ This page describes my cool feature. You can use my cool feature to make coffee
|KC_SUGAR||Order Sugar|
```
Place your documentation into `docs/feature_<my_cool_feature>.md`, and add that file to the appropriate place in `docs/_sidebar.md`. If you have added any keycodes be sure to add them to `docs/keycodes.md` with a link back to your feature page.
Place your documentation into `docs/feature_<my_cool_feature>.md`, and add that file to the appropriate place in `docs/_summary.md`. If you have added any keycodes be sure to add them to `docs/keycodes.md` with a link back to your feature page.

View File

@@ -2,7 +2,7 @@
This page documents the templates you should use when submitting new Keymaps and Keyboards to QMK.
## Keymap `readme.md` Template
## Keymap `readme.md` Template :id=keyboard-readmemd-template
Most keymaps have an image depicting the layout. You can use [Keyboard Layout Editor](http://keyboard-layout-editor.com) to create an image. Upload it to [Imgur](http://imgur.com) or another hosting service, please do not include images in your Pull Request.

View File

@@ -23,7 +23,7 @@ Zadig will automatically detect the bootloader device. You may sometimes need to
!> If Zadig lists one or more devices with the `HidUsb` driver, your keyboard is probably not in bootloader mode. The arrow will be colored orange and you will be asked to confirm modifying a system driver. **Do not** proceed if this is the case!
If the arrow appears green, select the driver, and click **Install Driver**. The `libusb-win32` driver will usually work for AVR, and `WinUSB` for ARM, but if you still cannot flash the board, try installing a different driver from the list. For flashing a USBaspLoader device via command line with msys2, the `libusbk` driver is recommended, otherwise `libusb-win32` will work fine if you are using QMK Toolbox for flashing.
If the arrow appears green, select the driver, and click **Install Driver**. The `libusb-win32` driver will usually work for AVR, and `WinUSB` for ARM, but if you still cannot flash the board, try installing a different driver from the list. USBAspLoader devices must use the `libusbK` driver.
![Zadig with a bootloader driver correctly installed](https://i.imgur.com/b8VgXzx.png)

View File

@@ -1,18 +1,25 @@
# 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.
Driver | Description
--------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
`EEPROM_DRIVER = vendor` | Uses the on-chip driver provided by the chip manufacturer. For AVR, this is provided by avr-libc. This is supported on ARM for a subset of chips -- STM32F3xx, STM32F1xx, and STM32F072xB will be emulated by writing to flash. Other chips will generally act as "transient" below.
`EEPROM_DRIVER = i2c` | Supports writing to I2C-based 24xx EEPROM chips. See the driver section below.
`EEPROM_DRIVER = transient` | Fake EEPROM driver -- supports reading/writing to RAM, and will be discarded when power is lost.
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
No configurable options are available.
#### STM32 L0/L1 Configuration :id=stm32l0l1-eeprom-driver-configuration
## I2C Driver Configuration
!> Resetting EEPROM using an STM32L0/L1 device takes up to 1 second for every 1kB of internal EEPROM used.
`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 :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:
@@ -39,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)
@@ -77,7 +77,7 @@
* [Macros](es/feature_macros.md)
* [Teclas del ratón](es/feature_mouse_keys.md)
* [Driver OLED](es/feature_oled_driver.md)
* [Teclas One Shot](es/feature_advanced_keycodes.md#one-shot-keys)
* [Teclas One Shot](es/one_shot_keys.md)
* [Dispositivo de apuntado](es/feature_pointing_device.md)
* [Ratón PS/2](es/feature_ps2_mouse.md)
* [Iluminación RGB](es/feature_rgblight.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)
@@ -108,7 +109,7 @@
* Otros temas
* [Usando Eclipse con QMK](es/other_eclipse.md)
* [Usando VSCode con QMK](es/other_vscode.md)
* [Soporte](es/support.md)
* [Soporte](es/getting_started_getting_help.md)
* [Cómo añadir traducciones](es/translating.md)
* QMK Internals (En progreso)

View File

@@ -1,9 +0,0 @@
# Llegar a ser un colaborador QMK
Un colaborador QMK es un maker o diseñador de teclados que tiene interés en ayudar a QMK a crecer y mantener sus teclado(s), y alentar a los usuarios y clientes a presentar herramientas, ideas, y keymaps. Siempre procuramos agregar más teclados y colaboradores, pero pedimos que cumplan los siguientes requisitos:
* **Tener un PCB disponible a la venta.** Desafortunadamente, hay demasiada variación y complicaciones con teclados cableados a mano.
* **Realizar el mantenimiento de tu teclado en QMK.** Este podría requirir un setup inicial para hacer que tu teclado funcione, pero también podría incluir adaptarse a cambios hecho al base de QMK que podrían descomponer o rendir código superfluo.
* **Aprobar e incorporar pull requests de keymaps para tu teclado.** Nos gusta alentar a los usuarios a contribuir sus keymaps para que otros los vean y los puedan usar para crear sus propios.
Si sientes que cumples los requisitos, ¡mándanos un email a hello@qmk.fm con una introducción y algunos enlaces para tu teclado!

View File

@@ -67,7 +67,7 @@ El archivo `config.h` es donde configuras el hardware y el conjunto de caracter
En la parte superior de `config.h` encontrarás ajustes relacionados con USB. Estos controlan la apariencia de tu teclado en el Sistema Operativo. Si no tienes una buena razón para cambiar debes dejar el `VENDOR_ID` como `0xFEED`. Para el `PRODUCT_ID` debes seleccionar un número que todavía no esté en uso.
Cambia las líneas de `MANUFACTURER`, `PRODUCT`, y `DESCRIPTION` para reflejar con precisión tu teclado.
Cambia las líneas de `MANUFACTURER` y `PRODUCT` para reflejar con precisión tu teclado.
```c
#define VENDOR_ID 0xFEED
@@ -75,7 +75,6 @@ Cambia las líneas de `MANUFACTURER`, `PRODUCT`, y `DESCRIPTION` para reflejar c
#define DEVICE_VER 0x0001
#define MANUFACTURER Tú
#define PRODUCT mi_teclado_fantastico
#define DESCRIPTION Un teclado personalizado
```
?> Windows y macOS mostrarán el `MANUFACTURER` y `PRODUCT` en la lista de dispositivos USB. `lsusb` en Linux toma estos de la lista mantenida por el [Repositorio de ID USB](http://www.linux-usb.org/usb-ids.html) por defecto. `lsusb -v` mostrará los valores reportados por el dispositivo, y también están presentes en los registros del núcleo después de conectarlo.

View File

@@ -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

@@ -4,7 +4,7 @@ El [Configurador QMK](https://config.qmk.fm) es un entorno gráfico online que g
?> **Por favor sigue estos pasos en orden.**
Ve el [Video tutorial](https://youtu.be/tx54jkRC9ZY)
Ve el [Video tutorial](https://www.youtube.com/watch?v=-imgglzDMdY)
El Configurador QMK functiona mejor con Chrome/Firefox.
@@ -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

@@ -1,6 +0,0 @@
# Frequently Asked Questions
* [General](faq_general.md)
* [Building or Compiling QMK](faq_build.md)
* [Debugging and Troubleshooting QMK](faq_debug.md)
* [Keymap](faq_keymap.md)

View File

@@ -28,35 +28,32 @@ sudo udevadm trigger
**/etc/udev/rules.d/50-atmel-dfu.rules:**
```
# Atmel ATMega32U4
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ff4", MODE:="0666"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ff4", TAG+="uaccess", RUN{builtin}+="uaccess"
# Atmel USBKEY AT90USB1287
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ffb", MODE:="0666"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ffb", TAG+="uaccess", RUN{builtin}+="uaccess"
# Atmel ATMega32U2
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ff0", MODE:="0666"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ff0", TAG+="uaccess", RUN{builtin}+="uaccess"
```
**/etc/udev/rules.d/52-tmk-keyboard.rules:**
```
# tmk keyboard products https://github.com/tmk/tmk_keyboard
SUBSYSTEMS=="usb", ATTRS{idVendor}=="feed", MODE:="0666"
```
**/etc/udev/rules.d/54-input-club-keyboard.rules:**
```
# Input Club keyboard bootloader
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1c11", MODE:="0666"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1c11", ATTRS{idProduct}=="b007", TAG+="uaccess", RUN{builtin}+="uaccess"
```
**/etc/udev/rules.d/55-caterina.rules:**
```
# ModemManager should ignore the following devices
ATTRS{idVendor}=="2a03", ENV{ID_MM_DEVICE_IGNORE}="1"
ATTRS{idVendor}=="2341", ENV{ID_MM_DEVICE_IGNORE}="1"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2a03", ATTRS{idProduct}=="0036", TAG+="uaccess", RUN{builtin}+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2341", ATTRS{idProduct}=="0036", TAG+="uaccess", RUN{builtin}+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1b4f", ATTRS{idProduct}=="9205", TAG+="uaccess", RUN{builtin}+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1b4f", ATTRS{idProduct}=="9203", TAG+="uaccess", RUN{builtin}+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
```
**Note:** ModemManager filtering only works when not in strict mode, the following commands can update that settings:
**Note:** With older (before 1.12) ModemManager, filtering only works when not in strict mode, the following commands can update that settings:
```console
sudo sed -i 's/--filter-policy=strict/--filter-policy=default/' /lib/systemd/system/ModemManager.service
printf '[Service]\nExecStart=\nExecStart=/usr/sbin/ModemManager --filter-policy=default' | sudo tee /etc/systemd/system/ModemManager.service.d/policy.conf
sudo systemctl daemon-reload
sudo systemctl restart ModemManager
```
@@ -64,15 +61,15 @@ sudo systemctl restart ModemManager
**/etc/udev/rules.d/56-dfu-util.rules:**
```
# stm32duino
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1eaf", ATTRS{idProduct}=="0003", MODE:="0666"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1eaf", ATTRS{idProduct}=="0003", TAG+="uaccess", RUN{builtin}+="uaccess"
# Generic stm32
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="df11", MODE:="0666"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="df11", TAG+="uaccess", RUN{builtin}+="uaccess"
```
**/etc/udev/rules.d/57-bootloadhid.rules:**
```
# bootloadHID
SUBSYSTEMS=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="05df", MODE:="0666"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="05df", TAG+="uaccess", RUN{builtin}+="uaccess"
```
### Serial device is not detected in bootloader mode on Linux
@@ -113,26 +110,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

@@ -4,6 +4,44 @@
[QMK](https://github.com/qmk), short for Quantum Mechanical Keyboard, is a group of people building tools for custom keyboards. We started with the [QMK firmware](https://github.com/qmk/qmk_firmware), a heavily modified fork of [TMK](https://github.com/tmk/tmk_keyboard).
## I don't know where to start!
If this is the case, then you should start with our [Newbs Guide](newbs.md). There is a lot of great info there, and that should cover everything you need to get started.
If that's an issue, hop onto the [QMK Configurator](https://config.qmk.fm), as that will handle a majority of what you need there.
## How can I flash the firmware I built?
First, head to the [Compiling/Flashing FAQ Page](faq_build.md). There is a good deal of info there, and you'll find a bunch of solutions to common issues there.
## What if I have an issue that isn't covered here?
Okay, that's fine. Then please check the [open issues in our GitHub](https://github.com/qmk/qmk_firmware/issues) to see if somebody is experiencing the same thing (make sure it's not just similar, but actually the same).
If you can't find anything, then please open a [new issue](https://github.com/qmk/qmk_firmware/issues/new)!
## What if I found a bug?
Then please open an [issue](https://github.com/qmk/qmk_firmware/issues/new), and if you know how to fix it, open up a Pull Request on GitHub with the fix.
## But `git` and `GitHub` are intimidating!
Don't worry, we have some pretty nice [Guidelines](newbs_git_best_practices.md) on how to start using `git` and GitHub to make things easier to develop.
Additionally, you can find additional `git` and GitHub related links [here](newbs_learn_more_resources.md).
## I have a Keyboard that I want to add support for
Awesome! Open up a Pull Request for it. We'll review the code, and merge it!
### What if I want to do brand it with `QMK`?
That's amazing! We would love to assist you with that!
In fact, we have a [whole page](https://qmk.fm/powered/) dedicated to adding QMK Branding to your page and keyboard. This covers pretty much everything you need (knowledge and images) to officially support QMK.
If you have any questions about this, open an issue or head to [Discord](https://discord.gg/Uq7gcHh).
## What Differences Are There Between QMK and TMK?
TMK was originally designed and implemented by [Jun Wako](https://github.com/tmk). QMK started as [Jack Humbert](https://github.com/jackhumbert)'s fork of TMK for the Planck. After a while Jack's fork had diverged quite a bit from TMK, and in 2015 Jack decided to rename his fork to QMK.

View File

@@ -14,6 +14,17 @@ There are 3 standard keyboard layouts in use around the world- ANSI, ISO, and JI
<!-- Source for this image: http://www.keyboard-layout-editor.com/#/gists/bf431647d1001cff5eff20ae55621e9a -->
![Keyboard Layout Image](https://i.imgur.com/5wsh5wM.png)
## How Can I Make Custom Names For Complex Keycodes?
Sometimes, for readability's sake, it's useful to define custom names for some keycodes. People often define custom names using `#define`. For example:
```c
#define FN_CAPS LT(_FL, KC_CAPSLOCK)
#define ALT_TAB LALT(KC_TAB)
```
This will allow you to use `FN_CAPS` and `ALT_TAB` in your keymap, keeping it more readable.
## Some Of My Keys Are Swapped Or Not Working
QMK has two features, Bootmagic and Command, which allow you to change the behavior of your keyboard on the fly. This includes, but is not limited to, swapping Ctrl/Caps, disabling Gui, swapping Alt/Gui, swapping Backspace/Backslash, disabling all keys, and other behavioral modifications.

View File

@@ -1,62 +1,4 @@
# Advanced Keycodes
Your keymap can include keycodes that are more advanced than normal, for example keys that switch layers or send modifiers when held, but send regular keycodes when tapped. This page documents the functions that are available to you.
## Assigning Custom Names
People often define custom names using `#define`. For example:
```c
#define FN_CAPS LT(_FL, KC_CAPSLOCK)
#define ALT_TAB LALT(KC_TAB)
```
This will allow you to use `FN_CAPS` and `ALT_TAB` in your keymap, keeping it more readable.
## 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.
# 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) 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.
# 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
# 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.
@@ -64,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` |
@@ -76,291 +18,24 @@ 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.
# Mod-Tap
# Legacy Content :id=legacy-content
The Mod-Tap key `MT(mod, kc)` acts like a modifier when held, and a regular keycode when tapped. In other words, you can have a key that sends Escape when you tap it, but functions as a Control or Shift key when you hold it down.
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.
The modifiers this keycode and `OSM()` accept are prefixed with `MOD_`, not `KC_`:
## Layers :id=switching-and-toggling-layers
|Modifier |Description |
|----------|----------------------------------------|
|`MOD_LCTL`|Left Control |
|`MOD_LSFT`|Left Shift |
|`MOD_LALT`|Left Alt |
|`MOD_LGUI`|Left GUI (Windows/Command/Meta key) |
|`MOD_RCTL`|Right Control |
|`MOD_RSFT`|Right Shift |
|`MOD_RALT`|Right Alt (AltGr) |
|`MOD_RGUI`|Right GUI (Windows/Command/Meta key) |
|`MOD_HYPR`|Hyper (Left Control, Shift, Alt and GUI)|
|`MOD_MEH` |Meh (Left Control, Shift, and Alt) |
* [Layers](feature_layers.md)
You can combine these by ORing them together like so:
## Mod-Tap :id=mod-tap
```c
MT(MOD_LCTL | MOD_LSFT, KC_ESC)
```
* [Mod-Tap](mod_tap.md)
This key would activate Left Control and Left Shift when held, and send Escape when tapped.
## One Shot Keys :id=one-shot-keys
For convenience, QMK includes some Mod-Tap shortcuts to make common combinations more compact in your keymap:
* [One Shot Keys](one_shot_keys.md)
|Key |Aliases |Description |
|------------|-----------------------------------------------------------------|-------------------------------------------------------|
|`LCTL_T(kc)`|`CTL_T(kc)` |Left Control when held, `kc` when tapped |
|`LSFT_T(kc)`|`SFT_T(kc)` |Left Shift when held, `kc` when tapped |
|`LALT_T(kc)`|`ALT_T(kc)` |Left Alt when held, `kc` when tapped |
|`LGUI_T(kc)`|`LCMD_T(kc)`, `LWIN_T(kc)`, `GUI_T(kc)`, `CMD_T(kc)`, `WIN_T(kc)`|Left GUI when held, `kc` when tapped |
|`RCTL_T(kc)`| |Right Control when held, `kc` when tapped |
|`RSFT_T(kc)`| |Right Shift when held, `kc` when tapped |
|`RALT_T(kc)`|`ALGR_T(kc)` |Right Alt when held, `kc` when tapped |
|`RGUI_T(kc)`|`RCMD_T(kc)`, `RWIN_T(kc)` |Right GUI when held, `kc` when tapped |
|`SGUI_T(kc)`|`SCMD_T(kc)`, `SWIN_T(kc)` |Left Shift and GUI when held, `kc` when tapped |
|`LCA_T(kc)` | |Left Control and Alt when held, `kc` when tapped |
|`LCAG_T(kc)`| |Left Control, Alt and GUI when held, `kc` when tapped |
|`RCAG_T(kc)`| |Right Control, Alt and GUI when held, `kc` when tapped |
|`C_S_T(kc)` | |Left Control and Shift when held, `kc` when tapped |
|`MEH_T(kc)` | |Left Control, Shift and Alt when held, `kc` when tapped|
|`HYPR_T(kc)`|`ALL_T(kc)` |Left Control, Shift, Alt and GUI when held, `kc` when tapped - more info [here](http://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/)|
## Tap-Hold Configuration Options :id=tap-hold-configuration-options
## Caveats
Unfortunately, these keycodes cannot be used in Mod-Taps or Layer-Taps, since any modifiers specified in the keycode are ignored.
Additionally, you may run into issues when using Remote Desktop Connection on Windows. Because these codes send shift very fast, Remote Desktop may miss the codes.
To fix this, open Remote Desktop Connection, click on "Show Options", open the the "Local Resources" tab. In the keyboard section, change the drop down to "On this Computer". This will fix the issue, and allow the characters to work correctly.
# One Shot Keys
One shot keys are keys that remain active until the next key is pressed, and then are released. This allows you to type keyboard combinations without pressing more than one key at a time. These keys are usually called "Sticky keys" or "Dead keys".
For example, if you define a key as `OSM(MOD_LSFT)`, you can type a capital A character by first pressing and releasing shift, and then pressing and releasing A. Your computer will see the shift key being held the moment shift is pressed, and it will see the shift key being released immediately after A is released.
One shot keys also work as normal modifiers. If you hold down a one shot key and type other keys, your one shot will be released immediately after you let go of the key.
Additionally, hitting keys five times in a short period will lock that key. This applies for both One Shot Modifiers and One Shot Layers, and is controlled by the `ONESHOT_TAP_TOGGLE` define.
You can control the behavior of one shot keys by defining these in `config.h`:
```c
#define ONESHOT_TAP_TOGGLE 5 /* Tapping this number of times holds the key until tapped once again. */
#define ONESHOT_TIMEOUT 5000 /* Time (in ms) before the one shot key is released */
```
* `OSM(mod)` - Momentarily hold down *mod*. You must use the `MOD_*` keycodes as shown in [Mod Tap](#mod-tap), not the `KC_*` codes.
* `OSL(layer)` - momentary switch to *layer*.
Sometimes, you want to activate a one-shot key as part of a macro or tap dance routine.
For one shot layers, you need to call `set_oneshot_layer(LAYER, ONESHOT_START)` on key down, and `clear_oneshot_layer_state(ONESHOT_OTHER_KEY_PRESSED)` on key up. If you want to cancel the oneshot, call `reset_oneshot_layer()`.
For one shot mods, you need to call `set_oneshot_mods(MOD)` to set it, or `clear_oneshot_mods()` to cancel it.
!> If you're having issues with OSM translating over Remote Desktop Connection, this can be fixed by opening the settings, going to the "Local Resources" tap, and in the keyboard section, change the drop down to "On this Computer". This will fix the issue and allow OSM to function properly over Remote Desktop.
## Callbacks
When you'd like to perform custom logic when pressing a one shot key, there are several callbacks you can choose to implement. You could indicate changes in one shot keys by flashing an LED or making a sound, for example.
There is a callback for `OSM(mod)`. It is called whenever the state of any one shot modifier key is changed: when it toggles on, but also when it is toggled off. You can use it like this:
```c
void oneshot_mods_changed_user(uint8_t mods) {
if (mods & MOD_MASK_SHIFT) {
println("Oneshot mods SHIFT");
}
if (mods & MOD_MASK_CTRL) {
println("Oneshot mods CTRL");
}
if (mods & MOD_MASK_ALT) {
println("Oneshot mods ALT");
}
if (mods & MOD_MASK_GUI) {
println("Oneshot mods GUI");
}
if (!mods) {
println("Oneshot mods off");
}
}
```
The `mods` argument contains the active mods after the change, so it reflects the current state.
When you use One Shot Tap Toggle (by adding `#define ONESHOT_TAP_TOGGLE 2` in your `config.h` file), you may lock a modifier key by pressing it the specified amount of times. There's a callback for that, too:
```c
void oneshot_locked_mods_changed_user(uint8_t mods) {
if (mods & MOD_MASK_SHIFT) {
println("Oneshot locked mods SHIFT");
}
if (mods & MOD_MASK_CTRL) {
println("Oneshot locked mods CTRL");
}
if (mods & MOD_MASK_ALT) {
println("Oneshot locked mods ALT");
}
if (mods & MOD_MASK_GUI) {
println("Oneshot locked mods GUI");
}
if (!mods) {
println("Oneshot locked mods off");
}
}
```
Last, there is also a callback for the `OSL(layer)` one shot key:
```c
void oneshot_layer_changed_user(uint8_t layer) {
if (layer == 1) {
println("Oneshot layer 1 on");
}
if (!layer) {
println("Oneshot layer off");
}
}
```
If any one shot layer is switched off, `layer` will be zero. When you're looking to do something on any layer change instead of one shot layer changes, `layer_state_set_user` is a better callback to use.
If you are making your own keyboard, there are also `_kb` equivalent functions:
```c
void oneshot_locked_mods_changed_kb(uint8_t mods);
void oneshot_mods_changed_kb(uint8_t mods);
void oneshot_layer_changed_kb(uint8_t layer);
```
As with any callback, be sure to call the `_user` variant to allow for further customizability.
# Tap-Hold Configuration Options
While Tap-Hold options are fantastic, they are not without their issues. We have tried to configure them with reasonal defaults, but that may still cause issues for some people.
These options let you modify the behavior of the Tap-Hold keys.
## Permissive Hold
As of [PR#1359](https://github.com/qmk/qmk_firmware/pull/1359/), there is a new `config.h` option:
```c
#define PERMISSIVE_HOLD
```
This makes tap and hold keys (like Mod Tap) work better for fast typist, or for high `TAPPING_TERM` settings.
If you press a Mod Tap key, tap another key (press and release) and then release the Mod Tap key, all within the tapping term, it will output the "tapping" function for both keys.
For Instance:
- `SFT_T(KC_A)` Down
- `KC_X` Down
- `KC_X` Up
- `SFT_T(KC_A)` Up
Normally, if you do all this within the `TAPPING_TERM` (default: 200ms) this will be registered as `ax` by the firmware and host system. With permissive hold enabled, this modifies how this is handled by considering the Mod Tap keys as a Mod if another key is tapped, and would registered as `X` (`SHIFT`+`x`).
?> If you have `Ignore Mod Tap Interrupt` enabled, as well, this will modify how both work. The regular key has the modifier added if the first key is released first or if both keys are held longer than the `TAPPING_TERM`.
## Ignore Mod Tap Interrupt
To enable this setting, add this to your `config.h`:
```c
#define IGNORE_MOD_TAP_INTERRUPT
```
Similar to Permissive Hold, this alters how the firmware processes input for fast typist. If you press a Mod Tap key, press another key, release the Mod Tap key, and then release the normal key, it would normally output the "tapping" function for both keys. This may not be desirable for rolling combo keys.
Setting `Ignore Mod Tap Interrupt` requires holding both keys for the `TAPPING_TERM` to trigger the hold function (the mod).
For Instance:
- `SFT_T(KC_A)` Down
- `KC_X` Down
- `SFT_T(KC_A)` Up
- `KC_X` Up
Normally, this would send `X` (`SHIFT`+`x`). With `Ignore Mod Tap Interrupt` enabled, holding both keys are required for the `TAPPING_TERM` to register the hold action. A quick tap will output `ax` in this case, while a hold on both will still output `X` (`SHIFT`+`x`).
?> __Note__: This only concerns modifiers and not layer switching keys.
?> If you have `Permissive Hold` enabled, as well, this will modify how both work. The regular key has the modifier added if the first key is released first or if both keys are held longer than the `TAPPING_TERM`.
For more granular control of this feature, you can add the following to your `config.h`:
```c
#define IGNORE_MOD_TAP_INTERRUPT_PER_KEY
```
You can then add the following function to your keymap:
```c
bool get_ignore_mod_tap_interrupt(uint16_t keycode) {
switch (keycode) {
case SFT_T(KC_SPC):
return true;
default:
return false;
}
}
```
## Tapping Force Hold
To enable `tapping force hold`, add the following to your `config.h`:
```c
#define TAPPING_FORCE_HOLD
```
When the user holds a key after tap, this repeats the tapped key rather to hold a modifier key. This allows to use auto repeat for the tapped key.
Example:
- SFT_T(KC_A) Down
- SFT_T(KC_A) Up
- SFT_T(KC_A) Down
- wait more than tapping term...
- SFT_T(KC_A) Up
With default settings, `a` will be sent on the first release, then `a` will be sent on the second press allowing the computer to trigger its auto repeat function.
With `TAPPING_FORCE_HOLD`, the second press will be interpreted as a Shift, allowing to use it as a modifier shortly after having used it as a tap.
!> `TAPPING_FORCE_HOLD` will break anything that uses tapping toggles (Such as the `TT` layer keycode, and the One Shot Tapping Toggle).
For more granular control of this feature, you can add the following to your `config.h`:
```c
#define TAPPING_FORCE_HOLD_PER_KEY
```
You can then add the following function to your keymap:
```c
bool get_tapping_force_hold(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case LT(1, KC_BSPC):
return true;
default:
return false;
}
}
```
## Retro Tapping
To enable `retro tapping`, add the following to your `config.h`:
```c
#define RETRO_TAPPING
```
Holding and releasing a dual function key without pressing another key will result in nothing happening. With retro tapping enabled, releasing the key without pressing another will send the original keycode even if it is outside the tapping term.
For instance, holding and releasing `LT(2, KC_SPACE)` without hitting another key will result in nothing happening. With this enabled, it will send `KC_SPACE` instead.
* [Tap-Hold Configuration Options](tap_hold.md)

View File

@@ -1,4 +1,4 @@
# Backlighting
# Backlighting :id=backlighting
Many keyboards support backlit keys by way of individual LEDs placed through or underneath the keyswitches. This feature is distinct from both the [RGB underglow](feature_rgblight.md) and [RGB matrix](feature_rgb_matrix.md) features as it usually allows for only a single colour per switch, though you can obviously install multiple different single coloured LEDs on a keyboard.
@@ -6,103 +6,106 @@ QMK is able to control the brightness of these LEDs by switching them on and off
The MCU can only supply so much current to its GPIO pins. Instead of powering the backlight directly from the MCU, the backlight pin is connected to a transistor or MOSFET that switches the power to the LEDs.
## Feature Configuration
Most keyboards have backlighting enabled by default if they support it, but if it is not working for you, check that your `rules.mk` includes the following:
```makefile
BACKLIGHT_ENABLE = yes
```
## Keycodes
Once enabled the following keycodes below can be used to change the backlight level.
## Keycodes :id=keycodes
|Key |Description |
|---------|------------------------------------------|
|`BL_TOGG`|Turn the backlight on or off |
|`BL_STEP`|Cycle through backlight levels |
|`BL_ON` |Set the backlight to max brightness |
|`BL_OFF` |Turn the backlight off |
|`BL_INC` |Increase the backlight level |
|`BL_DEC` |Decrease the backlight level |
|`BL_BRTG`|Toggle backlight breathing |
Once enabled, the following keycodes below can be used to change the backlight level.
## Backlight Functions
|Key |Description |
|---------|-----------------------------------|
|`BL_TOGG`|Turn the backlight on or off |
|`BL_STEP`|Cycle through backlight levels |
|`BL_ON` |Set the backlight to max brightness|
|`BL_OFF` |Turn the backlight off |
|`BL_INC` |Increase the backlight level |
|`BL_DEC` |Decrease the backlight level |
|`BL_BRTG`|Toggle backlight breathing |
|Function |Description |
|----------|-----------------------------------------------------------|
|`backlight_toggle()` |Turn the backlight on or off |
|`backlight_enable()` |Turn the backlight on |
|`backlight_disable()` |Turn the backlight off |
|`backlight_step()` |Cycle through backlight levels |
|`backlight_increase()` |Increase the backlight level |
|`backlight_decrease()` |Decrease the backlight level |
|`backlight_level(x)` |Sets the backlight level to specified level |
|`get_backlight_level()` |Return the current backlight level |
|`is_backlight_enabled()`|Return whether the backlight is currently on |
## Functions :id=functions
### Backlight Breathing Functions
These functions can be used to change the backlighting in custom code:
|Function |Description |
|----------|---------------------------------------------------|
|`breathing_toggle()` |Turn the backlight breathing on or off |
|`breathing_enable()` |Turns on backlight breathing |
|`breathing_disable()` |Turns off backlight breathing |
|Function |Description |
|------------------------|--------------------------------------------|
|`backlight_toggle()` |Turn the backlight on or off |
|`backlight_enable()` |Turn the backlight on |
|`backlight_disable()` |Turn the backlight off |
|`backlight_step()` |Cycle through backlight levels |
|`backlight_increase()` |Increase the backlight level |
|`backlight_decrease()` |Decrease the backlight level |
|`backlight_level(x)` |Sets the backlight level to specified level |
|`get_backlight_level()` |Return the current backlight level |
|`is_backlight_enabled()`|Return whether the backlight is currently on|
## Driver Configuration
If backlight breathing is enabled (see below), the following functions are also available:
|Function |Description |
|---------------------|--------------------------------------|
|`breathing_toggle()` |Turn the backlight breathing on or off|
|`breathing_enable()` |Turns on backlight breathing |
|`breathing_disable()`|Turns off backlight breathing |
## Configuration :id=configuration
To select which driver to use, configure your `rules.mk` with the following:
```makefile
BACKLIGHT_DRIVER = software # Valid driver values are 'pwm,software,no'
BACKLIGHT_DRIVER = software
```
See below for help on individual drivers.
Valid driver values are `pwm`, `software`, `custom` or `no`. See below for help on individual drivers.
## Common Driver Configuration
To configure the backlighting, `#define` these in your `config.h`:
To change the behavior of the backlighting, `#define` these in your `config.h`:
|Define |Default |Description |
|---------------------|-------------|-------------------------------------------------------------------------------------|
|`BACKLIGHT_PIN` |*Not defined*|The pin that controls the LED(s) |
|`BACKLIGHT_LEVELS` |`3` |The number of brightness levels (maximum 31 excluding off) |
|`BACKLIGHT_CAPS_LOCK`|*Not defined*|Enable Caps Lock indicator using backlight (for keyboards without dedicated LED) |
|`BACKLIGHT_BREATHING`|*Not defined*|Enable backlight breathing, if supported |
|`BREATHING_PERIOD` |`6` |The length of one backlight "breath" in seconds |
|`BACKLIGHT_ON_STATE` |`1` |The state of the backlight pin when the backlight is "on" - `1` for high, `0` for low|
|Define |Default |Description |
|---------------------|-------------|--------------------------------------------------------------------------------------|
|`BACKLIGHT_LEVELS` |`3` |The number of brightness levels (maximum 31 excluding off) |
|`BACKLIGHT_CAPS_LOCK`|*Not defined*|Enable Caps Lock indicator using backlight (for keyboards without dedicated LED) |
|`BACKLIGHT_BREATHING`|*Not defined*|Enable backlight breathing, if supported |
|`BREATHING_PERIOD` |`6` |The length of one backlight "breath" in seconds |
|`BACKLIGHT_ON_STATE` |`0` |The state of the backlight pin when the backlight is "on" - `1` for high, `0` for low |
Unless you are designing your own keyboard, you generally should not need to change the `BACKLIGHT_PIN` or `BACKLIGHT_ON_STATE`.
### Backlight On State
### Backlight On State :id=backlight-on-state
Most backlight circuits are driven by an N-channel MOSFET or NPN transistor. This means that to turn the transistor *on* and light the LEDs, you must drive the backlight pin, connected to the gate or base, *high*.
Sometimes, however, a P-channel MOSFET, or a PNP transistor is used. In this case, when the transistor is on, the pin is driven *low* instead.
This functionality is configured at the keyboard level with the `BACKLIGHT_ON_STATE` define.
## AVR driver
### AVR Driver :id=avr-driver
The `pwm` driver is configured by default, however the equivalent setting within `rules.mk` would be:
On AVR boards, the default driver currently sniffs the configuration to pick the best scenario. The driver is configured by default, however the equivalent setting within rules.mk would be:
```makefile
BACKLIGHT_DRIVER = pwm
```
### Caveats
#### Caveats :id=avr-caveats
Hardware PWM is supported according to the following table:
On AVR boards, QMK automatically decides which driver to use according to the following table:
|Backlight Pin|AT90USB64/128|ATmega16/32U4|ATmega16/32U2|ATmega32A|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 | |
|Backlight Pin|AT90USB64/128|ATmega16/32U4|ATmega16/32U2|ATmega32A|ATmega328/P|
|-------------|-------------|-------------|-------------|---------|-----------|
|`B1` | | | | |Timer 1 |
|`B2` | | | | |Timer 1 |
|`B5` |Timer 1 |Timer 1 | | | |
|`B6` |Timer 1 |Timer 1 | | | |
|`B7` |Timer 1 |Timer 1 |Timer 1 | | |
|`C4` |Timer 3 | | | | |
|`C5` |Timer 3 | |Timer 1 | | |
|`C6` |Timer 3 |Timer 3 |Timer 1 | | |
|`D4` | | | |Timer 1 | |
|`D5` | | | |Timer 1 | |
All other pins will use software PWM. If the [Audio](feature_audio.md) feature is disabled or only using one timer, the backlight PWM can be triggered by a hardware timer:
All other pins will use timer-assisted software PWM:
|Audio Pin|Audio Timer|Software PWM Timer|
|---------|-----------|------------------|
@@ -113,32 +116,9 @@ All other pins will use software PWM. If the [Audio](feature_audio.md) feature i
|`B6` |Timer 1 |Timer 3 |
|`B7` |Timer 1 |Timer 3 |
When both timers are in use for Audio, the backlight PWM will not use a hardware timer, but will instead be triggered during the matrix scan. In this case, breathing is not supported, and the backlight might flicker, because the PWM computation may not be called with enough timing precision.
When both timers are in use for Audio, the backlight PWM cannot use a hardware timer, and will instead be triggered during the matrix scan. In this case, breathing is not supported, and the backlight might flicker, because the PWM computation may not be called with enough timing precision.
### AVR Configuration
To change the behavior of the backlighting, `#define` these in your `config.h`:
|Define |Default |Description |
|---------------------|-------------|--------------------------------------------------------------------------------------------------------------|
|`BACKLIGHT_PIN` |`B7` |The pin that controls the LEDs. Unless you are designing your own keyboard, you shouldn't need to change this |
|`BACKLIGHT_PINS` |*Not defined*|experimental: see below for more information |
### Multiple backlight pins
Most keyboards have only one backlight pin which control all backlight LEDs (especially if the backlight is connected to an hardware PWM pin).
In software PWM, it is possible to define multiple backlight pins. All those pins will be turned on and off at the same time during the PWM duty cycle.
This feature allows to set for instance the Caps Lock LED (or any other controllable LED) brightness at the same level as the other LEDs of the backlight. This is useful if you have mapped LCTRL in place of Caps Lock and you need the Caps Lock LED to be part of the backlight instead of being activated when Caps Lock is on.
To activate multiple backlight pins, you need to add something like this to your user `config.h`:
```c
#define BACKLIGHT_LED_COUNT 2
#undef BACKLIGHT_PIN
#define BACKLIGHT_PINS { F5, B2 }
```
### Hardware PWM Implementation
#### Hardware PWM Implementation :id=hardware-pwm-implementation
When using the supported pins for backlighting, QMK will use a hardware timer configured to output a PWM signal. This timer will count up to `ICRx` (by default `0xFFFF`) before resetting to 0.
The desired brightness is calculated and stored in the `OCRxx` register. When the counter reaches this value, the backlight pin will go low, and is pulled high again when the counter resets.
@@ -147,7 +127,7 @@ In this way `OCRxx` essentially controls the duty cycle of the LEDs, and thus th
The breathing effect is achieved by registering an interrupt handler for `TIMER1_OVF_vect` that is called whenever the counter resets, roughly 244 times per second.
In this handler, the value of an incrementing counter is mapped onto a precomputed brightness curve. To turn off breathing, the interrupt handler is simply disabled, and the brightness reset to the level stored in EEPROM.
### Timer Assisted PWM Implementation
#### Timer Assisted PWM Implementation :id=timer-assisted-implementation
When `BACKLIGHT_PIN` is not set to a hardware backlight pin, QMK will use a hardware timer configured to trigger software interrupts. This time will count up to `ICRx` (by default `0xFFFF`) before resetting to 0.
When resetting to 0, the CPU will fire an OVF (overflow) interrupt that will turn the LEDs on, starting the duty cycle.
@@ -156,81 +136,84 @@ In this way `OCRxx` essentially controls the duty cycle of the LEDs, and thus th
The breathing effect is the same as in the hardware PWM implementation.
## ARM Driver
### ARM Driver :id=arm-configuration
While still in its early stages, ARM backlight support aims to eventually have feature parity with AVR. The `pwm` driver is configured by default, however the equivalent setting within `rules.mk` would be:
While still in its early stages, ARM backlight support aims to eventually have feature parity with AVR. The driver is configured by default, however the equivalent setting within rules.mk would be:
```makefile
BACKLIGHT_DRIVER = pwm
```
### Caveats
#### ChibiOS Configuration :id=arm-configuration
The following `#define`s apply only to ARM-based keyboards:
|Define |Default|Description |
|-----------------------|-------|-----------------------------------|
|`BACKLIGHT_PWM_DRIVER` |`PWMD4`|The PWM driver to use |
|`BACKLIGHT_PWM_CHANNEL`|`3` |The PWM channel to use |
|`BACKLIGHT_PAL_MODE` |`2` |The pin alternative function to use|
See the ST datasheet for your particular MCU to determine these values. Unless you are designing your own keyboard, you generally should not need to change them.
#### Caveats :id=arm-caveats
Currently only hardware PWM is supported, not timer assisted, and does not provide automatic configuration.
?> Backlight support for STMF072 has had limited testing, YMMV. If unsure, set `BACKLIGHT_ENABLE = no` in your rules.mk.
?> Backlight support for STM32F072 has had limited testing, so YMMV. If unsure, set `BACKLIGHT_ENABLE = no` in your `rules.mk`.
### ARM Configuration
### Software PWM Driver :id=software-pwm-driver
To change the behavior of the backlighting, `#define` these in your `config.h`:
In this mode, PWM is "emulated" while running other keyboard tasks. It offers maximum hardware compatibility without extra platform configuration. The tradeoff is the backlight might jitter when the keyboard is busy. To enable, add this to your `rules.mk`:
|Define |Default |Description |
|------------------------|-------------|-------------------------------------------------------------------------------------------------------------|
|`BACKLIGHT_PIN` |`B7` |The pin that controls the LEDs. Unless you are designing your own keyboard, you shouldn't need to change this|
|`BACKLIGHT_PWM_DRIVER` |`PWMD4` |The PWM driver to use, see ST datasheets for pin to PWM timer mapping. Unless you are designing your own keyboard, you shouldn't need to change this|
|`BACKLIGHT_PWM_CHANNEL` |`3` |The PWM channel to use, see ST datasheets for pin to PWM channel mapping. Unless you are designing your own keyboard, you shouldn't need to change this|
|`BACKLIGHT_PAL_MODE` |`2` |The pin alternative function to use, see ST datasheets for pin AF mapping. Unless you are designing your own keyboard, you shouldn't need to change this|
## Software PWM Driver
Emulation of PWM while running other keyboard tasks, it offers maximum hardware compatibility without extra platform configuration. The tradeoff is the backlight might jitter when the keyboard is busy. To enable, add this to your rules.mk:
```makefile
BACKLIGHT_DRIVER = software
```
### Software PWM Configuration
To change the behavior of the backlighting, `#define` these in your `config.h`:
|Define |Default |Description |
|-----------------|-------------|-------------------------------------------------------------------------------------------------------------|
|`BACKLIGHT_PIN` |`B7` |The pin that controls the LEDs. Unless you are designing your own keyboard, you shouldn't need to change this|
|`BACKLIGHT_PINS` |*Not defined*|experimental: see below for more information |
### Multiple backlight pins
#### Multiple Backlight Pins :id=multiple-backlight-pins
Most keyboards have only one backlight pin which control all backlight LEDs (especially if the backlight is connected to an hardware PWM pin).
In software PWM, it is possible to define multiple backlight pins. All those pins will be turned on and off at the same time during the PWM duty cycle.
This feature allows to set for instance the Caps Lock LED (or any other controllable LED) brightness at the same level as the other LEDs of the backlight. This is useful if you have mapped LCTRL in place of Caps Lock and you need the Caps Lock LED to be part of the backlight instead of being activated when Caps Lock is on.
In software PWM, it is possible to define multiple backlight pins, which will be turned on and off at the same time during the PWM duty cycle.
To activate multiple backlight pins, you need to add something like this to your user `config.h`:
This feature allows to set, for instance, the Caps Lock LED's (or any other controllable LED) brightness at the same level as the other LEDs of the backlight. This is useful if you have mapped Control in place of Caps Lock and you need the Caps Lock LED to be part of the backlight instead of being activated when Caps Lock is on, as it is usually wired to a separate pin from the backlight.
To activate multiple backlight pins, add something like this to your `config.h`, instead of `BACKLIGHT_PIN`:
```c
#undef BACKLIGHT_PIN
#define BACKLIGHT_PINS { F5, B2 }
```
## Custom Driver
### Custom Driver :id=custom-driver
To enable, add this to your rules.mk:
If none of the above drivers apply to your board (for example, you are using a separate IC to control the backlight), you can implement a custom backlight driver using this simple API provided by QMK. To enable, add this to your `rules.mk`:
```makefile
BACKLIGHT_DRIVER = custom
```
When implementing the custom driver API, the provided keyboard hooks are as follows:
Then implement any of these hooks:
```c
void backlight_init_ports(void) {
// Optional - Run on startup
// - usually you want to configure pins here
// Optional - runs on startup
// Usually you want to configure pins here
}
void backlight_set(uint8_t level) {
// Optional - Run on level change
// - usually you want to respond to the new value
// Optional - runs on level change
// Usually you want to respond to the new value
}
void backlight_task(void) {
// Optional - Run periodically
// - long running actions here can cause performance issues
// Optional - runs periodically
// Note that this is called in the main keyboard loop,
// so long running actions here can cause performance issues
}
```
## Example Schematic
In this typical example, the backlight LEDs are all connected in parallel towards an N-channel MOSFET. Its gate pin is wired to one of the microcontroller's GPIO pins through a 470Ω resistor to avoid ringing.
A pulldown resistor is also placed between the gate pin and ground to keep it at a defined state when it is not otherwise being driven by the MCU.
The values of these resistors are not critical - see [this Electronics StackExchange question](https://electronics.stackexchange.com/q/68748) for more information.
![Backlight example circuit](https://i.imgur.com/BmAvoUC.png)

View File

@@ -54,7 +54,7 @@ Hold down the Bootmagic key (Space by default) and the desired hotkey while plug
|`6` |Make layer 6 the default layer |
|`7` |Make layer 7 the default layer |
## Keycodes
## Keycodes :id=keycodes
|Key |Aliases |Description |
|----------------------------------|---------|--------------------------------------------------------------------------|
@@ -121,9 +121,9 @@ If you would like to change the hotkey assignments for Bootmagic, `#define` thes
|`BOOTMAGIC_KEY_DEFAULT_LAYER_6` |`KC_6` |Make layer 6 the default layer |
|`BOOTMAGIC_KEY_DEFAULT_LAYER_7` |`KC_7` |Make layer 7 the default layer |
# Bootmagic Lite
# 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

@@ -7,9 +7,17 @@ DIP switches are supported by adding this to your `rules.mk`:
and this to your `config.h`:
```c
// Connects each switch in the dip switch to the GPIO pin of the MCU
#define DIP_SWITCH_PINS { B14, A15, A10, B9 }
```
or
```c
// Connect each switch in the DIP switch to an unused intersections in the key matrix.
#define DIP_SWITCH_MATRIX_GRID { {0,6}, {1,6}, {2,6} } // List of row and col pairs
```
## Callbacks
The callback functions can be inserted into your `<keyboard>.c`:
@@ -87,4 +95,10 @@ void dip_switch_update_mask_user(uint32_t state) {
## Hardware
### Connects each switch in the dip switch to the GPIO pin of the MCU
One side of the DIP switch should be wired directly to the pin on the MCU, and the other side to ground. It should not matter which side is connected to which, as it should be functionally the same.
### Connect each switch in the DIP switch to an unused intersections in the key matrix.
As with the keyswitch, a diode and DIP switch connect the ROW line to the COL line.

View File

@@ -18,11 +18,11 @@ That should be everything necessary.
To start recording the macro, press either `DYN_REC_START1` or `DYN_REC_START2`.
To finish the recording, press the `DYN_REC_STOP` layer button.
To finish the recording, press the `DYN_REC_STOP` layer button. You can also press `DYN_REC_START1` or `DYN_REC_START2` again to stop the recording.
To replay the macro, press either `DYN_MACRO_PLAY1` or `DYN_MACRO_PLAY2`.
It is possible to replay a macro as part of a macro. It's ok to replay macro 2 while recording macro 1 and vice versa but never create recursive macros i.e. macro 1 that replays macro 1. If you do so and the keyboard will get unresponsive, unplug the keyboard and plug it again. You can disable this completly by defining `DYNAMIC_MACRO_NO_NESTING` in your `config.h` file.
It is possible to replay a macro as part of a macro. It's ok to replay macro 2 while recording macro 1 and vice versa but never create recursive macros i.e. macro 1 that replays macro 1. If you do so and the keyboard will get unresponsive, unplug the keyboard and plug it again. You can disable this completely by defining `DYNAMIC_MACRO_NO_NESTING` in your `config.h` file.
?> For the details about the internals of the dynamic macros, please read the comments in the `process_dynamic_macro.h` and `process_dynamic_macro.c` files.

View File

@@ -2,23 +2,35 @@
Basic encoders are supported by adding this to your `rules.mk`:
ENCODER_ENABLE = yes
```make
ENCODER_ENABLE = yes
```
and this to your `config.h`:
#define ENCODERS_PAD_A { B12 }
#define ENCODERS_PAD_B { B13 }
```c
#define ENCODERS_PAD_A { B12 }
#define ENCODERS_PAD_B { B13 }
```
Each PAD_A/B variable defines an array so multiple encoders can be defined, e.g.:
#define ENCODERS_PAD_A { encoder1a, encoder2a }
#define ENCODERS_PAD_B { encoder1b, encoder2b }
```c
#define ENCODERS_PAD_A { encoder1a, encoder2a }
#define ENCODERS_PAD_B { encoder1b, encoder2b }
```
If your encoder's clockwise directions are incorrect, you can swap the A & B pad definitions.
If your encoder's clockwise directions are incorrect, you can swap the A & B pad definitions. They can also be flipped with a define:
Additionally, the resolution can be specified in the same file (the default & suggested is 4):
```c
#define ENCODER_DIRECTION_FLIP
```
#define ENCODER_RESOLUTION 4
Additionally, the resolution, which defines how many pulses the encoder registers between each detent, can be defined with:
```c
#define ENCODER_RESOLUTION 4
```
## Split Keyboards
@@ -33,27 +45,31 @@ If you are using different pinouts for the encoders on each half of a split keyb
The callback functions can be inserted into your `<keyboard>.c`:
void encoder_update_kb(uint8_t index, bool clockwise) {
encoder_update_user(index, clockwise);
}
```c
void encoder_update_kb(uint8_t index, bool clockwise) {
encoder_update_user(index, clockwise);
}
```
or `keymap.c`:
void encoder_update_user(uint8_t index, bool clockwise) {
if (index == 0) { /* First encoder */
```c
void encoder_update_user(uint8_t index, bool clockwise) {
if (index == 0) { /* First encoder */
if (clockwise) {
tap_code(KC_PGDN);
tap_code(KC_PGDN);
} else {
tap_code(KC_PGUP);
tap_code(KC_PGUP);
}
} else if (index == 1) { /* Second encoder */
} else if (index == 1) { /* Second encoder */
if (clockwise) {
tap_code(KC_UP);
tap_code(KC_DOWN);
} else {
tap_code(KC_DOWN);
tap_code(KC_UP);
}
}
}
}
```
## Hardware

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)

View File

@@ -16,7 +16,7 @@ First, enable Key Lock by setting `KEY_LOCK_ENABLE = yes` in your `rules.mk`. Th
## Caveats
Key Lock is only able to hold standard action keys and [One Shot modifier](feature_advanced_keycodes.md#one-shot-keys) keys (for example, if you have your Shift defined as `OSM(KC_LSFT)`).
Key Lock is only able to hold standard action keys and [One Shot modifier](one_shot_keys.md) keys (for example, if you have your Shift defined as `OSM(KC_LSFT)`).
This does not include any of the QMK special functions (except One Shot modifiers), or shifted versions of keys such as `KC_LPRN`. If it's in the [Basic Keycodes](keycodes_basic.md) list, it can be held.
Switching layers will not cancel the Key Lock.

93
docs/feature_layers.md Normal file
View File

@@ -0,0 +1,93 @@
# 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-15, 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 addition to the functions that you can call, there are a number of callback functions that get called every time the layer changes. This passes the layer state to the function, where it can be read or modified.
|Callback |Description |
|-----------------------------------------------------|----------------------------------------------------------------------------------------|
| `layer_state_set_kb(layer_state_t state)` | Callback for layer functions, for keyboard. |
| `layer_state_set_user(layer_state_t state)` | Callback for layer functions, for users. |
| `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.
It is also possible to check the state of a particular layer using the following functions and macros.
|Function |Description |Aliases
|---------------------------------|-------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------|
| `layer_state_is(layer)` | Checks if the specified `layer` is enabled globally. | `IS_LAYER_ON(layer)`, `IS_LAYER_OFF(layer)` |
| `layer_state_cmp(state, layer)` | Checks `state` to see if the specified `layer` is enabled. Intended for use in layer callbacks. | `IS_LAYER_ON_STATE(state, layer)`, `IS_LAYER_OFF_STATE(state, layer)` |

View File

@@ -5,7 +5,7 @@ If you've ever used Vim, you know what a Leader key is. If not, you're about to
That's what `KC_LEAD` does. Here's an example:
1. Pick a key on your keyboard you want to use as the Leader key. Assign it the keycode `KC_LEAD`. This key would be dedicated just for this -- it's a single action key, can't be used for anything else.
2. Include the line `#define LEADER_TIMEOUT 300` in your `config.h`. This sets the timeout for the `KC_LEAD` key. Specifically, when you press the `KC_LEAD` key, you only have a certain amount of time to complete the Leader Key sequence. The `300` here sets that to 300ms, and you can increase this value to give you more time to hit the sequence. But any keys pressed during this timeout are intercepted and not sent, so you may want to keep this value low. .
2. Include the line `#define LEADER_TIMEOUT 300` in your `config.h`. This sets the timeout for the `KC_LEAD` key. Specifically, when you press the `KC_LEAD` key, you only have a certain amount of time to complete the Leader Key sequence. The `300` here sets that to 300ms, and you can increase this value to give you more time to hit the sequence. But any keys pressed during this timeout are intercepted and not sent, so you may want to keep this value low.
* By default, this timeout is how long after pressing `KC_LEAD` to complete your entire sequence. This may be very low for some people. So you may want to increase this timeout. Optionally, you may want to enable the `LEADER_PER_KEY_TIMING` option, which resets the timeout after each key is tapped. This allows you to maintain a low value here, but still be able to use the longer sequences. To enable this option, add `#define LEADER_PER_KEY_TIMING` to your `config.h`.
3. Within your `matrix_scan_user` function, add something like this:
@@ -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`](feature_advanced_keycodes.md#mod-tap) 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

@@ -6,34 +6,34 @@ Macros allow you to send multiple keystrokes when pressing just one key. QMK has
## The New Way: `SEND_STRING()` & `process_record_user`
Sometimes you just want a key to type out words or phrases. For the most common situations we've provided `SEND_STRING()`, which will type out your string (i.e. a sequence of characters) for you. All ASCII characters that are easily translated to a keycode are supported (e.g. `\n\t`).
Sometimes you want a key to type out words or phrases. For the most common situations, we've provided `SEND_STRING()`, which will type out a string (i.e. a sequence of characters) for you. All ASCII characters that are easily translatable to a keycode are supported (e.g. `qmk 123\n\t`).
Here is an example `keymap.c` for a two-key keyboard:
```c
enum custom_keycodes {
QMKBEST = SAFE_RANGE,
QMKBEST = SAFE_RANGE,
};
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
switch (keycode) {
case QMKBEST:
if (record->event.pressed) {
// when keycode QMKBEST is pressed
SEND_STRING("QMK is the best thing ever!");
} else {
// when keycode QMKBEST is released
}
break;
}
return true;
if (record->event.pressed) {
// when keycode QMKBEST is pressed
SEND_STRING("QMK is the best thing ever!");
} else {
// when keycode QMKBEST is released
}
break;
}
return true;
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = {
{QMKBEST, KC_ESC}
}
[0] = {
{QMKBEST, KC_ESC},
// ...
},
};
```
@@ -49,45 +49,88 @@ You can do that by adding another keycode and adding another case to the switch
```c
enum custom_keycodes {
QMKBEST = SAFE_RANGE,
QMKURL,
MY_OTHER_MACRO
QMKBEST = SAFE_RANGE,
QMKURL,
MY_OTHER_MACRO,
};
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
switch (keycode) {
case QMKBEST:
if (record->event.pressed) {
// when keycode QMKBEST is pressed
SEND_STRING("QMK is the best thing ever!");
} else {
// when keycode QMKBEST is released
}
break;
if (record->event.pressed) {
// when keycode QMKBEST is pressed
SEND_STRING("QMK is the best thing ever!");
} else {
// when keycode QMKBEST is released
}
break;
case QMKURL:
if (record->event.pressed) {
// when keycode QMKURL is pressed
SEND_STRING("https://qmk.fm/\n");
} else {
// when keycode QMKURL is released
}
break;
if (record->event.pressed) {
// when keycode QMKURL is pressed
SEND_STRING("https://qmk.fm/\n");
} else {
// when keycode QMKURL is released
}
break;
case MY_OTHER_MACRO:
if (record->event.pressed) {
SEND_STRING(SS_LCTL("ac")); // selects all and copies
}
break;
}
return true;
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = {
{MY_CUSTOM_MACRO, MY_OTHER_MACRO},
// ...
},
};
```
### 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) {
SEND_STRING(SS_LCTL("ac")); // selects all and copies
register_code(KC_F22); //this means to send F22 down
f22_tracker++;
register_code(keycode);
return false;
}
break;
}
return true;
};
}
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = {
{MY_CUSTOM_MACRO, MY_OTHER_MACRO}
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`.
@@ -107,15 +150,25 @@ Would tap `KC_HOME` - note how the prefix is now `X_`, and not `KC_`. You can al
Which would send "VE" followed by a `KC_HOME` tap, and "LO" (spelling "LOVE" if on a newline).
Delays can be also added to the string:
* `SS_DELAY(msecs)` will delay for the specified number of milliseconds.
For example:
SEND_STRING("VE" SS_DELAY(1000) SS_TAP(X_HOME) "LO");
Which would send "VE" followed by a 1-second delay, then a `KC_HOME` tap, and "LO" (spelling "LOVE" if on a newline, but delayed in the middle).
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.
@@ -200,11 +253,11 @@ This will clear all mods currently pressed.
This will clear all keys besides the mods currently pressed.
## Advanced Example:
## Advanced Example:
### Super ALT↯TAB
This macro will register `KC_LALT` and tap `KC_TAB`, then wait for 1000ms. If the key is tapped again, it will send another `KC_TAB`; if there is no tap, `KC_LALT` will be unregistered, thus allowing you to cycle through windows.
This macro will register `KC_LALT` and tap `KC_TAB`, then wait for 1000ms. If the key is tapped again, it will send another `KC_TAB`; if there is no tap, `KC_LALT` will be unregistered, thus allowing you to cycle through windows.
```c
bool is_alt_tab_active = false; # ADD this near the begining of keymap.c
@@ -221,7 +274,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
if (!is_alt_tab_active) {
is_alt_tab_active = true;
register_code(KC_LALT);
}
}
alt_tab_timer = timer_read();
register_code(KC_TAB);
} else {
@@ -232,7 +285,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
return true;
}
void matrix_scan_user(void) { # The very important timer.
void matrix_scan_user(void) { # The very important timer.
if (is_alt_tab_active) {
if (timer_elapsed(alt_tab_timer) > 1000) {
unregister_code(KC_LALT);
@@ -321,7 +374,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
```
## Advanced Example:
## Advanced Example:
### Single-Key Copy/Paste

View File

@@ -39,10 +39,11 @@ In your keymap you can use the following keycodes to map key presses to mouse ac
## Configuring mouse keys
Mouse keys supports two different modes to move the cursor:
Mouse keys supports three different modes to move the cursor:
* **Accelerated (default):** Holding movement keys accelerates the cursor until it reaches its maximum speed.
* **Constant:** Holding movement keys moves the cursor at constant speeds.
* **Combined:** Holding movement keys accelerates the cursor until it reaches its maximum speed, but holding acceleration and movement keys simultaneously moves the cursor at constant speeds.
The same principle applies to scrolling.
@@ -58,6 +59,8 @@ This is the default mode. You can adjust the cursor and scrolling acceleration u
|`MOUSEKEY_INTERVAL` |50 |Time between cursor movements |
|`MOUSEKEY_MAX_SPEED` |10 |Maximum cursor speed at which acceleration stops |
|`MOUSEKEY_TIME_TO_MAX` |20 |Time until maximum cursor speed is reached |
|`MOUSEKEY_WHEEL_DELAY` |300 |Delay between pressing a wheel key and wheel movement |
|`MOUSEKEY_WHEEL_INTERVAL` |100 |Time between wheel movements |
|`MOUSEKEY_WHEEL_MAX_SPEED` |8 |Maximum number of scroll steps per scroll action |
|`MOUSEKEY_WHEEL_TIME_TO_MAX`|40 |Time until maximum scroll speed is reached |
@@ -66,6 +69,7 @@ Tips:
* Setting `MOUSEKEY_DELAY` too low makes the cursor unresponsive. Setting it too high makes small movements difficult.
* For smoother cursor movements, lower the value of `MOUSEKEY_INTERVAL`. If the refresh rate of your display is 60Hz, you could set it to `16` (1/60). As this raises the cursor speed significantly, you may want to lower `MOUSEKEY_MAX_SPEED`.
* Setting `MOUSEKEY_TIME_TO_MAX` or `MOUSEKEY_WHEEL_TIME_TO_MAX` to `0` will disable acceleration for the cursor or scrolling respectively. This way you can make one of them constant while keeping the other accelerated, which is not possible in constant speed mode.
* Setting `MOUSEKEY_WHEEL_INTERVAL` too low will make scrolling too fast. Setting it too high will make scrolling too slow when the wheel key is held down.
Cursor acceleration uses the same algorithm as the X Window System MouseKeysAccel feature. You can read more about it [on Wikipedia](https://en.wikipedia.org/wiki/Mouse_keys).
@@ -117,3 +121,22 @@ Use the following settings if you want to adjust cursor movement or scrolling:
|`MK_W_INTERVAL_1` |120 |Time between scroll steps (`KC_ACL1`) |
|`MK_W_OFFSET_2` |1 |Scroll steps per scroll action (`KC_ACL2`) |
|`MK_W_INTERVAL_2` |20 |Time between scroll steps (`KC_ACL2`) |
### Combined mode
This mode functions like **Accelerated** mode, however, you can hold `KC_ACL0`, `KC_ACL1` and `KC_ACL2`
to momentarily (while held) set the cursor and scroll speeds to constant speeds. When no acceleration
keys are held, this mode is identical to **Accelerated** mode, and can be modified using all of the
relevant settings.
* **KC_ACL0:** This acceleration sets your cursor to the slowest possible speed. This is useful for very
small and detailed movements of the cursor.
* **KC_ACL1:** This acceleration sets your cursor to half the maximum (user defined) speed.
* **KC_ACL2:** This acceleration sets your cursor to the maximum (computer defined) speed. This is
useful for moving the cursor large distances without much accuracy.
To use constant speed mode, you must at least define `MK_COMBINED` in your keymaps `config.h` file:
```c
#define MK_COMBINED
```

View File

@@ -221,6 +221,12 @@ void oled_write(const char *data, bool invert);
// Advances the cursor to the next page, wiring ' ' to the remainder of the current page
void oled_write_ln(const char *data, bool invert);
// Pans the buffer to the right (or left by passing true) by moving contents of the buffer
// Useful for moving the screen in preparation for new drawing
// oled_scroll_left or oled_scroll_right should be preferred for all cases of moving a static
// image such as a logo or to avoid burn-in as it's much, much less cpu intensive
void oled_pan(bool left);
// Writes a PROGMEM string to the buffer at current cursor position
// Advances the cursor while writing, inverts the pixels if true
// Remapped to call 'void oled_write(const char *data, bool invert);' on ARM
@@ -235,9 +241,16 @@ void oled_write_ln_P(const char *data, bool invert);
// Writes a string to the buffer at current cursor position
void oled_write_raw(const char *data, uint16_t size);
// Writes a single byte into the buffer at the specified index
void oled_write_raw_byte(const char data, uint16_t index);
// Writes a PROGMEM string to the buffer at current cursor position
void oled_write_raw_P(const char *data, uint16_t size);
// Sets a specific pixel on or off
// Coordinates start at top-left and go right and down for positive x and y
void oled_write_pixel(uint8_t x, uint8_t y, bool on);
// Can be used to manually turn on the screen if it is off
// Returns true if the screen was on or turns on
bool oled_on(void);
@@ -252,12 +265,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
```
@@ -21,26 +21,28 @@ Keep in mind that a report_mouse_t (here "mouseReport") has the following proper
* `mouseReport.h` - this is a signed int from -127 to 127 (not 128, this is defined in USB HID spec) representing horizontal scrolling (+ right, - left).
* `mouseReport.buttons` - this is a uint8_t in which the last 5 bits are used. These bits represent the mouse button state - bit 3 is mouse button 5, and bit 7 is mouse button 1.
When the mouse report is sent, the x, y, v, and h values are set to 0 (this is done in "pointing_device_send()", which can be overridden to avoid this behavior). This way, button states persist, but movement will only occur once. For further customization, both `pointing_device_init` and `pointing_device_task` can be overridden.
Once you have made the necessary changes to the mouse report, you need to send it:
* `pointing_device_send()` - Sends the mouse report to the host and zeroes out the report.
When the mouse report is sent, the x, y, v, and h values are set to 0 (this is done in `pointing_device_send()`, which can be overridden to avoid this behavior). This way, button states persist, but movement will only occur once. For further customization, both `pointing_device_init` and `pointing_device_task` can be overridden.
In the following example, a custom key is used to click the mouse and scroll 127 units vertically and horizontally, then undo all of that when released - because that's a totally useful function. Listen, this is an example:
```
```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);
pointing_device_send();
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,19 +259,48 @@ 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
```
### Movement Hook :id=movement-hook
Process mouse movement in the keymap before it is sent to the host. Example
uses include filtering noise, adding acceleration, and automatically activating
a layer. To use, define the following function in your keymap:
```c
void ps2_mouse_moved_user(report_mouse_t *mouse_report);
```

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,19 +157,20 @@ 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 |
|------------------------------------|-------------------------------------------|
|`#define HAS_FLAGS(bits, flags)` |Returns true if `bits` has all `flags` set.|
|`#define HAS_ANY_FLAGS(bits, flags)`|Returns true if `bits` has any `flags` set.|
|`#define LED_FLAG_NONE 0x00` |If this LED has no flags. |
|`#define LED_FLAG_ALL 0xFF` |If this LED has all flags. |
|`#define LED_FLAG_MODIFIER 0x01` |If the Key for this LED is a modifier. |
|`#define LED_FLAG_UNDERGLOW 0x02` |If the LED is for underglow. |
|`#define LED_FLAG_KEYLIGHT 0x04` |If the LED is for key backlight. |
|Define |Value |Description |
|----------------------------|------|-------------------------------------------------|
|`HAS_FLAGS(bits, flags)` |*n/a* |Evaluates to `true` if `bits` has all `flags` set|
|`HAS_ANY_FLAGS(bits, flags)`|*n/a* |Evaluates to `true` if `bits` has any `flags` set|
|`LED_FLAG_NONE` |`0x00`|If this LED has no flags |
|`LED_FLAG_ALL` |`0xFF`|If this LED has all flags |
|`LED_FLAG_MODIFIER` |`0x01`|If the LED is on a modifier key |
|`LED_FLAG_UNDERGLOW` |`0x02`|If the LED is for underglow |
|`LED_FLAG_KEYLIGHT` |`0x04`|If the LED is for key backlight |
|`LED_FLAG_INDICATOR` |`0x08`|If the LED is for keyboard state indication |
## Keycodes
## Keycodes :id=keycodes
All RGB keycodes are currently shared with the RGBLIGHT system:
@@ -186,14 +187,22 @@ All RGB keycodes are currently shared with the RGBLIGHT system:
|`RGB_VAD` | |Decrease value (brightness), increase value when Shift is held |
|`RGB_SPI` | |Increase effect speed (does not support eeprom yet), decrease speed when Shift is held|
|`RGB_SPD` | |Decrease effect speed (does not support eeprom yet), increase speed when Shift is held|
|`RGB_MODE_PLAIN` |`RGB_M_P `|Static (no animation) mode |
|`RGB_MODE_BREATHE` |`RGB_M_B` |Breathing animation mode |
|`RGB_MODE_RAINBOW` |`RGB_M_R` |Full gradient scrolling left to right (uses the `RGB_MATRIX_CYCLE_LEFT_RIGHT` mode) |
|`RGB_MODE_SWIRL` |`RGB_M_SW`|Full gradient spinning pinwheel around center of keyboard (uses `RGB_MATRIX_CYCLE_PINWHEEL` mode) |
* `RGB_MODE_*` keycodes will generally work, but are not currently mapped to the correct effects for the RGB Matrix system
* `RGB_MODE_*` keycodes will generally work, but not all of the modes are currently mapped to the correct effects for the RGB Matrix system.
## RGB Matrix Effects
`RGB_MODE_PLAIN`, `RGB_MODE_BREATHE`, `RGB_MODE_RAINBOW`, and `RGB_MATRIX_SWIRL` are the only ones that are mapped properly. The rest don't have a direct equivalent, and are not mapped.
!> By default, if you have both the [RGB Light](feature_rgblight.md) and the RGB Matrix feature enabled, these keycodes will work for both features, at the same time. You can disable the keycode functionality by defining the `*_DISABLE_KEYCODES` option for the specific feature.
## 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 +294,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 +303,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 +350,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 +378,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)
@@ -384,30 +394,105 @@ These are defined in [`rgblight_list.h`](https://github.com/qmk/qmk_firmware/blo
#define RGB_MATRIX_STARTUP_SAT 255 // Sets the default saturation value, if none has been set
#define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS // Sets the default brightness value, if none has been set
#define RGB_MATRIX_STARTUP_SPD 127 // Sets the default animation speed, if none has been set
#define RGB_MATRIX_DISABLE_KEYCODES // disables control of rgb matrix by keycodes (must use code functions to control the feature)
```
## 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

@@ -64,6 +64,9 @@ Changing the **Value** sets the overall brightness.<br>
|`RGB_MODE_GRADIENT`|`RGB_M_G` |Static gradient animation mode |
|`RGB_MODE_RGBTEST` |`RGB_M_T` |Red, Green, Blue test animation mode |
!> By default, if you have both the RGB Light and the [RGB Matrix](feature_rgb_matrix.md) feature enabled, these keycodes will work for both features, at the same time. You can disable the keycode functionality by defining the `*_DISABLE_KEYCODES` option for the specific feature.
## Configuration
Your RGB lighting can be configured by placing these `#define`s in your `config.h`:
@@ -76,6 +79,7 @@ Your RGB lighting can be configured by placing these `#define`s in your `config.
|`RGBLIGHT_LIMIT_VAL` |`255` |The maximum brightness level |
|`RGBLIGHT_SLEEP` |*Not defined*|If defined, the RGB lighting will be switched off when the host goes to sleep|
|`RGBLIGHT_SPLIT` |*Not defined*|If defined, synchronization functionality for split keyboards is added|
|`RGBLIGHT_DISABLE_KEYCODES`|*not defined*|If defined, disables the ability to control RGB Light from the keycodes. You must use code functions to control the feature|
## Effects and Animations
@@ -94,6 +98,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 +108,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 +120,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 +137,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,10 +176,116 @@ 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};
```
## 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.
### 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
);
// 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}
);
// 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}
);
// etc..
```
We combine these layers into an array using the `RGBLIGHT_LAYERS_LIST` macro, and assign it to the `rgblight_layers` variable during keyboard setup. Note that you can only define up to 8 lighting layers. Any extra layers will be ignored. Since the different lighting layers overlap, the order matters in the array, with later layers taking precedence:
```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
);
void keyboard_post_init_user(void) {
// 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.
### 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;
}
bool led_update_user(led_t led_state) {
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:
@@ -263,13 +377,21 @@ rgblight_sethsv(HSV_GREEN, 2); // led 2
|`rgblight_sethsv(h, s, v)` |Set effect range LEDs to the given HSV value where `h`/`s`/`v` are between 0 and 255 |
|`rgblight_sethsv_noeeprom(h, s, v)` |Set effect range LEDs to the given HSV value where `h`/`s`/`v` are between 0 and 255 (not written to EEPROM) |
#### layer functions
|Function |Description |
|--------------------------------------------|-------------|
|`rgblight_get_layer_state(i)` |Returns `true` if lighting layer `i` is enabled |
|`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.
@@ -79,6 +90,24 @@ You can configure the firmware to read a pin on the controller to determine hand
This will read the specified pin. If it's high, then the controller assumes it is the left hand, and if it's low, it's assumed to be the right side.
#### Handedness by Matrix Pin
You can configure the firmware to read key matrix pins on the controller to determine handedness. To do this, add the following to your `config.h` file:
```c
#define SPLIT_HAND_MATRIX_GRID D0, F1
```
The first pin is the output pin and the second is the input pin.
Some keyboards have unused intersections in the key matrix. This setting uses one of these unused intersections to determine the handness.
Normally, when a diode is connected to an intersection, it is judged to be left. If you add the following definition, it will be judged to be right.
```c
#define SPLIT_HAND_MATRIX_GRID_LOW_IS_RIGHT
```
#### Handedness by EEPROM
This method sets the keyboard's handedness by setting a flag in the persistent storage (`EEPROM`). This is checked when the controller first starts up, and determines what half the keyboard is, and how to orient the keyboard layout.

View File

@@ -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/ploverdoc/)
* [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.
The steno code has three interceptable hooks. If you define these functions, they will be called at certain points in processing; if they return true, processing continues, otherwise it's assumed you handled things.
```C
```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

@@ -1,31 +1,24 @@
# Tap Dance: A Single Key Can Do 3, 5, or 100 Different Things
## Introduction
## Introduction :id=introduction
Hit the semicolon key once, send a semicolon. Hit it twice, rapidly -- send a colon. Hit it three times, and your keyboard's LEDs do a wild dance. That's just one example of what Tap Dance can do. It's one of the nicest community-contributed features in the firmware, conceived and created by [algernon](https://github.com/algernon) in [#451](https://github.com/qmk/qmk_firmware/pull/451). Here's how algernon describes the feature:
With this feature one can specify keys that behave differently, based on the amount of times they have been tapped, and when interrupted, they get handled before the interrupter.
## Explanatory Comparison with `ACTION_FUNCTION_TAP`
`ACTION_FUNCTION_TAP` can offer similar functionality to Tap Dance, but it's worth noting some important differences. To do this, let's explore a certain setup! We want one key to send `Space` on single-tap, but `Enter` on double-tap.
## How to Use Tap Dance :id=how-to-use
With `ACTION_FUNCTION_TAP`, it is quite a rain-dance to set this up, and has the problem that when the sequence is interrupted, the interrupting key will be sent first. Thus, `SPC a` will result in `a SPC` being sent, if `SPC` and `a` are both typed within `TAPPING_TERM`. With the Tap Dance feature, that'll come out correctly as `SPC a` (even if both `SPC` and `a` are typed within the `TAPPING_TERM`.
To achieve this correct handling of interrupts, the implementation of Tap Dance hooks into two parts of the system: `process_record_quantum()`, and the matrix scan. These two parts are explained below, but for now the point to note is that we need the latter to be able to time out a tap sequence even when a key is not being pressed. That way, `SPC` alone will time out and register after `TAPPING_TERM` time.
## How to Use Tap Dance
But enough of the generalities; lets look at how to actually use Tap Dance!
First, you will need `TAP_DANCE_ENABLE=yes` in your `rules.mk`, because the feature is disabled by default. This adds a little less than 1k to the firmware size.
First, you will need `TAP_DANCE_ENABLE = yes` in your `rules.mk`, because the feature is disabled by default. This adds a little less than 1k to the firmware size.
Optionally, you might want to set a custom `TAPPING_TERM` time by adding something like this in you `config.h`:
```
```c
#define TAPPING_TERM 175
```
The `TAPPING_TERM` time is the maximum time allowed between taps of your Tap Dance key, and is measured in milliseconds. For example, if you used the above `#define` statement and set up a Tap Dance key that sends `Space` on single-tap and `Enter` on double-tap, then this key will send `ENT` only if you tap this key twice in less than 175ms. If you tap the key, wait more than 175ms, and tap the key again you'll end up sending `SPC SPC` instead.
The `TAPPING_TERM` time is the maximum time allowed between taps of your Tap Dance key, and is measured in milliseconds. For example, if you used the above `#define` statement and set up a Tap Dance key that sends `Space` on single-tap and `Enter` on double-tap, then this key will send `ENT` only if you tap this key twice in less than 175ms. If you tap the key, wait more than 175ms, and tap the key again you'll end up sending `SPC SPC` instead.
Next, you will want to define some tap-dance keys, which is easiest to do with the `TD()` macro, that - similar to `F()` - takes a number, which will later be used as an index into the `tap_dance_actions` array.
Next, you will want to define some tap-dance keys, which is easiest to do with the `TD()` macro, that takes a number which will later be used as an index into the `tap_dance_actions` array.
After this, you'll want to use the `tap_dance_actions` array to specify what actions shall be taken when a tap-dance key is in action. Currently, there are five possible options:
@@ -43,11 +36,12 @@ The first option is enough for a lot of cases, that just want dual roles. For ex
Similar to the first option, the second option is good for simple layer-switching cases.
For more complicated cases, use the third or fourth options (examples of each are listed below).
For more complicated cases, use the third or fourth options (examples of each are listed below).
Finally, the fifth option is particularly useful if your non-Tap-Dance keys start behaving weirdly after adding the code for your Tap Dance keys. The likely problem is that you changed the `TAPPING_TERM` time to make your Tap Dance keys easier for you to use, and that this has changed the way your other keys handle interrupts.
## Implementation Details
## Implementation Details :id=implementation
Well, that's the bulk of it! You should now be able to work through the examples below, and to develop your own Tap Dance functionality. But if you want a deeper understanding of what's going on behind the scenes, then read on for the explanation of how it all works!
The main entry point is `process_tap_dance()`, called from `process_record_quantum()`, which is run for every keypress, and our handler gets to run early. This function checks whether the key pressed is a tap-dance key. If it is not, and a tap-dance was in action, we handle that first, and enqueue the newly pressed key. If it is a tap-dance key, then we check if it is the same as the already active one (if there's one active, that is). If it is not, we fire off the old one first, then register the new one. If it was the same, we increment the counter and reset the timer.
@@ -58,9 +52,9 @@ Our next stop is `matrix_scan_tap_dance()`. This handles the timeout of tap-danc
For the sake of flexibility, tap-dance actions can be either a pair of keycodes, or a user function. The latter allows one to handle higher tap counts, or do extra things, like blink the LEDs, fiddle with the backlighting, and so on. This is accomplished by using an union, and some clever macros.
# Examples
## Examples :id=examples
## Simple Example
### Simple Example :id=simple-example
Here's a simple example for a single definition:
@@ -69,23 +63,26 @@ Here's a simple example for a single definition:
3. In your `keymap.c` file, define the variables and definitions, then add to your keymap:
```c
//Tap Dance Declarations
// Tap Dance declarations
enum {
TD_ESC_CAPS = 0
TD_ESC_CAPS,
};
//Tap Dance Definitions
// Tap Dance definitions
qk_tap_dance_action_t tap_dance_actions[] = {
//Tap once for Esc, twice for Caps Lock
[TD_ESC_CAPS] = ACTION_TAP_DANCE_DOUBLE(KC_ESC, KC_CAPS)
// Other declarations would go here, separated by commas, if you have them
// Tap once for Escape, twice for Caps Lock
[TD_ESC_CAPS] = ACTION_TAP_DANCE_DOUBLE(KC_ESC, KC_CAPS),
};
//In Layer declaration, add tap dance item in place of a key code
TD(TD_ESC_CAPS)
// Add tap dance item in place of a key code
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// ...
TD(TD_ESC_CAPS)
// ...
};
```
## Complex Examples
### Complex Examples :id=complex-examples
This section details several complex tap dance examples.
All the enums used in the examples are declared like this:
@@ -93,104 +90,105 @@ All the enums used in the examples are declared like this:
```c
// Enums defined for all examples:
enum {
CT_SE = 0,
CT_CLN,
CT_EGG,
CT_FLSH,
X_TAP_DANCE
CT_SE,
CT_CLN,
CT_EGG,
CT_FLSH,
X_TAP_DANCE
};
```
### Example 1: Send `:` on Single Tap, `;` on Double Tap
#### Example 1: Send `:` on Single Tap, `;` on Double Tap :id=example-1
```c
void dance_cln_finished (qk_tap_dance_state_t *state, void *user_data) {
if (state->count == 1) {
register_code (KC_RSFT);
register_code (KC_SCLN);
} else {
register_code (KC_SCLN);
}
void dance_cln_finished(qk_tap_dance_state_t *state, void *user_data) {
if (state->count == 1) {
register_code16(KC_COLN);
} else {
register_code(KC_SCLN);
}
}
void dance_cln_reset (qk_tap_dance_state_t *state, void *user_data) {
if (state->count == 1) {
unregister_code (KC_RSFT);
unregister_code (KC_SCLN);
} else {
unregister_code (KC_SCLN);
}
void dance_cln_reset(qk_tap_dance_state_t *state, void *user_data) {
if (state->count == 1) {
unregister_code16(KC_COLN);
} else {
unregister_code(KC_SCLN);
}
}
//All tap dance functions would go here. Only showing this one.
// All tap dance functions would go here. Only showing this one.
qk_tap_dance_action_t tap_dance_actions[] = {
[CT_CLN] = ACTION_TAP_DANCE_FN_ADVANCED (NULL, dance_cln_finished, dance_cln_reset)
[CT_CLN] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_cln_finished, dance_cln_reset),
};
```
### Example 2: Send "Safety Dance!" After 100 Taps
#### Example 2: Send "Safety Dance!" After 100 Taps :id=example-2
```c
void dance_egg (qk_tap_dance_state_t *state, void *user_data) {
if (state->count >= 100) {
SEND_STRING ("Safety dance!");
reset_tap_dance (state);
}
void dance_egg(qk_tap_dance_state_t *state, void *user_data) {
if (state->count >= 100) {
SEND_STRING("Safety dance!");
reset_tap_dance(state);
}
}
qk_tap_dance_action_t tap_dance_actions[] = {
[CT_EGG] = ACTION_TAP_DANCE_FN (dance_egg)
[CT_EGG] = ACTION_TAP_DANCE_FN(dance_egg),
};
```
### Example 3: Turn LED Lights On Then Off, One at a Time
#### Example 3: Turn LED Lights On Then Off, One at a Time :id=example-3
```c
// on each tap, light up one led, from right to left
// on the forth tap, turn them off from right to left
// On each tap, light up one LED, from right to left
// On the fourth tap, turn them off from right to left
void dance_flsh_each(qk_tap_dance_state_t *state, void *user_data) {
switch (state->count) {
case 1:
ergodox_right_led_3_on();
break;
case 2:
ergodox_right_led_2_on();
break;
case 3:
ergodox_right_led_1_on();
break;
case 4:
ergodox_right_led_3_off();
_delay_ms(50);
ergodox_right_led_2_off();
_delay_ms(50);
ergodox_right_led_1_off();
}
switch (state->count) {
case 1:
ergodox_right_led_3_on();
break;
case 2:
ergodox_right_led_2_on();
break;
case 3:
ergodox_right_led_1_on();
break;
case 4:
ergodox_right_led_3_off();
wait_ms(50);
ergodox_right_led_2_off();
wait_ms(50);
ergodox_right_led_1_off();
}
}
// on the fourth tap, set the keyboard on flash state
// On the fourth tap, set the keyboard on flash state
void dance_flsh_finished(qk_tap_dance_state_t *state, void *user_data) {
if (state->count >= 4) {
reset_keyboard();
reset_tap_dance(state);
}
if (state->count >= 4) {
reset_keyboard();
}
}
// if the flash state didn't happen, then turn off LEDs, left to right
// If the flash state didn't happen, then turn off LEDs, left to right
void dance_flsh_reset(qk_tap_dance_state_t *state, void *user_data) {
ergodox_right_led_1_off();
_delay_ms(50);
ergodox_right_led_2_off();
_delay_ms(50);
ergodox_right_led_3_off();
ergodox_right_led_1_off();
wait_ms(50);
ergodox_right_led_2_off();
wait_ms(50);
ergodox_right_led_3_off();
}
//All tap dances now put together. Example 3 is "CT_FLASH"
// All tap dances now put together. Example 3 is "CT_FLASH"
qk_tap_dance_action_t tap_dance_actions[] = {
[CT_SE] = ACTION_TAP_DANCE_DOUBLE (KC_SPC, KC_ENT)
,[CT_CLN] = ACTION_TAP_DANCE_FN_ADVANCED (NULL, dance_cln_finished, dance_cln_reset)
,[CT_EGG] = ACTION_TAP_DANCE_FN (dance_egg)
,[CT_FLSH] = ACTION_TAP_DANCE_FN_ADVANCED (dance_flsh_each, dance_flsh_finished, dance_flsh_reset)
[CT_SE] = ACTION_TAP_DANCE_DOUBLE(KC_SPC, KC_ENT),
[CT_CLN] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_cln_finished, dance_cln_reset),
[CT_EGG] = ACTION_TAP_DANCE_FN(dance_egg),
[CT_FLSH] = ACTION_TAP_DANCE_FN_ADVANCED(dance_flsh_each, dance_flsh_finished, dance_flsh_reset)
};
```
### Example 4: 'Quad Function Tap-Dance'
#### Example 4: 'Quad Function Tap-Dance' :id=example-4
By [DanielGGordon](https://github.com/danielggordon)
@@ -201,40 +199,37 @@ Below is a specific example:
* Double Tap = Send `Escape`
* Double Tap and Hold = Send `Alt`
## Setup
You will need a few things that can be used for 'Quad Function Tap-Dance'.
You'll need to add these to the top of your `keymap.c` file, before your keymap.
```c
typedef struct {
bool is_press_action;
int state;
bool is_press_action;
uint8_t state;
} tap;
enum {
SINGLE_TAP = 1,
SINGLE_HOLD = 2,
DOUBLE_TAP = 3,
DOUBLE_HOLD = 4,
DOUBLE_SINGLE_TAP = 5, //send two single taps
TRIPLE_TAP = 6,
TRIPLE_HOLD = 7
SINGLE_TAP = 1,
SINGLE_HOLD,
DOUBLE_TAP,
DOUBLE_HOLD,
DOUBLE_SINGLE_TAP, // Send two single taps
TRIPLE_TAP,
TRIPLE_HOLD
};
//Tap dance enums
// Tap dance enums
enum {
X_CTL = 0,
SOME_OTHER_DANCE
X_CTL,
SOME_OTHER_DANCE
};
int cur_dance (qk_tap_dance_state_t *state);
//for the x tap dance. Put it here so it can be used in any keymap
void x_finished (qk_tap_dance_state_t *state, void *user_data);
void x_reset (qk_tap_dance_state_t *state, void *user_data);
uint8_t cur_dance(qk_tap_dance_state_t *state);
// For the x tap dance. Put it here so it can be used in any keymap
void x_finished(qk_tap_dance_state_t *state, void *user_data);
void x_reset(qk_tap_dance_state_t *state, void *user_data);
```
Now, at the bottom of your `keymap.c` file, you'll need to add the following:
@@ -267,65 +262,62 @@ Now, at the bottom of your `keymap.c` file, you'll need to add the following:
* For the third point, there does exist the 'DOUBLE_SINGLE_TAP', however this is not fully tested
*
*/
int cur_dance (qk_tap_dance_state_t *state) {
if (state->count == 1) {
if (state->interrupted || !state->pressed) return SINGLE_TAP;
//key has not been interrupted, but they key is still held. Means you want to send a 'HOLD'.
else return SINGLE_HOLD;
}
else if (state->count == 2) {
/*
* DOUBLE_SINGLE_TAP is to distinguish between typing "pepper", and actually wanting a double tap
* action when hitting 'pp'. Suggested use case for this return value is when you want to send two
* keystrokes of the key, and not the 'double tap' action/macro.
*/
if (state->interrupted) return DOUBLE_SINGLE_TAP;
else if (state->pressed) return DOUBLE_HOLD;
else return DOUBLE_TAP;
}
//Assumes no one is trying to type the same letter three times (at least not quickly).
//If your tap dance key is 'KC_W', and you want to type "www." quickly - then you will need to add
//an exception here to return a 'TRIPLE_SINGLE_TAP', and define that enum just like 'DOUBLE_SINGLE_TAP'
if (state->count == 3) {
if (state->interrupted || !state->pressed) return TRIPLE_TAP;
else return TRIPLE_HOLD;
}
else return 8; //magic number. At some point this method will expand to work for more presses
uint8_t cur_dance(qk_tap_dance_state_t *state) {
if (state->count == 1) {
if (state->interrupted || !state->pressed) return SINGLE_TAP;
// Key has not been interrupted, but the key is still held. Means you want to send a 'HOLD'.
else return SINGLE_HOLD;
} else if (state->count == 2) {
// DOUBLE_SINGLE_TAP is to distinguish between typing "pepper", and actually wanting a double tap
// action when hitting 'pp'. Suggested use case for this return value is when you want to send two
// keystrokes of the key, and not the 'double tap' action/macro.
if (state->interrupted) return DOUBLE_SINGLE_TAP;
else if (state->pressed) return DOUBLE_HOLD;
else return DOUBLE_TAP;
}
// Assumes no one is trying to type the same letter three times (at least not quickly).
// If your tap dance key is 'KC_W', and you want to type "www." quickly - then you will need to add
// an exception here to return a 'TRIPLE_SINGLE_TAP', and define that enum just like 'DOUBLE_SINGLE_TAP'
if (state->count == 3) {
if (state->interrupted || !state->pressed) return TRIPLE_TAP;
else return TRIPLE_HOLD;
} else return 8; // Magic number. At some point this method will expand to work for more presses
}
//instanalize an instance of 'tap' for the 'x' tap dance.
// Create an instance of 'tap' for the 'x' tap dance.
static tap xtap_state = {
.is_press_action = true,
.state = 0
.is_press_action = true,
.state = 0
};
void x_finished (qk_tap_dance_state_t *state, void *user_data) {
xtap_state.state = cur_dance(state);
switch (xtap_state.state) {
case SINGLE_TAP: register_code(KC_X); break;
case SINGLE_HOLD: register_code(KC_LCTRL); break;
case DOUBLE_TAP: register_code(KC_ESC); break;
case DOUBLE_HOLD: register_code(KC_LALT); break;
case DOUBLE_SINGLE_TAP: register_code(KC_X); unregister_code(KC_X); register_code(KC_X);
//Last case is for fast typing. Assuming your key is `f`:
//For example, when typing the word `buffer`, and you want to make sure that you send `ff` and not `Esc`.
//In order to type `ff` when typing fast, the next character will have to be hit within the `TAPPING_TERM`, which by default is 200ms.
}
void x_finished(qk_tap_dance_state_t *state, void *user_data) {
xtap_state.state = cur_dance(state);
switch (xtap_state.state) {
case SINGLE_TAP: register_code(KC_X); break;
case SINGLE_HOLD: register_code(KC_LCTRL); break;
case DOUBLE_TAP: register_code(KC_ESC); break;
case DOUBLE_HOLD: register_code(KC_LALT); break;
// Last case is for fast typing. Assuming your key is `f`:
// For example, when typing the word `buffer`, and you want to make sure that you send `ff` and not `Esc`.
// In order to type `ff` when typing fast, the next character will have to be hit within the `TAPPING_TERM`, which by default is 200ms.
case DOUBLE_SINGLE_TAP: tap_code(KC_X); register_code(KC_X);
}
}
void x_reset (qk_tap_dance_state_t *state, void *user_data) {
switch (xtap_state.state) {
case SINGLE_TAP: unregister_code(KC_X); break;
case SINGLE_HOLD: unregister_code(KC_LCTRL); break;
case DOUBLE_TAP: unregister_code(KC_ESC); break;
case DOUBLE_HOLD: unregister_code(KC_LALT);
case DOUBLE_SINGLE_TAP: unregister_code(KC_X);
}
xtap_state.state = 0;
void x_reset(qk_tap_dance_state_t *state, void *user_data) {
switch (xtap_state.state) {
case SINGLE_TAP: unregister_code(KC_X); break;
case SINGLE_HOLD: unregister_code(KC_LCTRL); break;
case DOUBLE_TAP: unregister_code(KC_ESC); break;
case DOUBLE_HOLD: unregister_code(KC_LALT);
case DOUBLE_SINGLE_TAP: unregister_code(KC_X);
}
xtap_state.state = 0;
}
qk_tap_dance_action_t tap_dance_actions[] = {
[X_CTL] = ACTION_TAP_DANCE_FN_ADVANCED(NULL,x_finished, x_reset)
[X_CTL] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, x_finished, x_reset)
};
```
@@ -335,90 +327,91 @@ If you want to implement this in your userspace, then you may want to check out
> In this configuration "hold" takes place **after** tap dance timeout (see `ACTION_TAP_DANCE_FN_ADVANCED_TIME`). To achieve instant hold, remove `state->interrupted` checks in conditions. As a result you may use comfortable longer tapping periods to have more time for taps and not to wait too long for holds (try starting with doubled `TAPPING_TERM`).
### Example 5: Using tap dance for advanced mod-tap and layer-tap keys
#### Example 5: Using tap dance for advanced mod-tap and layer-tap keys :id=example-5
Tap dance can be used to emulate `MT()` and `LT()` behavior when the tapped code is not a basic keycode. This is useful to send tapped keycodes that normally require `Shift`, such as parentheses or curly braces—or other modified keycodes, such as `Control + X`.
Below your layers and custom keycodes, add the following:
```c
// tapdance keycodes
// Tap Dance keycodes
enum td_keycodes {
ALT_LP // Our example key: `LALT` when held, `(` when tapped. Add additional keycodes for each tapdance.
ALT_LP // Our example key: `LALT` when held, `(` when tapped. Add additional keycodes for each tapdance.
};
// define a type containing as many tapdance states as you need
// Define a type containing as many tapdance states as you need
typedef enum {
SINGLE_TAP,
SINGLE_HOLD,
DOUBLE_SINGLE_TAP
SINGLE_TAP,
SINGLE_HOLD,
DOUBLE_SINGLE_TAP
} td_state_t;
// create a global instance of the tapdance state type
// Create a global instance of the tapdance state type
static td_state_t td_state;
// declare your tapdance functions:
// Declare your tapdance functions:
// function to determine the current tapdance state
int cur_dance (qk_tap_dance_state_t *state);
// Function to determine the current tapdance state
uint8_t cur_dance(qk_tap_dance_state_t *state);
// `finished` and `reset` functions for each tapdance keycode
void altlp_finished (qk_tap_dance_state_t *state, void *user_data);
void altlp_reset (qk_tap_dance_state_t *state, void *user_data);
void altlp_finished(qk_tap_dance_state_t *state, void *user_data);
void altlp_reset(qk_tap_dance_state_t *state, void *user_data);
```
Below your `LAYOUT`, define each of the tapdance functions:
```c
// determine the tapdance state to return
int cur_dance (qk_tap_dance_state_t *state) {
if (state->count == 1) {
if (state->interrupted || !state->pressed) { return SINGLE_TAP; }
else { return SINGLE_HOLD; }
}
if (state->count == 2) { return DOUBLE_SINGLE_TAP; }
else { return 3; } // any number higher than the maximum state value you return above
}
// handle the possible states for each tapdance keycode you define:
// Determine the tapdance state to return
uint8_t cur_dance(qk_tap_dance_state_t *state) {
if (state->count == 1) {
if (state->interrupted || !state->pressed) return SINGLE_TAP;
else return SINGLE_HOLD;
}
void altlp_finished (qk_tap_dance_state_t *state, void *user_data) {
td_state = cur_dance(state);
switch (td_state) {
case SINGLE_TAP:
register_code16(KC_LPRN);
break;
case SINGLE_HOLD:
register_mods(MOD_BIT(KC_LALT)); // for a layer-tap key, use `layer_on(_MY_LAYER)` here
break;
case DOUBLE_SINGLE_TAP: // allow nesting of 2 parens `((` within tapping term
tap_code16(KC_LPRN);
register_code16(KC_LPRN);
}
if (state->count == 2) return DOUBLE_SINGLE_TAP;
else return 3; // Any number higher than the maximum state value you return above
}
void altlp_reset (qk_tap_dance_state_t *state, void *user_data) {
switch (td_state) {
case SINGLE_TAP:
unregister_code16(KC_LPRN);
break;
case SINGLE_HOLD:
unregister_mods(MOD_BIT(KC_LALT)); // for a layer-tap key, use `layer_off(_MY_LAYER)` here
break;
case DOUBLE_SINGLE_TAP:
unregister_code16(KC_LPRN);
}
// Handle the possible states for each tapdance keycode you define:
void altlp_finished(qk_tap_dance_state_t *state, void *user_data) {
td_state = cur_dance(state);
switch (td_state) {
case SINGLE_TAP:
register_code16(KC_LPRN);
break;
case SINGLE_HOLD:
register_mods(MOD_BIT(KC_LALT)); // For a layer-tap key, use `layer_on(_MY_LAYER)` here
break;
case DOUBLE_SINGLE_TAP: // Allow nesting of 2 parens `((` within tapping term
tap_code16(KC_LPRN);
register_code16(KC_LPRN);
}
}
// define `ACTION_TAP_DANCE_FN_ADVANCED()` for each tapdance keycode, passing in `finished` and `reset` functions
void altlp_reset(qk_tap_dance_state_t *state, void *user_data) {
switch (td_state) {
case SINGLE_TAP:
unregister_code16(KC_LPRN);
break;
case SINGLE_HOLD:
unregister_mods(MOD_BIT(KC_LALT)); // For a layer-tap key, use `layer_off(_MY_LAYER)` here
break;
case DOUBLE_SINGLE_TAP:
unregister_code16(KC_LPRN);
}
}
// Define `ACTION_TAP_DANCE_FN_ADVANCED()` for each tapdance keycode, passing in `finished` and `reset` functions
qk_tap_dance_action_t tap_dance_actions[] = {
[ALT_LP] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, altlp_finished, altlp_reset)
[ALT_LP] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, altlp_finished, altlp_reset)
};
```
Wrap each tapdance keycode in `TD()` when including it in your keymap, e.g. `TD(ALT_LP)`.
### Example 6: Using tap dance for momentary-layer-switch and layer-toggle keys
#### Example 6: Using tap dance for momentary-layer-switch and layer-toggle keys :id=example-6
Tap Dance can be used to mimic MO(layer) and TG(layer) functionality. For this example, we will set up a key to function as `KC_QUOT` on single-tap, as `MO(_MY_LAYER)` on single-hold, and `TG(_MY_LAYER)` on double-tap.
@@ -426,97 +419,92 @@ The first step is to include the following code towards the beginning of your `k
```c
typedef struct {
bool is_press_action;
int state;
bool is_press_action;
uint8_t state;
} tap;
//Define a type for as many tap dance states as you need
// Define a type for as many tap dance states as you need
enum {
SINGLE_TAP = 1,
SINGLE_HOLD = 2,
DOUBLE_TAP = 3
SINGLE_TAP = 1,
SINGLE_HOLD,
DOUBLE_TAP
};
enum {
QUOT_LAYR = 0 //Our custom tap dance key; add any other tap dance keys to this enum
QUOT_LAYR, // Our custom tap dance key; add any other tap dance keys to this enum
};
//Declare the functions to be used with your tap dance key(s)
// Declare the functions to be used with your tap dance key(s)
//Function associated with all tap dances
int cur_dance (qk_tap_dance_state_t *state);
// Function associated with all tap dances
uint8_t cur_dance(qk_tap_dance_state_t *state);
//Functions associated with individual tap dances
void ql_finished (qk_tap_dance_state_t *state, void *user_data);
void ql_reset (qk_tap_dance_state_t *state, void *user_data);
// Functions associated with individual tap dances
void ql_finished(qk_tap_dance_state_t *state, void *user_data);
void ql_reset(qk_tap_dance_state_t *state, void *user_data);
```
Towards the bottom of your `keymap.c`, include the following code:
```c
//Determine the current tap dance state
int cur_dance (qk_tap_dance_state_t *state) {
if (state->count == 1) {
if (!state->pressed) {
return SINGLE_TAP;
} else {
return SINGLE_HOLD;
}
} else if (state->count == 2) {
return DOUBLE_TAP;
}
else return 8;
// Determine the current tap dance state
uint8_t cur_dance(qk_tap_dance_state_t *state) {
if (state->count == 1) {
if (!state->pressed) return SINGLE_TAP;
else return SINGLE_HOLD;
} else if (state->count == 2) return DOUBLE_TAP;
else return 8;
}
//Initialize tap structure associated with example tap dance key
// Initialize tap structure associated with example tap dance key
static tap ql_tap_state = {
.is_press_action = true,
.state = 0
.is_press_action = true,
.state = 0
};
//Functions that control what our tap dance key does
void ql_finished (qk_tap_dance_state_t *state, void *user_data) {
ql_tap_state.state = cur_dance(state);
switch (ql_tap_state.state) {
case SINGLE_TAP:
tap_code(KC_QUOT);
break;
case SINGLE_HOLD:
layer_on(_MY_LAYER);
break;
case DOUBLE_TAP:
//check to see if the layer is already set
if (layer_state_is(_MY_LAYER)) {
//if already set, then switch it off
// Functions that control what our tap dance key does
void ql_finished(qk_tap_dance_state_t *state, void *user_data) {
ql_tap_state.state = cur_dance(state);
switch (ql_tap_state.state) {
case SINGLE_TAP:
tap_code(KC_QUOT);
break;
case SINGLE_HOLD:
layer_on(_MY_LAYER);
break;
case DOUBLE_TAP:
// Check to see if the layer is already set
if (layer_state_is(_MY_LAYER)) {
// If already set, then switch it off
layer_off(_MY_LAYER);
} else {
// If not already set, then switch the layer on
layer_on(_MY_LAYER);
}
break;
}
}
void ql_reset(qk_tap_dance_state_t *state, void *user_data) {
// If the key was held down and now is released then switch off the layer
if (ql_tap_state.state == SINGLE_HOLD) {
layer_off(_MY_LAYER);
} else {
//if not already set, then switch the layer on
layer_on(_MY_LAYER);
}
break;
}
}
ql_tap_state.state = 0;
}
void ql_reset (qk_tap_dance_state_t *state, void *user_data) {
//if the key was held down and now is released then switch off the layer
if (ql_tap_state.state==SINGLE_HOLD) {
layer_off(_MY_LAYER);
}
ql_tap_state.state = 0;
}
//Associate our tap dance key with its functionality
// Associate our tap dance key with its functionality
qk_tap_dance_action_t tap_dance_actions[] = {
[QUOT_LAYR] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(NULL, ql_finished, ql_reset, 275)
[QUOT_LAYR] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(NULL, ql_finished, ql_reset, 275)
};
```
The above code is similar to that used in previous examples. The one point to note is that we need to be able to check which layers are active at any time so we can toggle them if needed. To do this we use the `layer_state_is( layer )` function which returns `true` if the given `layer` is active.
The above code is similar to that used in previous examples. The one point to note is that we need to be able to check which layers are active at any time so we can toggle them if needed. To do this we use the `layer_state_is(layer)` function which returns `true` if the given `layer` is active.
The use of `cur_dance()` and `ql_tap_state` mirrors the above examples.
The `case:SINGLE_TAP` in `ql_finished` is similar to the above examples. The `case:SINGLE_HOLD` works in conjunction with `ql_reset()` to switch to `_MY_LAYER` while the tap dance key is held, and to switch away from `_MY_LAYER` when the key is released. This mirrors the use of `MO(_MY_LAYER)`. The `case:DOUBLE_TAP` works by checking whether `_MY_LAYER` is the active layer, and toggling it on or off accordingly. This mirrors the use of `TG(_MY_LAYER)`.
The `case:SINGLE_TAP` in `ql_finished` is similar to the above examples. The `SINGLE_HOLD` case works in conjunction with `ql_reset()` to switch to `_MY_LAYER` while the tap dance key is held, and to switch away from `_MY_LAYER` when the key is released. This mirrors the use of `MO(_MY_LAYER)`. The `DOUBLE_TAP` case works by checking whether `_MY_LAYER` is the active layer, and toggling it on or off accordingly. This mirrors the use of `TG(_MY_LAYER)`.
`tap_dance_actions[]` works similar to the above examples. Note that I used `ACTION_TAP_DANCE_FN_ADVANCED_TIME()` instead of `ACTION_TAP_DANCE_FN_ADVANCED()`. This is because I like my `TAPPING_TERM` to be short (~175ms) for my non-tap-dance keys but find that this is too quick for me to reliably complete tap dance actions - thus the increased time of 275ms here.
`tap_dance_actions[]` works similar to the above examples. Note that I used `ACTION_TAP_DANCE_FN_ADVANCED_TIME()` instead of `ACTION_TAP_DANCE_FN_ADVANCED()`. This is because I like my `TAPPING_TERM` to be short (\~175ms) for my non-tap-dance keys but find that this is too quick for me to reliably complete tap dance actions - thus the increased time of 275ms here.
Finally, to get this tap dance key working, be sure to include `TD(QUOT_LAYR)` in your `keymaps[]`.

View File

@@ -2,11 +2,25 @@
Unicode characters can be input straight from your keyboard! There are some limitations, however.
QMK has three different methods for enabling Unicode input and defining keycodes:
In order to enable Unicode support on your keyboard, you will need to do the following:
## Basic Unicode
1. Choose one of three supported Unicode implementations: [Basic Unicode](#basic-unicode), [Unicode Map](#unicode-map), [UCIS](#ucis).
2. Find which [input mode](#input-modes) is the best match for your operating system and setup.
3. [Set](#setting-the-input-mode) the appropriate input mode (or modes) in your configuration.
4. Add Unicode keycodes to your keymap.
This method supports Unicode code points up to `0x7FFF`. This covers characters for most modern languages, as well as symbols, but it doesn't cover emoji.
## 1. Methods :id=methods
QMK supports three different methods for enabling Unicode input and adding Unicode characters to your keymap. Each has its pros and cons in terms of flexibility and ease of use. Choose the one that best fits your use case.
The Basic method should be enough for most users. However, if you need a wider range of supported characters (including emoji, rare symbols etc.), you should use Unicode Map.
<br>
### 1.1. Basic Unicode :id=basic-unicode
The easiest to use method, albeit somewhat limited. It stores Unicode characters as keycodes in the keymap itself, so it only supports code points up to `0x7FFF`. This covers characters for most modern languages (including East Asian), as well as symbols, but it doesn't cover emoji.
Add the following to your `rules.mk`:
@@ -14,11 +28,13 @@ Add the following to your `rules.mk`:
UNICODE_ENABLE = yes
```
Then add `UC(c)` keycodes to your keymap, where _c_ is the code point (preferably in hexadecimal, up to 4 digits long). For example: `UC(0x45B)`, `UC(0x30C4)`.
Then add `UC(c)` keycodes to your keymap, where _c_ is the code point of the desired character (preferably in hexadecimal, up to 4 digits long). For example, `UC(0x40B)` will output [Ћ](https://unicode-table.com/en/040B/), and `UC(0x30C4)` will output [](https://unicode-table.com/en/30C4).
## Unicode Map
<br>
This method supports all possible code points (up to `0x10FFFF`); however, you need to maintain a separate mapping table in your keymap file, which may contain at most 16384 entries.
### 1.2. Unicode Map :id=unicode-map
In addition to standard character ranges, this method also covers emoji, ancient scripts, rare symbols etc. In fact, all possible code points (up to `0x10FFFF`) are supported. Here, Unicode characters are stored in a separate mapping table. You need to maintain a `unicode_map` array in your keymap file, which may contain at most 16384 entries.
Add the following to your `rules.mk`:
@@ -26,7 +42,7 @@ Add the following to your `rules.mk`:
UNICODEMAP_ENABLE = yes
```
Then add `X(i)` keycodes to your keymap, where _i_ is an array index into the mapping table:
Then add `X(i)` keycodes to your keymap, where _i_ is the desired character's index in the mapping table. This can be a numeric value, but it's recommended to keep the indices in an enum and access them by name.
```c
enum unicode_names {
@@ -44,15 +60,17 @@ const uint32_t PROGMEM unicode_map[] = {
Then you can use `X(BANG)`, `X(SNEK)` etc. in your keymap.
### Lower and Upper Case
#### Lower and Upper Case
Characters often come in lower and upper case pairs, such as å and Å. To make inputting these characters easier, you can use `XP(i, j)` in your keymap, where _i_ and _j_ are the mapping table indices of the lower and upper case character, respectively. If you're holding down Shift or have Caps Lock turned on when you press the key, the second (upper case) character will be inserted; otherwise, the first (lower case) version will appear.
This is most useful when creating a keymap for an international layout with special characters. Instead of having to put the lower and upper case versions of a character on separate keys, you can have them both on the same key by using `XP()`. This helps blend Unicode keys in with regular alphas.
Due to keycode size constraints, _i_ and _j_ can each only refer to one of the first 128 characters in your `unicode_map`. In other words, 0 ≤ _i_ ≤ 127 and 0 ≤ _j_ ≤ 127. This is enough for most use cases, but if you'd like to customize the index calculation, you can override the [`unicodemap_index()`](https://github.com/qmk/qmk_firmware/blob/71f640d47ee12c862c798e1f56392853c7b1c1a8/quantum/process_keycode/process_unicodemap.c#L40) function. This also allows you to, say, check Ctrl instead of Shift/Caps.
Due to keycode size constraints, _i_ and _j_ can each only refer to one of the first 128 characters in your `unicode_map`. In other words, 0 ≤ _i_ ≤ 127 and 0 ≤ _j_ ≤ 127. This is enough for most use cases, but if you'd like to customize the index calculation, you can override the [`unicodemap_index()`](https://github.com/qmk/qmk_firmware/blob/71f640d47ee12c862c798e1f56392853c7b1c1a8/quantum/process_keycode/process_unicodemap.c#L36) function. This also allows you to, say, check Ctrl instead of Shift/Caps.
## UCIS
<br>
### 1.3. UCIS :id=ucis
This method also supports all possible code points. As with the Unicode Map method, you need to maintain a mapping table in your keymap file. However, there are no built-in keycodes for this feature — you have to create a custom keycode or function that invokes this functionality.
@@ -66,15 +84,18 @@ Then define a table like this in your keymap file:
```c
const qk_ucis_symbol_t ucis_symbol_table[] = UCIS_TABLE(
UCIS_SYM("poop", 0x1F4A9), // 💩
UCIS_SYM("rofl", 0x1F923), // 🤣
UCIS_SYM("kiss", 0x1F619) // 😙
UCIS_SYM("poop", 0x1F4A9), // 💩
UCIS_SYM("rofl", 0x1F923), // 🤣
UCIS_SYM("cuba", 0x1F1E8, 0x1F1FA), // 🇨🇺
UCIS_SYM("look", 0x0CA0, 0x005F, 0x0CA0), // ಠ_ಠ
);
```
To use it, call `qk_ucis_start()`. Then, type the mnemonic for the character (such as "rofl"), and hit Space or Enter. QMK should erase the "rofl" text and insert the laughing emoji.
By default, each table entry may be up to 3 code points long. This number can be changed by adding `#define UCIS_MAX_CODE_POINTS n` to your `config.h` file.
### Customization
To use UCIS input, call `qk_ucis_start()`. Then, type the mnemonic for the character (such as "rofl") and hit Space, Enter or Esc. QMK should erase the "rofl" text and insert the laughing emoji.
#### Customization
There are several functions that you can define in your keymap to customize the functionality of this feature.
@@ -84,145 +105,155 @@ There are several functions that you can define in your keymap to customize the
You can find the default implementations of these functions in [`process_ucis.c`](https://github.com/qmk/qmk_firmware/blob/master/quantum/process_keycode/process_ucis.c).
## Input Modes
## 2. Input Modes :id=input-modes
Unicode input in QMK works by inputting a sequence of characters to the OS, sort of like a macro. Unfortunately, the way this is done differs for each platform. Specifically, each platform requires a different combination of keys to trigger Unicode input. Therefore, a corresponding input mode has to be set in QMK.
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 `0x10FFFF` (all possible code points).
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 a different keycode.
!> Using the _Unicode Hex Input_ input source may disable some Option based shortcuts, such as Option + Left Arrow and Option + Right Arrow.
!> Using the _Unicode Hex Input_ input source may disable some Option-based shortcuts, such as Option+Left and Option+Right.
!> `UC_OSX` is a deprecated alias of `UC_MAC` that will be removed in future versions of QMK. All new keymaps should use `UC_MAC`.
* **`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.
By default, this mode uses Ctrl+Shift+U (`LCTL(LSFT(KC_U))`) to start Unicode input, but this can be changed by defining [`UNICODE_KEY_LNX`](#input-key-configuration) with another keycode. This might be required for IBus versions ≥1.5.15, where Ctrl+Shift+U behavior is consolidated into Ctrl+Shift+E.
By default, this mode uses Ctrl+Shift+U (`LCTL(LSFT(KC_U))`) to start Unicode input, but this can be changed by defining [`UNICODE_KEY_LNX`](#input-key-configuration) with a different keycode. This might be required for IBus versions ≥1.5.15, where Ctrl+Shift+U behavior is consolidated into Ctrl+Shift+E.
* **`UC_WIN`**: _(not recommended)_ Windows built-in hex numpad Unicode input. Supports code points up to `0xFFFF`.
To enable, create a registry key under `HKEY_CURRENT_USER\Control Panel\Input Method\EnableHexNumpad` of type `REG_SZ` called `EnableHexNumpad` and set its value to `1`. This can be done from the Command Prompt by running `reg add "HKCU\Control Panel\Input Method" -v EnableHexNumpad -t REG_SZ -d 1` with administrator privileges. Reboot afterwards.
To enable, create a registry key under `HKEY_CURRENT_USER\Control Panel\Input Method` of type `REG_SZ` called `EnableHexNumpad` and set its value to `1`. This can be done from the Command Prompt by running `reg add "HKCU\Control Panel\Input Method" -v EnableHexNumpad -t REG_SZ -d 1` with administrator privileges. Reboot afterwards.
This mode is not recommended because of reliability and compatibility issues; use the `UC_WINC` mode instead.
* **`UC_BSD`**: _(non implemented)_ Unicode input under BSD. Not implemented at this time. If you're a BSD user and want to help add support for it, please [open an issue on GitHub](https://github.com/qmk/qmk_firmware/issues).
* **`UC_WINC`**: Windows Unicode input using [WinCompose](https://github.com/samhocevar/wincompose). As of v0.9.0, supports code points up to `0x10FFFF` (all possible code points).
To enable, install the [latest release](https://github.com/samhocevar/wincompose/releases/latest). Once installed, WinCompose will automatically run on startup. Works reliably under all version of Windows supported by the app.
By default, this mode uses right Alt (`KC_RALT`) as the Compose key, but this can be changed in the WinCompose settings and by defining [`UNICODE_KEY_WINC`](#input-key-configuration) with another keycode.
To enable, install the [latest release](https://github.com/samhocevar/wincompose/releases/latest). Once installed, WinCompose will automatically run on startup. This mode works reliably under all version of Windows supported by the app.
By default, this mode uses right Alt (`KC_RALT`) as the Compose key, but this can be changed in the WinCompose settings and by defining [`UNICODE_KEY_WINC`](#input-key-configuration) with a different keycode.
### Switching Input Modes
There are two ways to set the input mode for Unicode: by keycode or by function. Keep in mind that both methods write to persistent storage (EEPROM), and are loaded each time the keyboard starts. So once you've set it the first time, you don't need to set it again unless you want to change it, or you've reset the EEPROM settings.
## 3. Setting the Input Mode :id=setting-the-input-mode
You can switch the input mode at any time by using one of the following keycodes. The easiest way is to add the ones you use to your keymap.
|Keycode |Alias |Input Mode |Description |
|----------------------|---------|------------|--------------------------------------------------------------|
|`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_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) |
|`UNICODE_MODE_WINC` |`UC_M_WC`|`UC_WINC` |Switch to Windows input using WinCompose |
You can also switch the input mode by calling `set_unicode_input_mode(x)` in your code, where _x_ is one of the above input mode constants (e.g. `UC_LNX`). Since the function only needs to be called once, it's recommended that you do it in `eeconfig_init_user()` (or a similar function). For example:
To set your desired input mode, add the following define to your `config.h`:
```c
void eeconfig_init_user(void) {
set_unicode_input_mode(UC_LNX);
}
#define UNICODE_SELECTED_MODES UC_LNX
```
### Audio Feedback
This example sets the board's default input mode to `UC_LNX`. You can replace this with `UC_MAC`, `UC_WINC`, or any of the other modes listed [above](#input-modes). The board will automatically use the selected mode on startup, unless you manually switch to another mode (see [below](#keycodes)).
You can also select multiple input modes, which allows you to easily cycle through them using the `UC_MOD`/`UC_RMOD` keycodes.
```c
#define UNICODE_SELECTED_MODES UC_MAC, UC_LNX, UC_WINC
```
Note that the values are separated by commas. The board will remember the last used input mode and will continue using it on next power-up. You can disable this and force it to always start with the first mode in the list by adding `#define UNICODE_CYCLE_PERSIST false` to your `config.h`.
#### Keycodes
You can switch the input mode at any time by using the following keycodes. Adding these to your keymap allows you to quickly switch to a specific input mode, including modes not listed in `UNICODE_SELECTED_MODES`.
|Keycode |Alias |Input Mode |Description |
|----------------------|---------|------------|-----------------------------------------------------------------------------|
|`UNICODE_MODE_FORWARD`|`UC_MOD` |Next in list|Cycle through selected modes, reverse direction when Shift is held |
|`UNICODE_MODE_REVERSE`|`UC_RMOD`|Prev in list|Cycle through selected modes in reverse, forward direction when Shift is held|
|`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)_ |
|`UNICODE_MODE_WINC` |`UC_M_WC`|`UC_WINC` |Switch to Windows input using WinCompose |
You can also switch the input mode by calling `set_unicode_input_mode(x)` in your code, where _x_ is one of the above input mode constants (e.g. `UC_LNX`).
?> Using `UNICODE_SELECTED_MODES` is preferable to calling `set_unicode_input_mode()` in `matrix_init_user()` or similar functions, since it's better integrated into the Unicode system and has the added benefit of avoiding unnecessary writes to EEPROM.
#### Audio Feedback
If you have the [Audio feature](feature_audio.md) enabled on the board, you can set melodies to be played when you press the above keys. That way you can have some audio feedback when switching input modes.
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
```
### Additional Customization
## Additional Customization
Because Unicode is a large and versatile feature, there are a number of options you can customize to make it work better on your system.
#### Start and Finish Input Functions
### Start and Finish Input Functions
The functions for starting and finishing Unicode input on your platform can be overridden locally. Possible uses include customizing input mode behavior if you don't use the default keys, or adding extra visual/audio feedback to Unicode input.
* `void unicode_input_start(void)` This sends the initial sequence that tells your platform to enter Unicode input mode. For example, it presses Ctrl+Shift+U on Linux and holds the Option key on macOS.
* `void unicode_input_finish(void)` This is called to exit Unicode input mode, for example by pressing Space or releasing the Option key.
* `void unicode_input_start(void)` This sends the initial sequence that tells your platform to enter Unicode input mode. For example, it holds the left Alt key followed by Num+ on Windows, and presses the `UNICODE_KEY_LNX` combination (default: Ctrl+Shift+U) on Linux.
* `void unicode_input_finish(void)` This is called to exit Unicode input mode, for example by pressing Space or releasing the Alt key.
You can find the default implementations of these functions in [`process_unicode_common.c`](https://github.com/qmk/qmk_firmware/blob/master/quantum/process_keycode/process_unicode_common.c).
#### Input Key Configuration
### Input Key Configuration
You can customize the keys used to trigger Unicode input for macOS, Linux and WinCompose by adding corresponding defines to your `config.h`. The default values match the platforms' default settings, so you shouldn't need to change this unless Unicode input isn't working, or you want to use a different key (e.g. in order to free up left or right Alt).
|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` |
#### Input Mode Cycling
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.
## Sending Unicode Strings
```c
#define UNICODE_SELECTED_MODES UC_OSX, UC_LNX, UC_WIN, UC_WINC
```
QMK provides several functions that allow you to send Unicode input to the host programmatically:
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`).
### `send_unicode_string()`
By default, when the keyboard boots, it will initialize the input mode to the last one you used. You can disable this and make it start with the first mode in the list every time by adding the following to your `config.h`:
```c
#define UNICODE_CYCLE_PERSIST false
```
!> Using `UNICODE_SELECTED_MODES` means you don't have to initially set the input mode in `matrix_init_user()` (or a similar function); the Unicode system will do that for you on startup. This has the added benefit of avoiding unnecessary writes to EEPROM.
## `send_unicode_string()`
This function is much like `send_string()` but allows you to input UTF-8 characters directly, and supports all code points (provided the selected input method also supports it). Make sure your `keymap.c` is formatted in UTF-8 encoding.
This function is much like `send_string()`, but it allows you to input UTF-8 characters directly. It supports all code points, provided the selected input mode also supports it. Make sure your `keymap.c` file is formatted using UTF-8 encoding.
```c
send_unicode_string("(ノಠ痊ಠ)ノ彡┻━┻");
```
## `send_unicode_hex_string()`
Example uses include sending Unicode strings when a key is pressed, as described in [Macros](feature_macros.md).
Similar to `send_unicode_string()`, but the characters are represented by their code point values in ASCII, separated by spaces. For example, the table flip above would be achieved with:
### `send_unicode_hex_string()`
Similar to `send_unicode_string()`, but the characters are represented by their Unicode code points, written in hexadecimal and separated by spaces. For example, the table flip above would be achieved with:
```c
send_unicode_hex_string("0028 30CE 0CA0 75CA 0CA0 0029 30CE 5F61 253B 2501 253B");
```
An easy way to convert your Unicode string to this format is by using [this site](https://r12a.github.io/app-conversion/), and taking the result in the "Hex/UTF-32" section.
An easy way to convert your Unicode string to this format is to use [this site](https://r12a.github.io/app-conversion/) and take the result in the "Hex/UTF-32" section.
## Additional Language Support
In `quantum/keymap_extras/`, you'll see various language files - these work the same way as the alternative layout ones do. Most are defined by their two letter country/language code followed by an underscore and a 4-letter abbreviation of its name. `FR_UGRV` which will result in a `ù` when using a software-implemented AZERTY layout. It's currently difficult to send such characters in just the firmware.
In `quantum/keymap_extras`, you'll see various language files these work the same way as the ones for alternative layouts such as Colemak or BÉPO. When you include one of these language headers, you gain access to keycodes specific to that language / national layout. Such keycodes are defined by a 2-letter country/language code, followed by an underscore and a 4-letter abbreviation of the character to which the key corresponds. For example, including `keymap_french.h` and using `FR_UGRV` in your keymap will output `ù` when typed on a system with a native French AZERTY layout.
If the primary system layout you use on your machine is different from US ANSI, using these language-specific keycodes can help your QMK keymaps better match what will actually be output on the screen. However, keep in mind that these keycodes are just aliases for the corresponding default US keycodes under the hood, and that the HID protocol used by keyboards is itself inherently based on US ANSI.
## International Characters on Windows
### AutoHotkey allows Windows users to create custom hotkeys among others.
### AutoHotkey
The method does not require Unicode support in the keyboard itself but depends instead of [AutoHotkey](https://autohotkey.com) running in the background.
The method does not require Unicode support in the keyboard itself but instead depends on [AutoHotkey](https://autohotkey.com) running in the background.
First you need to select a modifier combination that is not in use by any of your programs.
CtrlAltWin is not used very widely and should therefore be perfect for this.
Ctrl+Alt+Win is not used very widely and should therefore be perfect for this.
There is a macro defined for a mod-tab combo `LCAG_T`.
Add this mod-tab combo to a key on your keyboard, e.g.: `LCAG_T(KC_TAB)`.
This makes the key behave like a tab key if pressed and released immediately but changes it to the modifier if used with another key.
@@ -237,8 +268,5 @@ AutoHotkey inserts the Text right of `Send, ` when this combination is pressed.
### US International
If you enable the US International layout on the system, it will use punctuation to accent the characters.
For instance, typing "\`a" will result in à.
If you enable the US International layout on the system, it will use punctuation to accent the characters. For instance, typing "\`a" will result in à.
You can find details on how to enable this [here](https://support.microsoft.com/en-us/help/17424/windows-change-keyboard-layout).

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
For a brief example, checkout [`/users/_example/`](https://github.com/qmk/qmk_firmware/tree/master/users/drashna).
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/_example).
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

@@ -1,42 +0,0 @@
# QMK Features
QMK has a staggering number of features for building your keyboard. It can take some time to understand all of them and determine which one will achieve your goal.
* [Advanced Keycodes](feature_advanced_keycodes.md) - Change layers, dual-action keys, and more. Go beyond typing simple characters.
* [Audio](feature_audio.md) - Connect a speaker to your keyboard for audio feedback, midi support, and music mode.
* [Auto Shift](feature_auto_shift.md) - Tap for the normal key, hold slightly longer for its shifted state.
* [Backlight](feature_backlight.md) - LED lighting support for your keyboard.
* [Bluetooth](feature_bluetooth.md) - BlueTooth support for your keyboard.
* [Bootmagic](feature_bootmagic.md) - Adjust the behavior of your keyboard using hotkeys.
* [Combos](feature_combo.md) - Custom actions for multiple key holds.
* [Command](feature_command.md) - Runtime version of bootmagic (Formerly known as "Magic").
* [Debounce API](feature_debounce_type.md) - Customization of debouncing algorithms, and the ability to add more/custom debouncing.
* [DIP Switch](feature_dip_switch.md) - Toggle switches for customizing board function.
* [Dynamic Macros](feature_dynamic_macros.md) - Record and playback macros from the keyboard itself.
* [Encoders](feature_encoders.md) - Rotary encoders!
* [Grave Escape](feature_grave_esc.md) - Lets you use a single key for Esc and Grave.
* [Haptic Feedback](feature_haptic_feedback.md) - Add haptic feedback drivers to your board.
* [HD44780 LCD Display](feature_hd44780.md) - Support for LCD character displays using the HD44780 standard.
* [Key Lock](feature_key_lock.md) - Lock a key in the "down" state.
* [Layouts](feature_layouts.md) - Use one keymap with any keyboard that supports your layout.
* [Leader Key](feature_leader_key.md) - Tap the leader key followed by a sequence to trigger custom behavior.
* [LED Matrix](feature_led_matrix.md) - LED Matrix single color lights for per key lighting (Single Color, not RGB).
* [Macros](feature_macros.md) - Send multiple key presses when pressing only one physical key.
* [Mouse keys](feature_mouse_keys.md) - Control your mouse pointer from your keyboard.
* [OLED Driver](feature_oled_driver.md) - Add OLED screens to your keyboard.
* [One Shot Keys](feature_advanced_keycodes.md#one-shot-keys) - Sticky Keys, lets you hit a key rather than holding it.
* [Pointing Device](feature_pointing_device.md) - Framework for connecting your custom pointing device to your keyboard.
* [PS2 Mouse](feature_ps2_mouse.md) - Driver for connecting a PS/2 mouse directly to your keyboard.
* [RGB Light](feature_rgblight.md) - RGB lighting for your keyboard.
* [RGB Matrix](feature_rgb_matrix.md) - RGB Matrix lights for per key lighting.
* [Space Cadet](feature_space_cadet.md) - Use your left/right shift keys to type parenthesis and brackets.
* [Split Keyboard](feature_split_keyboard.md)
* [Stenography](feature_stenography.md) - Put your keyboard into Plover mode for stenography use.
* [Swap Hands](feature_swap_hands.md) - Mirror your keyboard for one handed usage.
* [Tap Dance](feature_tap_dance.md) - Make a single key do as many things as you want.
* [Terminal](feature_terminal.md) - CLI interface to the internals of your keyboard.
* [Thermal Printer](feature_thermal_printer.md) - Connect a thermal printer to your keyboard to be able to toggle on a printed log of everything you type.
* [Unicode](feature_unicode.md) - Unicode input support.
* [Userspace](feature_userspace.md) - Share code between different keymaps and keyboards.
* [Velocikey](feature_velocikey.md) - Allows changes in RGB animation speed based on WPM/Typing speed.

View File

@@ -1,8 +1,8 @@
# Flashing Instructions and Bootloader Information
There are quite a few different types of bootloaders that keyboards use, and just about all of the use a different flashing method. Luckily, projects like the [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) aim to be compatible with all the different types without having to think about it much, but this article will describe the different types of bootloaders, and available methods for flashing them.
There are quite a few different types of bootloaders that keyboards use, and just about all of them use a different flashing method. Luckily, projects like the [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) aim to be compatible with all the different types without having to think about it much, but this article will describe the different types of bootloaders, and available methods for flashing them.
If you have a bootloader selected with the `BOOTLOADER` variable in your `rules.mk`, QMK will automatically calculate if your .hex file is the right size to be flashed to the device, and output the total size in bytes (along with the max). To run this process manually, compile with the target `check-size`, eg `make planck/rev4:default:check-size`.
If you have a bootloader selected with the `BOOTLOADER` variable in your `rules.mk`, QMK will automatically calculate if your .hex file is the right size to be flashed to the device, and output the total size in bytes (along with the max).
## DFU
@@ -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:
@@ -100,7 +99,7 @@ or
make <keyboard>:<keymap>:avrdude
#### Caterina commands
### Caterina commands
There are a number of DFU commands that you can use to flash firmware to a DFU device:
@@ -113,7 +112,7 @@ There are a number of DFU commands that you can use to flash firmware to a DFU d
## Halfkay
Halfkay is a super-slim protocol developed by PJRC that uses HID, and come on all Teensys (namely the 2.0).
Halfkay is a super-slim protocol developed by PJRC that uses HID, and comes on all Teensys (namely the 2.0).
To ensure compatibility with the Halfkay bootloader, make sure this block is present your `rules.mk`:

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

@@ -81,7 +81,7 @@
* [Macros](fr-fr/feature_macros.md)
* [Boutons de souris](fr-fr/feature_mouse_keys.md)
* [Pilotes / Drivers OLED](fr-fr/feature_oled_driver.md)
* [Touche one-shot](fr-fr/feature_advanced_keycodes.md#one-shot-keys)
* [Touche one-shot](fr-fr/one_shot_keys.md)
* [Périphériques de pointage](fr-fr/feature_pointing_device.md)
* [Souris PS/2](fr-fr/feature_ps2_mouse.md)
* [Éclairage RGB](fr-fr/feature_rgblight.md)
@@ -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)
@@ -112,7 +113,7 @@
* Autres sujets
* [Utiliser Eclipse avec QMK](fr-fr/other_eclipse.md)
* [Utiliser VSCode avec QMK](fr-fr/other_vscode.md)
* [Support](fr-fr/support.md)
* [Support](fr-fr/getting_started_getting_help.md)
* [Comment ajouter des traductions](fr-fr/translating.md)
* À lintérieur de QMK (En cours de documentation)

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

@@ -4,7 +4,7 @@ Le [Configurateur de QMK](https://config.qmk.fm) est une interface graphique en
?> **S'il vous plaît, suivez les étapes suivantes dans l'ordre.**
Regardez le [Tutoriel vidéo](https://youtu.be/tx54jkRC9ZY)
Regardez le [Tutoriel vidéo](https://youtu.be/tx54jkRC9ZY)https://www.youtube.com/watch?v=-imgglzDMdY)
Le configurateur de QMK fonctionne mieux avec Chrome et Firefox.

View File

@@ -1,141 +0,0 @@
# Installing Build Tools
This page describes setting up the build environment for QMK. These instructions cover AVR processors (such as the atmega32u4).
<!-- FIXME: We should have ARM instructions somewhere. -->
**Note:** If this is your first time here, check out the [Complete Newbs Guide](newbs.md) page.
Before continuing, double check that your submodules (third-party libraries) are up to date by running `make git-submodule`.
## Linux
To ensure you are always up to date, you can just run `sudo util/qmk_install.sh`. That should always install all the dependencies needed. **This will run `apt-get upgrade`.**
You can also install things manually, but this documentation might not be always up to date with all requirements.
The current requirements are the following, but not all might be needed depending on what you do. Also note that some systems might not have all the dependencies available as packages, or they might be named differently.
```
build-essential
gcc
unzip
wget
zip
gcc-avr
binutils-avr
avr-libc
dfu-programmer
dfu-util
gcc-arm-none-eabi
binutils-arm-none-eabi
libnewlib-arm-none-eabi
git
```
Install the dependencies with your favorite package manager.
Debian / Ubuntu example:
sudo apt-get update
sudo apt-get install gcc unzip wget zip gcc-avr binutils-avr avr-libc dfu-programmer dfu-util gcc-arm-none-eabi binutils-arm-none-eabi libnewlib-arm-none-eabi
Fedora / Red Hat example:
sudo dnf install gcc unzip wget zip dfu-util dfu-programmer avr-gcc avr-libc binutils-avr32-linux-gnu arm-none-eabi-gcc-cs arm-none-eabi-binutils-cs arm-none-eabi-newlib
Arch / Manjaro example:
pacman -S base-devel gcc unzip wget zip avr-gcc avr-binutils avr-libc dfu-util arm-none-eabi-gcc arm-none-eabi-binutils arm-none-eabi-newlib git dfu-programmer dfu-util
## Nix
If you're on [NixOS](https://nixos.org/), or have Nix installed on Linux or macOS, run `nix-shell` from the repository root to get a build environment.
By default, this will download compilers for both AVR and ARM. If you don't need both, disable the `avr` or `arm` arguments, e.g.:
nix-shell --arg arm false
## macOS
If you're using [Homebrew](http://brew.sh/), you can use the following commands:
brew tap osx-cross/avr
brew tap osx-cross/arm
brew update
brew install avr-gcc@8
brew link --force avr-gcc@8
brew install dfu-programmer
brew install dfu-util
brew install arm-gcc-bin@8
brew link --force arm-gcc-bin@8
brew install avrdude
This is the recommended method. If you don't have homebrew, [install it!](http://brew.sh/) It's very much worth it for anyone who works in the command line. Note that the `make` and `make install` portion during the homebrew installation of `avr-gcc@8` can take over 20 minutes and exhibit high CPU usage.
## Windows with msys2 (recommended)
The best environment to use, for Windows Vista through any later version (tested on 7 and 10), is [msys2](http://www.msys2.org).
* Install msys2 by downloading it and following the instructions here: http://www.msys2.org
* Open the ``MSYS2 MingGW 64-bit`` shortcut
* Navigate to your QMK repository. For example, if it's in the root of your c drive:
* `$ cd /c/qmk_firmware`
* Run `util/qmk_install.sh` and follow the prompts
## Windows 10 (deprecated)
These are the old instructions for Windows 10. We recommend you use [MSYS2 as outlined above](#windows-with-msys2-recommended).
### Creators Update
If you have Windows 10 with Creators Update or later, you can build and flash the firmware directly. Before the Creators Update, only building was possible. If you don't have it yet or if are unsure, follow [these instructions](https://support.microsoft.com/en-us/instantanswers/d4efb316-79f0-1aa1-9ef3-dcada78f3fa0/get-the-windows-10-creators-update).
### Windows Subsystem for Linux
In addition to the Creators Update, you need Windows 10 Subystem for Linux, so install it following [these instructions](http://www.howtogeek.com/249966/how-to-install-and-use-the-linux-bash-shell-on-windows-10/). If you already have the Windows 10 Subsystem for Linux from the Anniversary update it's recommended that you [upgrade](https://betanews.com/2017/04/14/upgrade-windows-subsystem-for-linux/) it to 16.04LTS, because some keyboards don't compile with the toolchains included in 14.04LTS. Note that you need to know what your are doing if you chose the `sudo do-release-upgrade` method.
### Git
If you already have cloned the repository on your Windows file system you can ignore this section.
You will need to clone the repository to your Windows file system using the normal Git for Windows and **not** the WSL Git. So if you haven't installed Git before, [download](https://git-scm.com/download/win) and install it. Then [set it up](https://git-scm.com/book/en/v2/Getting-Started-First-Time-Git-Setup), it's important that you setup the e-mail and user name, especially if you are planning to contribute.
Once Git is installed, open the Git Bash command and change the directory to where you want to clone QMK; note that you have to use forward slashes, and that your c drive is accessed like this `/c/path/to/where/you/want/to/go`. Then run `git clone --recurse-submodules https://github.com/qmk/qmk_firmware`, this will create a new folder `qmk_firmware` as a subfolder of the current one.
### Toolchain Setup
The Toolchain setup is done through the Windows Subsystem for Linux, and the process is fully automated. If you want to do everything manually, there are no other instructions than the scripts themselves, but you can always open issues and ask for more information.
1. Open "Bash On Ubuntu On Windows" from the start menu.
2. Go to the directory where you cloned `qmk_firmware`. Note that the paths start with `/mnt/` in the WSL, so you have to write for example `cd /mnt/c/path/to/qmk_firmware`.
3. Run `util/wsl_install.sh` and follow the on-screen instructions.
4. Close the Bash command window, and re-open it.
5. You are ready to compile and flash the firmware!
### Some Important Things to Keep in Mind
* You can run `util/wsl_install.sh` again to get all the newest updates.
* Your QMK repository need to be on a Windows file system path, since WSL can't run executables outside it.
* The WSL Git is **not** compatible with the Windows Git, so use the Windows Git Bash or a windows Git GUI for all Git operations
* You can edit files either inside WSL or normally using Windows, but note that if you edit makefiles or shell scripts, make sure you are using an editor that saves the files with Unix line endings. Otherwise the compilation might not work.
## Docker
If this is a bit complex for you, Docker might be the turnkey solution you need. After installing [Docker CE](https://docs.docker.com/install/#supported-platforms), run the following command from the `qmk_firmware` directory to build a keyboard/keymap:
```bash
util/docker_build.sh keyboard:keymap
# For example: util/docker_build.sh ergodox_ez:steno
```
This will compile the desired keyboard/keymap and leave the resulting `.hex` or `.bin` file in the QMK directory for you to flash. If `:keymap` is omitted, all keymaps are used. Note that the parameter format is the same as when building with `make`.
You can also start the script without any parameters, in which case it will ask you to input the build parameters one by one, which you may find easier to use:
```bash
util/docker_build.sh
# Reads parameters as input (leave blank for all keyboards/keymaps)
```
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
```
If you're on Linux, this should work out of the box. 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**.
## Vagrant
If you have any problems building the firmware, you can try using a tool called Vagrant. It will set up a virtual computer with a known configuration that's ready-to-go for firmware building. OLKB does NOT host the files for this virtual computer. Details on how to set up Vagrant are in the [vagrant guide](getting_started_vagrant.md).

View File

@@ -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,15 +0,0 @@
# Getting Help
There are a lot of resources for getting help with QMK.
## Realtime Chat
You can find QMK developers and users on our main [Discord server](https://discord.gg/Uq7gcHh). There are specific channels in the server for chatting about the firmware, Toolbox, hardware, and configurator.
## OLKB Subreddit
The official QMK forum is [/r/olkb](https://reddit.com/r/olkb) on [reddit.com](https://reddit.com).
## Github Issues
You can open an [issue on GitHub](https://github.com/qmk/qmk_firmware/issues). This is especially handy when your issue will require long-term discussion or debugging.

View File

@@ -1,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)

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