Compare commits

..

117 Commits

Author SHA1 Message Date
231464c49c format code according to conventions [skip ci] 2020-04-29 11:38:51 +00:00
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
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
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
fd3456f362 [Keymap] Add VIA Keymap to RoMac+ Directory (#8966) 2020-04-29 03:11:02 -07:00
812d80efbd format code according to conventions [skip ci] 2020-04-29 08:57:41 +00:00
86c4c4e91d Convert clipping variables in rgblight.c to a structure (#7720) 2020-04-29 10:22:28 +02:00
5f5c2a219c [Keyboard] Add via support for cypher rev5 PCB (#8898) 2020-04-28 21:42:50 -07:00
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
b17482c3fd Add SPI master for ChibiOS/ARM. (#8779) 2020-04-29 14:01:20 +10:00
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
374525c995 Allow some usbconfig.h overrides at the keyboard level (#8647) 2020-04-29 00:17:54 +01:00
e02a3c559d Edit Unit Testing Documentation (#8961) 2020-04-29 07:39:08 +10:00
e1217dae5a [Keymap] add chriskopher keymap for usb-usb converter (#8856) 2020-04-28 03:10:42 -07:00
485a0b0bc3 [Keymap] Added Xd75 and viterbi keymaps,refactored my userspace. (#8776) 2020-04-28 02:58:42 -07:00
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
bd639752db format code according to conventions [skip ci] 2020-04-28 07:04:07 +00:00
aaeef7a833 Add Romanian keymap and sendstring LUT (#8852) 2020-04-28 16:23:48 +10:00
0d6614f71f adding info.json for funky40 (#8956) 2020-04-27 21:30:10 -07:00
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
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
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
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
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
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
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
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
3cb6fb2935 Merge pull request #8931 from kbrock/kle2info_2
[kle2json] fix rounding in output
2020-04-26 22:23:54 +01:00
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
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
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
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
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
86b62eadc2 Merge pull request #8881 from Maartenwut/ta-65-via
Add VIA support for ta-65
2020-04-25 23:16:15 +01:00
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
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
47fc2f8855 Update keyboards/xd75/keymaps/buzzlighter1/readme.md
Co-Authored-By: Joel Challis <git@zvecr.com>
2020-04-25 15:22:05 +03:00
ee29b515ec Update keyboards/xd75/keymaps/buzzlighter1/readme.md
Co-Authored-By: Joel Challis <git@zvecr.com>
2020-04-25 15:21:57 +03:00
c031e13982 Update keyboards/xd75/keymaps/buzzlighter1/readme.md
Co-Authored-By: Joel Challis <git@zvecr.com>
2020-04-25 15:21:34 +03:00
84bf82f2c9 Update keyboards/7skb/rev1/config.h
Co-Authored-By: Ryan <fauxpark@gmail.com>
2020-04-25 07:30:32 +09:00
af26238385 Update keyboards/7skb/rev1/config.h
Co-Authored-By: Ryan <fauxpark@gmail.com>
2020-04-25 07:30:18 +09:00
28e5969f78 Merge pull request #8897 from Maartenwut/ta-65-encoder
Add encoder support to ta-65
2020-04-24 22:42:43 +01:00
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
423ce39f18 Merge pull request #8806 from awkannan/202004_obliterated75
Add Obliterated75 Keyboard
2020-04-24 21:39:41 +01:00
217debff07 Merge pull request #8807 from danielhklein/uni660rev2
Add uni660 rev2 support
2020-04-24 21:37:18 +01:00
52e9719d09 Merge pull request #8867 from bbeckford/master
Configure RGBLIGHT_SLEEP for cospad
2020-04-24 21:35:20 +01:00
9df367e227 Fix ISO Enter order in Wasdat info.json (#8891) 2020-04-24 19:52:58 +01:00
8650b9f10c VIA keymap for JJ4x4 and general cleanup (#8888) 2020-04-24 19:52:27 +01:00
5c9c45619e Change keymap encoder code
Co-Authored-By: Joel Challis <git@zvecr.com>
2020-04-24 19:41:05 +02:00
09caf19389 Adjust info.json to work with QMK Config tool 2020-04-25 00:08:14 +07:00
4baf49191f [Keyboard] Add p1800fl (#8879)
* My commit message

* Adjust p1800fl
2020-04-24 17:05:57 +01:00
427da3c19c Update Plain60 VIA keymap (#8882)
Co-authored-by: Maarten Dekkers <maartenn2001@gmail.com>
2020-04-24 16:59:33 +01:00
1df8bb3cdb Update keymap.c
Co-Authored-By: Joel Challis <git@zvecr.com>
2020-04-24 01:40:01 +02:00
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
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
6586280bf3 Add missing packages to Linux install scripts (#8895) 2020-04-23 21:56:36 +02:00
0722986d7a Added YD60MQ ISO layout (#8815) 2020-04-24 05:19:01 +10:00
22a10cc8a3 Add encoder to ta-65 default keymap 2020-04-23 20:59:32 +02:00
b349fa0a57 Add encoder to ta-65 2020-04-23 20:57:49 +02:00
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
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
35ca1c2212 Fix ISO Enter order in Wasdat info.json 2020-04-24 00:10:01 +10:00
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
bafa35ff46 fix sample code indent in feature_encoders.md (#8883) 2020-04-23 08:56:22 +10:00
182286680a Add VIA support for ta-65 2020-04-22 22:39:53 +02:00
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
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
d0d105b083 split config.h 2020-04-21 16:53:49 -07:00
c0a57c2a50 split rev2.h for ansi and iso 2020-04-21 16:51:11 -07:00
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
643fc1d806 Update keyboards/cannonkeys/obliterated75/keymaps/default/keymap.c
Co-Authored-By: Ryan <fauxpark@gmail.com>
2020-04-21 12:03:42 -04:00
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
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
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
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
e916ce5f3e Add VIA support to ID80 (#8791) 2020-04-20 16:06:48 -07:00
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
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
2dca087b04 Add naked60 layout, clean up my userspace files and rules.mk. (#8848) 2020-04-20 11:00:14 +01:00
b80340c207 Merge branch 'master' of https://github.com/bbeckford/qmk_firmware 2020-04-20 10:58:45 +01:00
cb4a86475e Changed default RGBLIGHT_SLEEP for cospad 2020-04-20 10:58:36 +01:00
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
1522d97c2b Add support for YMD75 rev 2 (#8853) 2020-04-20 00:58:58 +01:00
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
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
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
9b70e53508 [Docs] Fixed minor typos (#8860) 2020-04-19 23:04:26 +01:00
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
e0fffcde99 Updated personal preonic keymap (#8851) 2020-04-20 03:12:48 +10:00
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
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
51ecd37d7b Add VIA support for Minivan (#8849)
Co-Authored-By: Joel Challis <git@zvecr.com>
2020-04-19 18:44:05 +02:00
ed5e69093c Update my keymaps (#8840) 2020-04-20 01:17:47 +10:00
43785126a7 Merge pull request #8710 from vomindoraan/keymap_extras_fixup 2020-04-19 19:18:05 +10:00
8c97b4a3a4 Add a syllabus to guide people who are learning QMK (#8816) 2020-04-19 09:08:38 +02:00
0698b15aa5 Update cli CI checkout to v2 (#8823) 2020-04-19 09:08:12 +02:00
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
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
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
ed910c8e97 Add back deprecated SE_AE keycode 2020-04-19 02:56:52 +02:00
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
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
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
a6bd8fe67b Update keyboards/xd75/keymaps/buzzlighter1/readme.md
Co-Authored-By: Joel Challis <git@zvecr.com>
2020-04-18 20:32:24 +03:00
db4b11f866 A few final edits to the keymap and readme. 2020-04-18 18:16:11 +03:00
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
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
7a0d145e27 Whitespace changes
Co-Authored-By: Ryan <fauxpark@gmail.com>
2020-04-15 12:35:24 -04:00
d06340f665 uni660rev2 added 2020-04-14 21:25:25 -07:00
4c0065dda7 Add new obliterated75 files 2020-04-15 00:04:03 -04:00
e0909a31c7 GR_DTON → GR_DIAT 2020-04-06 19:32:40 +02:00
d6bffdf577 Small corrections to Belgian, Serbian and Slovenian keymaps 2020-04-06 19:10:57 +02:00
469 changed files with 16040 additions and 2299 deletions

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

View File

@ -6,6 +6,7 @@
* [Testing and Debugging](newbs_testing_debugging.md)
* [Getting Help/Support](support.md)
* [Other Resources](newbs_learn_more_resources.md)
* [Syllabus](syllabus.md)
* FAQs
* [General FAQ](faq_general.md)

View File

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

View File

@ -16,6 +16,7 @@ The following functions can provide basic control of GPIOs and are found in `qua
| `writePinLow(pin)` | Set pin level as low, assuming it is an output | `PORTB &= ~(1<<2)` | `palClearLine(pin)` |
| `writePin(pin, level)` | Set pin level, assuming it is an output | `(level) ? PORTB \|= (1<<2) : PORTB &= ~(1<<2)` | `(level) ? palSetLine(pin) : palClearLine(pin)` |
| `readPin(pin)` | Returns the level of the pin | `_SFR_IO8(pin >> 4) & _BV(pin & 0xF)` | `palReadLine(pin)` |
| `togglePin(pin)` | Invert pin level, assuming it is an output | `PORTB ^= (1<<2)` | `palToggleLine(pin)` |
## Advanced Settings :id=advanced-settings

View File

@ -0,0 +1,56 @@
# コマンド
<!---
original document: 0.8.94:docs/feature_command.md
git diff 0.8.94 HEAD -- docs/feature_command.md | cat
-->
コマンド(旧称:マジック)は、ファームウェアを書き込んだり、[ブートマジック](ja/feature_bootmagic.md)を使うためにプラグを抜いたりすることなくキーボードの挙動を変更する方法です。この機能と[ブートマジックキーコード](feature_bootmagic.md#keycodes)には多くの重複があります。可能な限り、コマンドでは無くブートマジックキーコードの機能を使うことをお勧めします。
一部のキーボードではコマンドがデフォルトで無効になっています。その場合、`rules.mk` 内で明示的に有効にする必要があります:
```make
COMMAND_ENABLE = yes
```
## 使用法
コマンドを使うには、`IS_COMMAND()` マクロで定義されたキーの組み合わせを押し続けます。デフォルトでは、これは「左Shift + 右Shift」です。次に、目的のコマンドに対応するキーを押します。例えば、現在の QMK バージョンを QMK Toolbox コンソールに出力するには、「左Shift + 右Shift + `V`」を押します。
## 設定
コマンドのためのキーの割り当てを変更したい場合は、キーボードあるいはキーマップレベルのどちらかで、`config.h` にこれらを `#define` します。ここで割り当てる全てのキーコードは `KC_` 接頭辞を省略する必要があります。
| 定義 | デフォルト | 説明 |
|------------------------------------|--------------------------------|------------------------------------------------|
| `IS_COMMAND()` | `(get_mods() == MOD_MASK_SHIFT)` | コマンドをアクティブにするキーの組み合わせ |
| `MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS` | `true` | ファンクション行を使ってデフォルトレイヤーを設定 |
| `MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS` | `true` | 数字キーでデフォルトレイヤーを設定 |
| `MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM` | `false` | `MAGIC_KEY_LAYER0..9` を使ってデフォルトレイヤーを設定 |
| `MAGIC_KEY_DEBUG` | `D` | シリアルを介するデバッグの切り替え |
| `MAGIC_KEY_DEBUG_MATRIX` | `X` | キーマトリックスのデバッグの切り替え |
| `MAGIC_KEY_DEBUG_KBD` | `K` | キーボードのデバッグの切り替え |
| `MAGIC_KEY_DEBUG_MOUSE` | `M` | マウスのデバッグの切り替え |
| `MAGIC_KEY_CONSOLE` | `C` | コマンドコンソールを有効にする |
| `MAGIC_KEY_VERSION` | `V` | コンソールに実行中の QMK バージョンを出力 |
| `MAGIC_KEY_STATUS` | `S` | コンソールに現在のキーボードの状態を出力 |
| `MAGIC_KEY_HELP` | `H` | コンソールにコマンドのヘルプを出力 |
| `MAGIC_KEY_HELP_ALT` | `SLASH` | コンソールにコマンドのヘルプを出力 (代替) |
| `MAGIC_KEY_LAYER0` | `0` | レイヤー 0 をデフォルトレイヤーにする |
| `MAGIC_KEY_LAYER0_ALT` | `GRAVE` | レイヤー 0 をデフォルトレイヤーにする (代替) |
| `MAGIC_KEY_LAYER1` | `1` | レイヤー 1 をデフォルトレイヤーにする |
| `MAGIC_KEY_LAYER2` | `2` | レイヤー 2 をデフォルトレイヤーにする |
| `MAGIC_KEY_LAYER3` | `3` | レイヤー 3 をデフォルトレイヤーにする |
| `MAGIC_KEY_LAYER4` | `4` | レイヤー 4 をデフォルトレイヤーにする |
| `MAGIC_KEY_LAYER5` | `5` | レイヤー 5 をデフォルトレイヤーにする |
| `MAGIC_KEY_LAYER6` | `6` | レイヤー 6 をデフォルトレイヤーにする |
| `MAGIC_KEY_LAYER7` | `7` | レイヤー 7 をデフォルトレイヤーにする |
| `MAGIC_KEY_LAYER8` | `8` | レイヤー 8 をデフォルトレイヤーにする |
| `MAGIC_KEY_LAYER9` | `9` | レイヤー 9 をデフォルトレイヤーにする |
| `MAGIC_KEY_BOOTLOADER` | `B` | ブートローダにジャンプする |
| `MAGIC_KEY_BOOTLOADER_ALT` | `ESC` | ブートローダにジャンプする (代替) |
| `MAGIC_KEY_LOCK` | `CAPS` | 何も入力できないようにキーボードをロック |
| `MAGIC_KEY_EEPROM` | `E` | 保存された EEPROM 設定をコンソールに出力 |
| `MAGIC_KEY_EEPROM_CLEAR` | `BSPACE` | EEPROM をクリア |
| `MAGIC_KEY_NKRO` | `N` | N キーロールオーバー (NKRO) の有効・無効を切り替え |
| `MAGIC_KEY_SLEEP_LED` | `Z` | コンピュータがスリープの時に LED を切り替え |

View File

@ -0,0 +1,71 @@
# 動的マクロ: ランタイムでのマクロの記録および再生
<!---
original document: 0.8.123:docs/feature_dynamic_macros.md
git diff 0.8.123 HEAD -- docs/feature_dynamic_macros.md | cat
-->
QMK はその場で作られた一時的なマクロをサポートします。これらを動的マクロと呼びます。それらはユーザがキーボードから定義し、キーボードのプラグを抜くか再起動すると失われます。
1つまたは2つのマクロに合計128のキー押下を保存できます。RAM をより多く使用してサイズを増やすことができます。
有効にするには、最初に `rules.mk``DYNAMIC_MACRO_ENABLE = yes` を記述します。そして、以下のキーをキーマップに追加します:
| キー | Alias | 説明 |
|------------------|----------|---------------------------------------------------|
| `DYN_REC_START1` | `DM_REC1` | マクロ 1 の記録を開始します |
| `DYN_REC_START2` | `DM_REC2` | マクロ 2 の記録を開始します |
| `DYN_MACRO_PLAY1` | `DM_PLY1` | マクロ 1 を再生します |
| `DYN_MACRO_PLAY2` | `DM_PLY2` | マクロ 2 を再生します |
| `DYN_REC_STOP` | `DM_RSTP` | 現在記録中のマクロの記録を終了します。 |
これが必要な全てです。
マクロの記録を開始するには、`DYN_REC_START1` または `DYN_REC_START2` のどちらかを押します。
記録を終了するには、`DYN_REC_STOP` レイヤーボタンを押します。
マクロを再生するには、`DYN_MACRO_PLAY1` あるいは `DYN_MACRO_PLAY2` のどちらかを押します。
マクロの一部としてマクロを再生することができます。マクロ 1 を記録中にマクロ 2 を再生、またはその逆も問題ありません。ただし、再帰的なマクロ、つまりマクロ 1 を再生するマクロ 1 は作成しないでください。もしそうしてキーボードが反応しなくなった場合は、キーボードを取り外し再び接続します。これを完全に無効にするには、`config.h` ファイルで `DYNAMIC_MACRO_NO_NESTING` を定義します。
?> 動的マクロの内部の詳細については、`process_dynamic_macro.h` および `process_dynamic_macro.c` ファイルのコメントを読んでください。
## カスタマイズ
ある程度のカスタマイズを可能にするオプションがいくつか追加されています。
| 定義 | デフォルト | 説明 |
|----------------------------|----------------|-----------------------------------------------------------------------------------------------------------------|
| `DYNAMIC_MACRO_SIZE` | 128 | 動的マクロが使用できるメモリ量を設定します。これは限られたリソースであり、コントローラに依存します。 |
| `DYNAMIC_MACRO_USER_CALL` | *定義なし* | これを定義すると、ユーザの `keymap.c` ファイルを使ってマクロが起動されます。 |
| `DYNAMIC_MACRO_NO_NESTING` | *定義なし* | これを定義すると、別のマクロからマクロを呼び出す(入れ子になったマクロ)機能を無効にします。 |
記録中にキーを押すたびに LED が点滅し始めた場合は、マクロバッファにマクロを入れるスペースがもう無いことを意味します。マクロを入れるには、他のマクロ(それらは同じバッファを共有します)を短くするか、`config.h``DYNAMIC_MACRO_SIZE` 定義を追加することでバッファを増やします(デフォルト値: 128; ヘッダ内のコメントを読んでください)。
### DYNAMIC_MACRO_USER_CALL
以前のバージョンの動的マクロをお使いの方へ: 専用の `DYN_REC_STOP` キーを使わずに動的マクロキーへのアクセスに使われるレイヤーモディファイアのみを使って、マクロの記録を終了することもまだ可能です。この動作に戻したい場合は、`#define DYNAMIC_MACRO_USER_CALL``config.h` に追加し、以下のスニペットを `process_record_user()` 関数の先頭に記述します:
```c
uint16_t macro_kc = (keycode == MO(_DYN) ? DYN_REC_STOP : keycode);
if (!process_record_dynamic_macro(macro_kc, record)) {
return false;
}
```
### ユーザフック
カスタム機能とフィードバックオプションを動的マクロ機能に追加するために使うことができるフックが幾つかあります。これによりある程度のカスタマイズが可能になります。
direction がどのマクロであるかを示すことに注意してください。`1` がマクロ 1、`-1` がマクロ 2、0 がマクロ無しです。
* `dynamic_macro_record_start_user(void)` - マクロの記録を開始する時に起動されます。
* `dynamic_macro_play_user(int8_t direction)` - マクロを再生する時に起動されます。
* `dynamic_macro_record_key_user(int8_t direction, keyrecord_t *record)` - マクロの記録中に各キー押下で起動されます。
* `dynamic_macro_record_end_user(int8_t direction)` - マクロの記録を停止した時に起動されます。
さらに、動的マクロ機能が有効な場合にバックライトを点滅させるために `dynamic_macro_led_blink()` を呼び出すことができます。

View File

@ -0,0 +1,81 @@
# エンコーダ
<!---
original document: 0.8.123:docs/feature_encoders.md
git diff 0.8.123 HEAD -- docs/feature_encoders.md | cat
-->
以下を `rules.mk` に追加することで基本的なエンコーダがサポートされます:
```make
ENCODER_ENABLE = yes
```
さらに、以下を `config.h` に追加します:
```c
#define ENCODERS_PAD_A { B12 }
#define ENCODERS_PAD_B { B13 }
```
各 PAD_A/B 変数は配列を定義するため、複数のエンコーダを定義することができます。例えば:
```c
#define ENCODERS_PAD_A { encoder1a, encoder2a }
#define ENCODERS_PAD_B { encoder1b, encoder2b }
```
エンコーダの時計回りの方向が間違っている場合は、A と B のパッド定義を交換することができます。define を使って逆にすることもできます:
```c
#define ENCODER_DIRECTION_FLIP
```
さらに、解像度を同じファイルで指定することができます (デフォルトかつお勧めは4):
```c
#define ENCODER_RESOLUTION 4
```
## 分割キーボード
分割キーボードのそれぞれの側のエンコーダに異なるピン配列を使っている場合、右側のピン配列を以下のように定義することができます:
```c
#define ENCODERS_PAD_A_RIGHT { encoder1a, encoder2a }
#define ENCODERS_PAD_B_RIGHT { encoder1b, encoder2b }
```
## コールバック
コールバック関数を `<keyboard>.c` に記述することができます:
```c
void encoder_update_kb(uint8_t index, bool clockwise) {
encoder_update_user(index, clockwise);
}
```
あるいは `keymap.c` に記述することもできます:
```c
void encoder_update_user(uint8_t index, bool clockwise) {
if (index == 0) { /* First encoder */
if (clockwise) {
tap_code(KC_PGDN);
} else {
tap_code(KC_PGUP);
}
} else if (index == 1) { /* Second encoder */
if (clockwise) {
tap_code(KC_DOWN);
} else {
tap_code(KC_UP);
}
}
}
```
## ハードウェア
エンコーダの A と B の線は MCU に直接配線し、C/common 線はグランドに配線する必要があります。

View File

@ -0,0 +1,37 @@
# グレイブエスケープ
<!---
original document: 0.8.123:docs/feature_grave_esc.md
git diff 0.8.123 HEAD -- docs/feature_grave_esc.md | cat
-->
60% キーボード、またはファンクションキー行の無い他のレイアウトを使っている場合、専用の Escape キーが無いことに気付くでしょう。グレイブエスケープは grave キー (<code>&#96;</code> および `~`) を Escape と共有することができる機能です。
## 使用法
キーマップ内の `KC_GRAVE` キー (通常は`1` キーの左)を `KC_GESC` に置き換えます。ほとんどの場合、このキーは押された時に `KC_ESC` を出力します。ただし、Shift あるいは GUI を押したままにすると、代わりに `KC_GRV` を出力します。
## OS に見えるもの
メアリーがキーボードで GESC を押すと、OS には KC_ESC 文字が見えます。メアリーが Shift を押しながら GESC を押すと、`~` または Shift された時はバッククォートを出力します。彼女が GUI/CMD/WIN を押したままにすると、1つの <code>&#96;</code> 文字を出力します。
## キーコード
| キー | エイリアス | 説明 |
|---------|-----------|------------------------------------------------------------------|
| `KC_GESC` | `GRAVE_ESC` | 押された場合に Escape。Shift あるいは GUI が押されたままの場合は <code>&#96;</code> |
### 注意事項
macOS では、Command+<code>&#96;</code> はデフォルトで "次のウィンドウを操作対象にする" にマップされます。つまりバッククォートを出力しません。さらに、ショートカットがキーボード環境設定で変更された場合でも、ターミナルは常にこのショートカットを認識してウィンドウを切り替えます。
## 設定
グレイブエスケープが壊す可能性のあるキーの組み合わせが幾つかあります。その中には、Windows では Control+Shift+Escape、macOSでは Command+Option+Escape があります。これを回避するには、`config.h` で以下のオプションを `#define` することができます:
| 定義 | 説明 |
|--------------------------|-----------------------------------------|
| `GRAVE_ESC_ALT_OVERRIDE` | Alt が押された場合、常に Escape を送信する |
| `GRAVE_ESC_CTRL_OVERRIDE` | Control が押された場合、常に Escape を送信する |
| `GRAVE_ESC_GUI_OVERRIDE` | GUI が押された場合、常に Escape を送信する |
| `GRAVE_ESC_SHIFT_OVERRIDE` | Shift が押された場合、常に Escape を送信する |

View File

@ -0,0 +1,62 @@
# HD44780 LCD ディスプレイ
<!---
original document: 0.8.123:docs/feature_hd44780.md
git diff 0.8.123 HEAD -- docs/feature_hd44780.md | cat
-->
これは Peter Fleury の LCD ライブラリの統合です。このページは基本について説明します。[詳細なドキュメントについてはこのページをご覧ください](http://homepage.hispeed.ch/peterfleury/doxygen/avr-gcc-libraries/group__pfleury__lcd.html) (訳注)原文のリンク先のページは、サービスの終了に伴って削除されています。移行先は (http://www.peterfleury.epizy.com/doxygen/avr-gcc-libraries/group__pfleury__lcd.html) と思われます。
HD44780 ディスプレイのサポートを有効にするには、キーボードの `rules.mk``HD44780_ENABLE` フラグを yes に設定します。
## 設定
ディスプレイで使用されるピンとディスプレイの行と列の数を、キーボードの `config.h` に設定する必要があります。
HD44780 のラベルが付いたセクションのコメントを外し、必要に応じてパラメータを変更します。
````
/*
* HD44780 LCD ディスプレイ設定
*/
#define LCD_LINES 2 //< ディスプレイの表示行数
#define LCD_DISP_LENGTH 16 //< ディスプレイの行ごとの表示文字数
#define LCD_IO_MODE 1 //< 0: メモリマップモード 1: IO ポートモード
#if LCD_IO_MODE
#define LCD_PORT PORTB //< LCD 行のためのポート
#define LCD_DATA0_PORT LCD_PORT //< 4ビットデータビット 0 のポート
#define LCD_DATA1_PORT LCD_PORT //< 4ビットデータビット 1 のポート
#define LCD_DATA2_PORT LCD_PORT //< 4ビットデータビット 2 のポート
#define LCD_DATA3_PORT LCD_PORT //< 4ビットデータビット 3 のポート
#define LCD_DATA0_PIN 4 //< 4ビットデータビット 0 のピン
#define LCD_DATA1_PIN 5 //< 4ビットデータビット 1 のピン
#define LCD_DATA2_PIN 6 //< 4ビットデータビット 2 のピン
#define LCD_DATA3_PIN 7 //< 4ビットデータビット 3 のピン
#define LCD_RS_PORT LCD_PORT //< RS 線のためのポート
#define LCD_RS_PIN 3 //< RS 線のためのピン
#define LCD_RW_PORT LCD_PORT //< RW 線のためのポート
#define LCD_RW_PIN 2 //< RW 線のためのピン
#define LCD_E_PORT LCD_PORT //< Enable 線のためのポート
#define LCD_E_PIN 1 //< Enable 線のためのピン
#endif
````
他のプロパティを設定する必要がある場合は、それらを `quantum/hd44780.h` からコピーし、`config.h` に設定することができます。(訳注)`quantum/hd44780.h` は `drivers/avr/hd44780.h` の間違いではないかと思われます。
## 使用法
ディスプレイを初期化するには、以下のパラメータのうちの1つを使って `lcd_init()` を呼び出します:
````
LCD_DISP_OFF : ディスプレイオフ
LCD_DISP_ON : ディスプレイオン、カーソルオフ
LCD_DISP_ON_CURSOR : ディスプレイオン、カーソルオン
LCD_DISP_ON_CURSOR_BLINK : ディスプレイオン、点滅カーソル
````
これはキーボードの `matrix_init_kb` またはキーマップの `matrix_init_user` で行うのが最適です。
使用前にディスプレイをクリアすることをお勧めします。
そのためには、`lcd_clrsrc()` を呼びます。
ディスプレイに何かを表示するには、最初に `lcd_gotoxy(column, line)` を呼びます。最初の行の先頭に移動するには、`lcd_gotoxy(0, 0)` を呼び出し、その後 `lcd_puts("example string")` を使って文字列を出力します。
ディスプレイを制御することができる、より多くのメソッドがあります。[詳細なドキュメントについてはリンクされたページをご覧ください](http://homepage.hispeed.ch/peterfleury/doxygen/avr-gcc-libraries/group__pfleury__lcd.html) (訳注)原文のリンク先のページは、サービスの終了に伴って削除されています。移行先は (http://www.peterfleury.epizy.com/doxygen/avr-gcc-libraries/group__pfleury__lcd.html) と思われます。

View File

@ -66,9 +66,14 @@ After Homebrew is installed run these commands:
You will need to install Git and Python. It's very likely that you already have both, but if not, one of the following commands should install them:
* Debian / Ubuntu / Devuan: `apt-get install git python3 && python3 -m pip install qmk`
* Fedora / Red Hat / CentOS: `yum install git python3 && python3 -m pip install qmk`
* Arch: `yay -S qmk` (or use any other AUR Helper)
* Debian / Ubuntu / Devuan: `sudo apt install git python3 python3-pip`
* Fedora / Red Hat / CentOS: `sudo yum install git python3 python3-pip`
* Arch / Manjaro: `sudo pacman -S git python python-pip python-setuptools libffi`
Install the global CLI to bootstrap your system:
`python3 -m pip install --user qmk` (on Arch-based distros you can also try the `qmk` package from AUR (**note**: it's maintained by a community member): `yay -S qmk`)
## 3. Run QMK Setup :id=set-up-qmk
@ -78,6 +83,12 @@ After installing QMK you can set it up with this command:
In most situations you will want to answer Yes to all of the prompts.
?>**Note on Debian, Ubuntu and their derivatives**:
It's possible, that you will get an error saying something like: `bash: qmk: command not found`.
This is due to a [bug](https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=839155) Debian introduced with their Bash 4.4 release, which removed `$HOME/.local/bin` from the PATH. This bug was later fixed on Debian and Ubuntu.
Sadly, Ubuntu reitroduced this bug and is [yet to fix it](https://bugs.launchpad.net/ubuntu/+source/bash/+bug/1588562).
Luckily, the fix is easy. Run this as your user: `echo "PATH=$HOME/.local/bin:$PATH" >> $HOME/.bashrc && source $HOME/.bashrc`
?> If you already know [how to use GitHub](getting_started_github.md), we recommend that you create your own fork and use `qmk setup <github_username>/qmk_firmware` to clone your personal fork. If you don't know what that means you can safely ignore this message.
## 4. Test Your Build Environment

View File

@ -18,7 +18,24 @@ You may use more than one slave select pin, not just the `SS` pin. This is usefu
## ChibiOS/ARM Configuration
ARM support for this driver is not ready yet. Check back later!
You'll need to determine which pins can be used for SPI -- as an example, STM32 parts generally have multiple SPI peripherals, labeled SPI1, SPI2, SPI3 etc.
To enable SPI, modify your board's `halconf.h` to enable SPI - both `HAL_USE_SPI` and `SPI_USE_WAIT` should be `TRUE`, and `SPI_SELECT_MODE` should be `SPI_SELECT_MODE_PAD`.
Then, modify your board's `mcuconf.h` to enable the SPI peripheral you've chosen -- in the case of using SPI2, modify `STM32_SPI_USE_SPI2` to be `TRUE`.
As per the AVR configuration, you may select any other standard GPIO as a slave select pin, and can be supplied to `spi_start()`.
Configuration-wise, you'll need to set up the peripheral as per your MCU's datasheet -- the defaults match the pins for a Proton-C, i.e. STM32F303.
`config.h` override | Description | Default Value
----------------------------|---------------------------------------------------------------|--------------
`#define SPI_DRIVER` | SPI peripheral to use - SPI1 => `SPID1`, SPI2 => `SPID2` etc. | `SPID2`
`#define SPI_SCK_PIN` | The pin to use for the SCK | `B13`
`#define SPI_SCK_PAL_MODE` | The alternate function mode for the SCK pin | `5`
`#define SPI_MOSI_PIN` | The pin to use for the MOSI | `B15`
`#define SPI_MOSI_PAL_MODE` | The alternate function mode for the MOSI pin | `5`
`#define SPI_MISO_PIN` | The pin to use for the MISO | `B14`
`#define SPI_MISO_PAL_MODE` | The alternate function mode for the MISO pin | `5`
## Functions

70
docs/syllabus.md Normal file
View File

@ -0,0 +1,70 @@
# QMK Syllabus
This page helps you build up your QMK knowledge by introducing the basics first and guiding you to understanding all the concepts you need to know to be proficient with QMK.
# Beginning Topics
If you read nothing else you should read the documents in this section. After reading the [Tutorial](newbs.md) you should be able to create a basic keymap, compile it, and flash it to your keyboard. The remaining documents will flesh out your knowledge of these basics.
* **Learn How To Use QMK Tools**
* [Tutorial](newbs.md)
* [CLI](cli.md)
* [GIT](newbs_git_best_practices.md)
* **Learn About Keymaps**
* [Layers](feature_layers.md)
* [Keycodes](keycodes.md)
* The full list of keycodes you can use. Note that some may require knowledge found in the Intermediate or Advanced Topics.
* **Configuring IDEs** - Optional
* [Eclipse](other_eclipse.md)
* [VS Code](other_vscode.md)
# Intermediate Topics
These topics start to dig into some of the features that QMK supports. You don't have to read all of these documents, but some of the documents in the Advanced Topics section won't make sense if you skip over some of these.
* **Learn How To Configure Features**
<!-- * Configuration Overview FIXME(skullydazed/anyone): write this document -->
* [Audio](feature_audio.md)
* Lighting
* [Backlight](feature_backlight.md)
* [LED Matrix](feature_led_matrix.md)
* [RGB Lighting](feature_rgblight.md)
* [RGB Matrix](feature_rgb_matrix.md)
* [Tap-Hold Configuration](tap_hold.md)
* **Learn More About Keymaps**
* [Keymaps](keymap.md)
* [Custom Functions and Keycodes](custom_quantum_functions.md)
* Macros
* [Dynamic Macros](feature_dynamic_macros.md)
* [Compiled Macros](feature_macros.md)
* [Tap Dance](feature_tap_dance.md)
* [Combos](feature_combo.md)
* [Userspace](feature_userspace.md)
# Advanced Topics
Everything below here requires a lot of foundational knowledge. Besides being able to create keymaps using advanced features you should be familiar with using both `config.h` and `rules.mk` to configure options for your keyboard.
* **Maintaining Keyboards Within QMK**
* [Handwiring a Keyboard](hand_wire.md)
* [Keyboard Guidelines](hardware_keyboard_guidelines.md)
* [info.json Reference](reference_info_json.md)
* [Debounce API](feature_debounce_type.md)
* **Advanced Features**
* [Unicode](feature_unicode.md)
* [API](api_overview.md)
* [Bootmagic](feature_bootmagic.md)
* **Hardware**
* [How Keyboards Work](how_keyboards_work.md)
* [How A Keyboard Matrix Works](how_a_matrix_works.md)
* [Split Keyboards](feature_split_keyboard.md)
* [Stenography](feature_stenography.md)
* [Pointing Devices](feature_pointing_device.md)
* **Core Development**
* [Coding Conventions](coding_conventions_c.md)
* [Compatible Microcontrollers](compatible_microcontrollers.md)
* [Custom Matrix](custom_matrix.md)
* [Understanding QMK](understanding_qmk.md)
* **CLI Development**
* [Coding Conventions](coding_conventions_python.md)
* [CLI Development Overview](cli_development.md)

View File

@ -12,7 +12,7 @@ As of [PR#1359](https://github.com/qmk/qmk_firmware/pull/1359/), there is a new
#define PERMISSIVE_HOLD
```
This makes tap and hold keys (like Mod Tap) work better for fast typist, or for high `TAPPING_TERM` settings.
This makes tap and hold keys (like Mod Tap) work better for fast typists, 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.
@ -35,7 +35,7 @@ To enable this setting, add this to your `config.h`:
#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.
Similar to Permissive Hold, this alters how the firmware processes inputs for fast typists. 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).

View File

@ -50,7 +50,7 @@ In that model you would emulate the input, and expect a certain output from the
# Tracing Variables :id=tracing-variables
Sometimes you might wonder why a variable gets changed and where, and this can be quite tricky to track down without having a debugger. It's of course possible to manually add print statements to track it, but you can also enable the variable trace feature. This works for both for variables that are changed by the code, and when the variable is changed by some memory corruption.
Sometimes you might wonder why a variable gets changed and where, and this can be quite tricky to track down without having a debugger. It's of course possible to manually add print statements to track it, but you can also enable the variable trace feature. This works for both variables that are changed by the code, and when the variable is changed by some memory corruption.
To take the feature into use add `VARIABLE_TRACE=x` to the end of you make command. `x` represents the number of variables you want to trace, which is usually 1.

View File

@ -0,0 +1,137 @@
/* Copyright 2020 Nick Brassel (tzarc)
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
#include "spi_master.h"
#include "quantum.h"
#include "timer.h"
static pin_t currentSlavePin = NO_PIN;
static SPIConfig spiConfig = {false, NULL, 0, 0, 0, 0};
__attribute__((weak)) void spi_init(void) {
// Try releasing special pins for a short time
palSetPadMode(PAL_PORT(SPI_SCK_PIN), PAL_PAD(SPI_SCK_PIN), PAL_MODE_INPUT);
palSetPadMode(PAL_PORT(SPI_MOSI_PIN), PAL_PAD(SPI_MOSI_PIN), PAL_MODE_INPUT);
palSetPadMode(PAL_PORT(SPI_MISO_PIN), PAL_PAD(SPI_MISO_PIN), PAL_MODE_INPUT);
chThdSleepMilliseconds(10);
#if defined(USE_GPIOV1)
palSetPadMode(PAL_PORT(SPI_SCK_PIN), PAL_PAD(SPI_SCK_PIN), PAL_MODE_STM32_ALTERNATE_PUSHPULL);
palSetPadMode(PAL_PORT(SPI_MOSI_PIN), PAL_PAD(SPI_MOSI_PIN), PAL_MODE_STM32_ALTERNATE_PUSHPULL);
palSetPadMode(PAL_PORT(SPI_MISO_PIN), PAL_PAD(SPI_MISO_PIN), PAL_MODE_STM32_ALTERNATE_PUSHPULL);
#else
palSetPadMode(PAL_PORT(SPI_SCK_PIN), PAL_PAD(SPI_SCK_PIN), PAL_MODE_ALTERNATE(SPI_SCK_PAL_MODE) | PAL_STM32_OTYPE_PUSHPULL | PAL_STM32_OSPEED_HIGHEST);
palSetPadMode(PAL_PORT(SPI_MOSI_PIN), PAL_PAD(SPI_MOSI_PIN), PAL_MODE_ALTERNATE(SPI_MOSI_PAL_MODE) | PAL_STM32_OTYPE_PUSHPULL | PAL_STM32_OSPEED_HIGHEST);
palSetPadMode(PAL_PORT(SPI_MISO_PIN), PAL_PAD(SPI_MISO_PIN), PAL_MODE_ALTERNATE(SPI_MISO_PAL_MODE) | PAL_STM32_OTYPE_PUSHPULL | PAL_STM32_OSPEED_HIGHEST);
#endif
}
bool spi_start(pin_t slavePin, bool lsbFirst, uint8_t mode, uint16_t divisor) {
if (currentSlavePin != NO_PIN || slavePin == NO_PIN) {
return false;
}
uint16_t roundedDivisor = 2;
while (roundedDivisor < divisor) {
roundedDivisor <<= 1;
}
if (roundedDivisor < 2 || roundedDivisor > 256) {
return false;
}
spiConfig.cr1 = 0;
if (lsbFirst) {
spiConfig.cr1 |= SPI_CR1_LSBFIRST;
}
switch (mode) {
case 0:
break;
case 1:
spiConfig.cr1 |= SPI_CR1_CPHA;
break;
case 2:
spiConfig.cr1 |= SPI_CR1_CPOL;
break;
case 3:
spiConfig.cr1 |= SPI_CR1_CPHA | SPI_CR1_CPOL;
break;
}
switch (roundedDivisor) {
case 2:
break;
case 4:
spiConfig.cr1 |= SPI_CR1_BR_0;
break;
case 8:
spiConfig.cr1 |= SPI_CR1_BR_1;
break;
case 16:
spiConfig.cr1 |= SPI_CR1_BR_1 | SPI_CR1_BR_0;
break;
case 32:
spiConfig.cr1 |= SPI_CR1_BR_2;
break;
case 64:
spiConfig.cr1 |= SPI_CR1_BR_2 | SPI_CR1_BR_0;
break;
case 128:
spiConfig.cr1 |= SPI_CR1_BR_2 | SPI_CR1_BR_1;
break;
case 256:
spiConfig.cr1 |= SPI_CR1_BR_2 | SPI_CR1_BR_1 | SPI_CR1_BR_0;
break;
}
currentSlavePin = slavePin;
spiConfig.ssport = PAL_PORT(slavePin);
spiConfig.sspad = PAL_PAD(slavePin);
setPinOutput(slavePin);
spiStart(&SPI_DRIVER, &spiConfig);
spiSelect(&SPI_DRIVER);
return true;
}
spi_status_t spi_write(uint8_t data) { return spi_transmit(&data, 1); }
spi_status_t spi_read(void) {
uint8_t data = 0;
spi_receive(&data, 1);
return data;
}
spi_status_t spi_transmit(const uint8_t *data, uint16_t length) {
spiSend(&SPI_DRIVER, length, data);
return SPI_STATUS_SUCCESS;
}
spi_status_t spi_receive(uint8_t *data, uint16_t length) {
spiReceive(&SPI_DRIVER, length, data);
return SPI_STATUS_SUCCESS;
}
void spi_stop(void) {
if (currentSlavePin != NO_PIN) {
spiUnselect(&SPI_DRIVER);
spiStop(&SPI_DRIVER);
currentSlavePin = NO_PIN;
}
}

View File

@ -0,0 +1,78 @@
/* Copyright 2020 Nick Brassel (tzarc)
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
#pragma once
#include <ch.h>
#include <hal.h>
#include <quantum.h>
#ifndef SPI_DRIVER
# define SPI_DRIVER SPID2
#endif
#ifndef SPI_SCK_PIN
# define SPI_SCK_PIN B13
#endif
#ifndef SPI_SCK_PAL_MODE
# define SPI_SCK_PAL_MODE 5
#endif
#ifndef SPI_MOSI_PIN
# define SPI_MOSI_PIN B15
#endif
#ifndef SPI_MOSI_PAL_MODE
# define SPI_MOSI_PAL_MODE 5
#endif
#ifndef SPI_MISO_PIN
# define SPI_MISO_PIN B14
#endif
#ifndef SPI_MISO_PAL_MODE
# define SPI_MISO_PAL_MODE 5
#endif
typedef int16_t spi_status_t;
#define SPI_STATUS_SUCCESS (0)
#define SPI_STATUS_ERROR (-1)
#define SPI_STATUS_TIMEOUT (-2)
#define SPI_TIMEOUT_IMMEDIATE (0)
#define SPI_TIMEOUT_INFINITE (0xFFFF)
#ifdef __cplusplus
extern "C" {
#endif
void spi_init(void);
bool spi_start(pin_t slavePin, bool lsbFirst, uint8_t mode, uint16_t divisor);
spi_status_t spi_write(uint8_t data);
spi_status_t spi_read(void);
spi_status_t spi_transmit(const uint8_t *data, uint16_t length);
spi_status_t spi_receive(uint8_t *data, uint16_t length);
void spi_stop(void);
#ifdef __cplusplus
}
#endif

View File

@ -0,0 +1,52 @@
#pragma once
// bootloader (first top leftmost key)
#define BOOTMAGIC_LITE_ROW 0
#define BOOTMAGIC_LITE_COLUMN 1
// Behaviors That Can Be Configured
#define TAPPING_TERM 250
// how long before a tap becomes a hold, if set above 500, a key tapped during the tapping term will turn it into a hold too
#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
#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.
#define TAPPING_FORCE_HOLD
// makes it possible to use a dual role key as modifier shortly after having been tapped (see Hold after tap)
// Breaks any Tap Toggle functionality (TT or the One Shot Tap Toggle)
/*
#define TAPPING_TERM_PER_KEY
// 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
#define TAPPING_TOGGLE 2
// how many taps before triggering the toggle
#define LEADER_TIMEOUT 300
// how long before the leader key times out
// If you're having issues finishing the sequence before it times out, you may need to increase the timeout setting. Or you may want to enable the LEADER_PER_KEY_TIMING option, which resets the timeout after each key is tapped.
#define LEADER_PER_KEY_TIMING
// sets the timer for leader key chords to run on each key press rather than overall
#define LEADER_KEY_STRICT_KEY_PROCESSING
// Disables keycode filtering for Mod-Tap and Layer-Tap keycodes. Eg, if you enable this, you would need to specify MT(MOD_CTL, KC_A) if you want to use KC_A.
#define ONESHOT_TIMEOUT 300
// how long before oneshot times out
#define ONESHOT_TAP_TOGGLE 2
// how many taps before oneshot toggle is triggered
#define QMK_KEYS_PER_SCAN 4
// Allows sending more than one key per scan. By default, only one key event gets sent via process_record() per scan. This has little impact on most typing, but if you're doing a lot of chords, or your scan rate is slow to begin with, you can have some delay in processing key events. Each press and release is a separate event. For a keyboard with 1ms or so scan times, even a very fast typist isn't going to produce the 500 keystrokes a second needed to actually get more than a few ms of delay from this. But if you're doing chording on something with 3-4ms scan times? You probably want this.
#define COMBO_COUNT 2
// Set this to the number of combos that you're using in the Combo feature.
#define COMBO_TERM 200
// how long for the Combo keys to be detected. Defaults to TAPPING_TERM if not defined.
#define TAP_CODE_DELAY 100
// Sets the delay between register_code and unregister_code, if you're having issues with it registering properly (common on VUSB boards). The value is in milliseconds.
#define TAP_HOLD_CAPS_DELAY 80
// Sets the delay for Tap Hold keys (LT, MT) when using KC_CAPSLOCK keycode, as this has some special handling on MacOS. The value is in milliseconds, and defaults to 80 ms if not defined. For macOS, you may want to set this to 200 or higher.
*/

View File

@ -0,0 +1,246 @@
/* Copyright 2019 Stefano Marago'
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/*
* see jj40/stevexyz for more information
*/
#include QMK_KEYBOARD_H
enum layers {
LAYER_HOME, // home base layer
LAYER_FUNC, // function keys and cursors
LAYER_NUMSYM, // numbers and other characters
LAYER_SYST, // media, mouse and other system keys
LAYER_ARROWPAD,
LAYER_NUMPAD,
LAYER_MEDIAPAD,
};
enum custom_keycodes {
CK_TRIPLEZERO = SAFE_RANGE,
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/*
* LEGEND:
*
* ,--------------------------------.
* | Top row: shifted character |
* | Central row: standard char |
* | Bottom row: hold modifier |
* `--------------------------------'
*
* "____" means free to be assigned
*
*/
/* Qwerty Home Layer
* ,---------------------------------------------------------------------.
* | | | | | | | | | | |
* | Q | W | E | R | T | Y | U | I | O | P |
* | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ |
* |------+------+------+------+-------------+------+------+------+------|
* | | | | | | | | | | |
* | A | S | D | F | G | H | J | K | L | Enter|
* | Shift| FnNav|NumSym| AltGr| OSkey| OSkey| AltGr| FnNav|NumSym| Shift|
* '------+------+------+------+------+------|------+------+------+------'
* | | | | | | | | |
* | Z | X | C | V | B | N | M | Space|
* | Ctrl | Alt | FnNav|NumSym| Shift| Alt | Ctrl | Shift|
* '-------------------------------------------------------'
*/
[LAYER_HOME] = LAYOUT_ortho_3x10(
LT(LAYER_ARROWPAD, KC_Q), LT(LAYER_NUMPAD, KC_W), LT(LAYER_MEDIAPAD, KC_E), KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
MT(MOD_LSFT, KC_A), LT(LAYER_FUNC, KC_S), LT(LAYER_NUMSYM, KC_D), MT(MOD_RALT, KC_F), MT(MOD_LGUI, KC_G), MT(MOD_RGUI, KC_H), MT(MOD_RALT, KC_J), LT(LAYER_FUNC, KC_K), LT(LAYER_NUMSYM, KC_L), MT(MOD_RSFT, KC_ENT),
XXXXXXX, MT(MOD_LCTL, KC_Z), MT(MOD_LALT, KC_X), LT(LAYER_FUNC, KC_C), LT(LAYER_NUMSYM, KC_V), MT(MOD_LSFT, KC_B), MT(MOD_LALT, KC_N), MT(MOD_RCTL, KC_M), MT(MOD_RSFT, KC_SPC), XXXXXXX ),
/* Function and Navigation Layer
* ,---------------------------------------------------------------------.
* | | | | | | | | | | |
* | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 |
* | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ |
* |------+------+------+------+-------------+------+------+------+------|
* | | | | | | | | | | |
* | ESC | Home | PgDn | PgUp | End | Left | Down | Up | Right| Baksp|
* | Shift| ____ |SysLay| AltGr| OSkey| OSkey| AltGr| ____ |SysLay| Shift|
* '------+------+------+------+------+------|------+------+------+------'
* | | | | | | | | |
* | ____ | ____ | | ____ | ____ | ____ | ____ | ____ |
* | Ctrl | Alt | ____ |SysLay| Shift| Alt | Ctrl | Shift|
* '-------------------------------------------------------'
*/
[LAYER_FUNC] = LAYOUT_ortho_3x10(
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10,
MT(MOD_LSFT, KC_ESC), KC_HOME, LT(LAYER_SYST, KC_PGDN), MT(MOD_RALT, KC_PGUP), MT(MOD_LGUI, KC_END), MT(MOD_RGUI, KC_LEFT), MT(MOD_RALT, KC_DOWN), KC_UP, LT(LAYER_SYST, KC_RGHT), MT(MOD_RSFT, KC_BSPC),
XXXXXXX, KC_LCTL, KC_LALT, KC_NO, MO(LAYER_SYST), KC_LSFT, KC_LALT, KC_RCTL, MT(MOD_RSFT, KC_SPC), XXXXXXX ),
/* Number and Symbols Layer
* ,---------------------------------------------------------------------.
* | ! | @ | # | $ | % | ^ | & | * | ( | ) |
* | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 |
* | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ |
* |------+------+------+------+-------------+------+------+------+------|
* | | ~ | _ | + | { | } | | | : | " | |
* | TAB | ` | - | = | [ | ] | \ | ; | ' | Del |
* | Shift|SysLay| ____ | AltGr| OSkey| OSkey| AltGr|SysLay| ____ | Shift|
* ' -----+------+------+------+------+------|------+------+------+------'
* | | | | | < | > | ? | |
* | ____ | ____ | ____ | | , | . | / | ____ |
* | Ctrl | Alt |SysLay| ____ | Shift| Alt | Ctrl | Shift|
* '-------------------------------------------------------'
*/
[LAYER_NUMSYM] = LAYOUT_ortho_3x10(
KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
MT(MOD_LSFT, KC_TAB), LT(LAYER_SYST, KC_GRV), KC_MINS, MT(MOD_RALT, KC_EQL), MT(MOD_LGUI, KC_LBRC), MT(MOD_RGUI, KC_RBRC), MT(MOD_RALT, KC_BSLS), LT(LAYER_SYST, KC_SCLN), KC_QUOT, MT(MOD_RSFT, KC_DEL),
XXXXXXX, KC_LCTL, KC_LALT, MO(LAYER_SYST), KC_NO, MT(MOD_LSFT, KC_COMM), MT(MOD_LALT, KC_DOT), MT(MOD_RCTL, KC_SLSH), MT(MOD_RSFT, KC_SPC), XXXXXXX ),
/* System Layer
* ,---------------------------------------------------------------------.
* | | | | | | | | | | |
* | F11 | F12 | Play | Next |MsWhlU|MsBtn1|OSMenu|SysReq|MsBtn2|Backsp|
* | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ |
* |------+------+------+------+-------------+------+------+------+------|
* | | | | | | | | | | |
* | Caps | Mute | Vol- | Vol+ |MsWhlD|MsLeft|MSDown| MsUp |MsRigh| Ins |
* | Shift| ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | Shift|
* '------+------+------+------+------+------|------+------+------+------'
* | | | | | | | | |
* | ____ | ____ | | |PrnScr|ScrLck|Pause | ____ |
* | Ctrl | Alt | ____ | ____ | ____ | ____ | ____ | Shift|
* '-------------------------------------------------------'
* simplified view (for media and mouse there are dedicated layers)
* ,---------------------------------------------------------------------.
* | | | | | | | | | | |
* | F11 | F12 | | | | |OSMenu|SysReq| |Backsp|
* | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ |
* |------+------+------+------+-------------+------+------+------+------|
* | | | | | | | | | | |
* | Caps | | | | | | | | | Ins |
* | Shift| ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | Shift|
* '------+------+------+------+------+------|------+------+------+------+
* | | | | | | | | |
* | | | | |PrnScr|ScrLck|Pause | |
* | Ctrl | Alt | ____ | ____ | ____ | ____ | ____ | Shift|
* '-------------------------------------------------------'
*/
[LAYER_SYST] = LAYOUT_ortho_3x10(
KC_F11, KC_F12, KC_MPLY, KC_MNXT, KC_MS_WH_UP, KC_MS_BTN1, KC_APP, KC_SYSREQ, KC_MS_BTN2, KC_BSPC,
MT(MOD_LSFT, KC_CAPS), KC_MUTE, KC_VOLD, KC_VOLU, KC_MS_WH_DOWN, KC_MS_LEFT, KC_MS_DOWN, KC_MS_UP, KC_MS_RIGHT, MT(MOD_RSFT, KC_INS),
XXXXXXX, KC_LCTL, KC_LALT, KC_NO, KC_NO, KC_PSCR, KC_SLCK, KC_PAUS, MT(MOD_RSFT, KC_SPC), XXXXXXX ),
/* ArrowPad (mod su Q) /------mouse-------\ /-----cursor-------\
* ,---------------------------------------------------------------------.
* | | | | | | | | | | |
* | | | |MsBtn1| MsUp |MsBtn2| Home | Up | PgUp |Backsp|
* | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ |
* |------+------+------+------+-------------+------+------+------+------|
* | | | | | | | | | | |
* | | | |MsLeft|MsDown|MsRigh| Left | Down | Right| Enter|
* | Shift| ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ |
* '------+------+------+------+------+------|------+------+------+------'
* | | | | | | | | |
* | | |MsWhlU|MsDown|MsWhlD| End | Down | PdDn |
* | Ctrl | Alt | ____ | ____ | ____ | ____ | ____ | ____ |
* '-------------------------------------------------------'
*/
[LAYER_ARROWPAD] = LAYOUT_ortho_3x10(
KC_NO, KC_NO, KC_NO, KC_MS_BTN1, KC_MS_UP, KC_MS_BTN2, KC_HOME, KC_UP, KC_PGUP, KC_BSPC,
KC_LSFT, KC_NO, KC_NO, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_LEFT, KC_DOWN, KC_RIGHT, KC_ENT,
XXXXXXX, KC_LCTL, KC_LALT, KC_MS_WH_UP, KC_MS_DOWN, KC_MS_WH_DOWN, KC_END, KC_DOWN, KC_PGDN, XXXXXXX ),
/* NumPad (mod su W)
* ,---------------------------------------------------------------------.
* | | | | | | | | | | |
* | | | / | * | - |Backsp| 7 | 8 | 9 | 0 |
* | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ |
* |------+------+------+------+-------------+------+------+------+------|
* | | | | | | | | | | |
* | | | | = | + | . | 4 | 5 | 6 | Enter|
* | Shift| ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ |
* '------+------+------+------+------+------|------+------+------+------'
* | | | | | | | | |
* | | | | Tab | , | 1 | 2 | 3 |
* | Ctrl | Alt | ____ | ____ | ____ | ____ | ____ | ____ |
* '-------------------------------------------------------'
*/
[LAYER_NUMPAD] = LAYOUT_ortho_3x10(
KC_NO, KC_NO, KC_KP_SLASH, KC_KP_ASTERISK, KC_KP_MINUS, KC_BSPC, KC_7, KC_8, KC_9, KC_0,
KC_LSFT, KC_NO, KC_NO, KC_KP_EQUAL, KC_KP_PLUS, KC_DOT, KC_4, KC_5, KC_6, KC_ENT,
XXXXXXX, KC_LCTL, KC_LALT, KC_NO, KC_TAB, KC_COMM, KC_1, KC_2, KC_3, XXXXXXX ),
/* MediaPad (mod su E)
* ,---------------------------------------------------------------------.
* | | | | | | | | | | |
* | | | | | | | | Vol+ | | |
* | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ |
* |------+------+------+------+-------------+------+------+------+------|
* | | | | | | | | | | |
* | | | | | | | Prev | Play | Next | |
* | Shift| ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ |
* '------+------+------+------+------+------|------+------+------+------'
* | | | | | | | | |
* | | | | | | Mute | Vol- | |
* | Ctrl | Alt | ____ | ____ | ____ | ____ | ____ | ____ |
* '-------------------------------------------------------'
*/
[LAYER_MEDIAPAD] = LAYOUT_ortho_3x10(
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_VOLU, KC_NO, KC_NO,
KC_LSFT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MPRV, KC_MPLY, KC_MNXT, KC_NO,
XXXXXXX, KC_LCTL, KC_LALT, KC_NO, KC_NO, KC_NO, KC_MUTE, KC_VOLD, KC_NO, XXXXXXX ),
};
void matrix_init_user(void) {
// eeconfig_init(); // reset keyboard to a standard default state; useful when new releases messup with eeprom values
// set num lock on at start (for numonly layer to work)
if (!host_keyboard_led_state().num_lock) {
tap_code(KC_NUMLOCK);
}
}
void matrix_scan_user(void) {
}
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case CK_TRIPLEZERO:
if (record->event.pressed) {
SEND_STRING("000");
} // else { when released... }
break;
}
return true;
};
void keyboard_pre_init_user(void) {
// Call the keyboard pre init code.
// Set our LED pins as output
setPinOutput(D5);
setPinOutput(B0);
}
bool led_update_user(led_t led_state) {
writePin(D5, !led_state.num_lock);
writePin(B0, !led_state.caps_lock);
return false; // prevent keyboard from processing state
}

View File

@ -0,0 +1,13 @@
# gherkin super micro edition
With this configuration the "28" layout first experimented on the plank-like jj40 is being ported to a more proper board, leaving just two keys not used.
For more information please have a look at https://github.com/stevexyz/qmk_firmware/blob/master/keyboards/jj40/keymaps/stevexyz/readme.md
The image below explain the main layers. In addition to them with q, w and e there are three specific dedicated layers for cursors/mouse, numpad and media.
![layers](https://raw.githubusercontent.com/stevexyz/qmk_firmware/master/keyboards/40percentclub/gherkin/keymaps/stevexyz/layers.jpeg)
![prototype](https://github.com/stevexyz/qmk_firmware/blob/master/keyboards/40percentclub/gherkin/keymaps/stevexyz/gherkin28.jpeg)
Happy hacking!
_Stefano

View File

@ -0,0 +1,19 @@
# Build Options (yes/no)
#
BOOTMAGIC_ENABLE = lite # Just bootloader enabled with keys
MOUSEKEY_ENABLE = yes # Mouse keys
EXTRAKEY_ENABLE = yes # Audio control and System control
CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
HD44780_ENABLE = no # Enable support for HD44780 based LCDs
TAP_DANCE_ENABLE = no
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend (it uses the same timer as BACKLIGHT_ENABLE)
NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
RGBLIGHT_ENABLE = no

View File

@ -147,7 +147,7 @@ layer_state_t layer_state_set_user(layer_state_t state) {
rgblight_sethsv_at( 0, 0, 0, 0);
break;
}
rgblight_set_effect_range( 1, 4);
rgblight_set_effect_range( 1, 5);
#endif
return state;
}

View File

@ -20,7 +20,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* USB Device descriptor parameter */
#define VENDOR_ID 0xFEED
#define PRODUCT_ID 0x3060
#define PRODUCT_ID 0x36E1
#define DEVICE_VER 0x0007
#define MANUFACTURER Salicylic_Acid
#define PRODUCT 7skb
@ -52,9 +52,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define RGB_DI_PIN D3
#ifndef RGBLED_NUM
#define RGBLED_NUM 10
#define RGBLED_NUM 12
#define RGBLIGHT_SPLIT
#define RGBLED_SPLIT { 5, 5 }
#define RGBLED_SPLIT { 6, 6 }
#endif
#define RGBLIGHT_ANIMATIONS

View File

@ -105,10 +105,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
//#define NO_ACTION_ONESHOT
/* disable these deprecated features by default */
#ifndef LINK_TIME_OPTIMIZATION_ENABLE
#define NO_ACTION_MACRO
#define NO_ACTION_FUNCTION
#endif
#define NO_ACTION_MACRO
#define NO_ACTION_FUNCTION
/*
* MIDI options
*/

View File

@ -0,0 +1,17 @@
/* Copyright 2020 cfbender
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "absinthe.h"

View File

@ -0,0 +1,68 @@
/* Copyright 2020 cfbender
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#define XXX KC_NO
#include "quantum.h"
/* This is a shortcut to help you visually see your layout.
*
* The first section contains all of the arguments representing the physical
* layout of the board and position of the keys.
*
* The second converts the arguments into a two-dimensional array which
* represents the switch matrix.
*/
#define LAYOUT_default( \
K00, K10, K01, K11, K02, K12, K03, K13, K04, K14, K05, K15, K06, K16, K07, K17, K08, K18, \
K20, K21, K31, K22, K32, K23, K33, K24, K34, K25, K35, K26, K36, K27, K37, K28, K38, \
K40, K41, K51, K42, K52, K43, K53, K44, K54, K45, K55, K46, K56, \
K60, K61, K71, K62, K72, K63, K73, K64, K74, K65, K75, K66, K67, K68, \
K80, K81, K82, K83, K76, K86, K87, K77, K88, K78 \
) \
{ \
{ K00, K01, K02, K03, K04, K05, K06, K07, K08 },\
{ K10, K11, K12, K13, K14, K15, K16, K17, K18 },\
{ K20, K21, K22, K23, K24, K25, K26, K27, K28 },\
{ XXX, K31, K32, K33, K34, K35, K36, K37, K38 },\
{ K40, K41, K42, K43, K44, K45, K46, XXX, XXX },\
{ XXX, K51, K52, K53, K54, K55, K56, XXX, XXX },\
{ K60, K61, K62, K63, K64, K65, K66, K67, K68 },\
{ XXX, K71, K72, K73, K74, K75, K76, K77, K78 },\
{ K80, K81, K82, K83, XXX, XXX, K86, K87, K88 } \
}
#define LAYOUT_ansi( \
K00, K10, K01, K11, K02, K12, K03, K13, K04, K14, K05, K15, K06, K16, K17, K08, K18, \
K20, K21, K31, K22, K32, K23, K33, K24, K34, K25, K35, K26, K36, K27, K37, K28, K38, \
K40, K41, K51, K42, K52, K43, K53, K44, K54, K45, K55, K46, K56, \
K60, K61, K71, K62, K72, K63, K73, K64, K74, K65, K75, K66, K68, \
K80, K81, K82, K83, K85, K76, K86, K87, K77, K88, K78 \
) \
{ \
{ K00, K01, K02, K03, K04, K05, K06, XXX, K08 },\
{ K10, K11, K12, K13, K14, K15, K16, K17, K18 },\
{ K20, K21, K22, K23, K24, K25, K26, K27, K28 },\
{ XXX, K31, K32, K33, K34, K35, K36, K37, K38 },\
{ K40, K41, K42, K43, K44, K45, K46, XXX, XXX },\
{ XXX, K51, K52, K53, K54, K55, K56, XXX, XXX },\
{ K60, K61, K62, K63, K64, K65, K66, XXX, K68 },\
{ XXX, K71, K72, K73, K74, K75, K76, K77, K78 },\
{ K80, K81, K82, K83, XXX, K85, K86, K87, K88 } \
}

102
keyboards/absinthe/config.h Normal file
View File

@ -0,0 +1,102 @@
/*
Copyright 2020 cfbender
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#include "config_common.h"
/* USB Device descriptor parameter */
#define VENDOR_ID 0xB00B
#define PRODUCT_ID 0xFEED
#define DEVICE_VER 0x0001
#define MANUFACTURER cfbender
#define PRODUCT absinthe
#define DESCRIPTION An F-row-less TKL
/* key matrix size */
#define MATRIX_ROWS 9
#define MATRIX_COLS 9
/*
* Keyboard Matrix Assignments
*
* Change this to how you wired your keyboard
* COLS: AVR pins used for columns, left to right
* ROWS: AVR pins used for rows, top to bottom
* DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
* ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
*
*/
#define MATRIX_ROW_PINS { D2, D1, B6, D4, C6, D7, E6, B4, B5 }
#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B2, D3, D0 }
#define UNUSED_PINS
#define ENCODERS_PAD_A { D5 }
#define ENCODERS_PAD_B { B7 }
#define ENCODER_DIRECTION_FLIP
/* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION COL2ROW
/*
* Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN.
*/
//#define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6
// #define BACKLIGHT_PIN B7
// #define BACKLIGHT_BREATHING
// #define BACKLIGHT_LEVELS 3
#define RGB_DI_PIN B0
#ifdef RGB_DI_PIN
#define RGBLED_NUM 32
#define RGBLIGHT_HUE_STEP 8
#define RGBLIGHT_SAT_STEP 8
#define RGBLIGHT_VAL_STEP 8
#define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
#define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
/*== all animations enable ==*/
// #define RGBLIGHT_ANIMATIONS
// /*== or choose animations ==*/
#define RGBLIGHT_EFFECT_BREATHING
#define RGBLIGHT_EFFECT_RAINBOW_MOOD
#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
// #define RGBLIGHT_EFFECT_SNAKE
// #define RGBLIGHT_EFFECT_KNIGHT
// #define RGBLIGHT_EFFECT_CHRISTMAS
#define RGBLIGHT_EFFECT_STATIC_GRADIENT
// #define RGBLIGHT_EFFECT_RGB_TEST
// #define RGBLIGHT_EFFECT_ALTERNATING
// /*== customize breathing effect ==*/
// /*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/
// #define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64
// /*==== use exp() and sin() ====*/
// #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7
// #define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255
#endif
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 5
/* define if matrix has ghost (lacks anti-ghosting diodes) */
//#define MATRIX_HAS_GHOST
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE

View File

@ -0,0 +1,150 @@
{
"keyboard_name": "absinthe",
"url": "https://github.com/cfbender/keyboards/tree/master/absinthe",
"maintainer": "cfbender",
"width": 18.25,
"height": 5,
"layouts": {
"LAYOUT_default": {
"layout": [
{"label":"Esc", "x":0, "y":0},
{"label":"!", "x":1, "y":0},
{"label":"@", "x":2, "y":0},
{"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0},
{"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0},
{"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0},
{"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0},
{"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0},
{"label":"|", "x":13, "y":0}, {"label":"~", "x":14, "y":0},
{"label":"Insert", "x":15.25, "y":0},
{"label":"Home", "x":16.25, "y":0},
{"label":"PgUp", "x":17.25, "y":0},
{"label":"Tab", "x":0, "y":1, "w":1.5},
{"label":"Q", "x":1.5, "y":1},
{"label":"W", "x":2.5, "y":1},
{"label":"E", "x":3.5, "y":1},
{"label":"R", "x":4.5, "y":1},
{"label":"T", "x":5.5, "y":1},
{"label":"Y", "x":6.5, "y":1},
{"label":"U", "x":7.5, "y":1},
{"label":"I", "x":8.5, "y":1},
{"label":"O", "x":9.5, "y":1},
{"label":"P", "x":10.5, "y":1},
{"label":"{", "x":11.5, "y":1},
{"label":"}", "x":12.5, "y":1},
{"label":"Backspace", "x":13.5, "y":1, "w":1.5},
{"label":"Delete", "x":15.25, "y":1},
{"label":"End", "x":16.25, "y":1},
{"label":"PgDn", "x":17.25, "y":1},
{"label":"Caps Lock", "x":0, "y":2, "w":1.75},
{"label":"A", "x":1.75, "y":2},
{"label":"S", "x":2.75, "y":2},
{"label":"D", "x":3.75, "y":2},
{"label":"F", "x":4.75, "y":2},
{"label":"G", "x":5.75, "y":2},
{"label":"H", "x":6.75, "y":2},
{"label":"J", "x":7.75, "y":2},
{"label":"K", "x":8.75, "y":2},
{"label":"L", "x":9.75, "y":2},
{"label":":", "x":10.75, "y":2},
{"label":"\"", "x":11.75, "y":2},
{"label":"Enter", "x":12.75, "y":2, "w":2.25},
{"label":"Shift", "x":0, "y":3, "w":2.25},
{"label":"Z", "x":2.25, "y":3},
{"label":"X", "x":3.25, "y":3},
{"label":"C", "x":4.25, "y":3},
{"label":"V", "x":5.25, "y":3},
{"label":"B", "x":6.25, "y":3},
{"label":"N", "x":7.25, "y":3},
{"label":"M", "x":8.25, "y":3},
{"label":"<", "x":9.25, "y":3},
{"label":">", "x":10.25, "y":3},
{"label":"?", "x":11.25, "y":3},
{"label":"Shift", "x":12.25, "y":3, "w":1.75},
{"label":"MO(1)", "x":14, "y":3},
{"label":"\u2191", "x":16.25, "y":3},
{"label":"Ctrl", "x":0, "y":4, "w":1.5},
{"label":"Win", "x":1.5, "y":4},
{"label":"Alt", "x":2.5, "y":4, "w":1.5},
{"x":4, "y":4, "w":7},
{"label":"Alt", "x":11, "y":4, "w":1.5},
{"label":"Win", "x":12.5, "y":4},
{"label":"Ctrl", "x":13.5, "y":4, "w":1.5},
{"label":"\u2190", "x":15.25, "y":4},
{"label":"\u2193", "x":16.25, "y":4}, {"label":"\u2192", "x":17.25, "y":4}]
},
"LAYOUT_ansi": {
"layout": [{"label":"Esc", "x":0, "y":0},
{"label":"!", "x":1, "y":0},
{"label":"@", "x":2, "y":0},
{"label":"#", "x":3, "y":0},
{"label":"$", "x":4, "y":0},
{"label":"%", "x":5, "y":0},
{"label":"^", "x":6, "y":0},
{"label":"&", "x":7, "y":0},
{"label":"*", "x":8, "y":0},
{"label":"(", "x":9, "y":0},
{"label":")", "x":10, "y":0},
{"label":"_", "x":11, "y":0},
{"label":"+", "x":12, "y":0},
{"label":"Backspace", "x":13, "y":0, "w":2},
{"label":"Insert", "x":15.25, "y":0},
{"label":"Home", "x":16.25, "y":0},
{"label":"PgUp", "x":17.25, "y":0},
{"label":"Tab", "x":0, "y":1, "w":1.5},
{"label":"Q", "x":1.5, "y":1},
{"label":"W", "x":2.5, "y":1},
{"label":"E", "x":3.5, "y":1},
{"label":"R", "x":4.5, "y":1},
{"label":"T", "x":5.5, "y":1},
{"label":"Y", "x":6.5, "y":1},
{"label":"U", "x":7.5, "y":1},
{"label":"I", "x":8.5, "y":1},
{"label":"O", "x":9.5, "y":1},
{"label":"P", "x":10.5, "y":1},
{"label":"{", "x":11.5, "y":1},
{"label":"}", "x":12.5, "y":1},
{"label":"|", "x":13.5, "y":1, "w":1.5},
{"label":"Delete", "x":15.25, "y":1},
{"label":"End", "x":16.25, "y":1},
{"label":"PgDn", "x":17.25, "y":1},
{"label":"Caps Lock", "x":0, "y":2, "w":1.75},
{"label":"A", "x":1.75, "y":2},
{"label":"S", "x":2.75, "y":2},
{"label":"D", "x":3.75, "y":2},
{"label":"F", "x":4.75, "y":2},
{"label":"G", "x":5.75, "y":2},
{"label":"H", "x":6.75, "y":2},
{"label":"J", "x":7.75, "y":2},
{"label":"K", "x":8.75, "y":2},
{"label":"L", "x":9.75, "y":2},
{"label":":", "x":10.75, "y":2},
{"label":"\"", "x":11.75, "y":2},
{"label":"Enter", "x":12.75, "y":2, "w":2.25},
{"label":"Shift", "x":0, "y":3, "w":2.25},
{"label":"Z", "x":2.25, "y":3},
{"label":"X", "x":3.25, "y":3},
{"label":"C", "x":4.25, "y":3},
{"label":"V", "x":5.25, "y":3},
{"label":"B", "x":6.25, "y":3},
{"label":"N", "x":7.25, "y":3},
{"label":"M", "x":8.25, "y":3},
{"label":"<", "x":9.25, "y":3},
{"label":">", "x":10.25, "y":3},
{"label":"?", "x":11.25, "y":3},
{"label":"Shift", "x":12.25, "y":3, "w":2.75},
{"label":"\u2191", "x":16.25, "y":3},
{"label":"Ctrl", "x":0, "y":4, "w":1.25},
{"label":"Win", "x":1.25, "y":4, "w":1.25},
{"label":"Alt", "x":2.5, "y":4, "w":1.25},
{"x":3.75, "y":4, "w":6.25},
{"label":"Alt", "x":10, "y":4, "w":1.25},
{"label":"Win", "x":11.25, "y":4, "w":1.25},
{"label":"Menu", "x":12.5, "y":4, "w":1.25},
{"label":"Ctrl", "x":13.75, "y":4, "w":1.25},
{"label":"\u2190", "x":15.25, "y":4},
{"label":"\u2193", "x":16.25, "y":4},
{"label":"\u2192", "x":17.25, "y":4}]
}
}
}

View File

@ -0,0 +1,19 @@
/* Copyright 2020 cfbender
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
// place overrides here

View File

@ -0,0 +1,32 @@
/* Copyright 2020 cfbender
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_ansi(
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT),
[1] = LAYOUT_ansi(
KC_TRNS, 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_PSCR, KC_SLCK, KC_PAUS,
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,
KC_TRNS, RGB_TOG, RGB_RMOD, RGB_MOD, RGB_HUD,RGB_HUI,RGB_SAD,RGB_SAI,RGB_VAD,RGB_VAI, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_TRNS)
};

View File

@ -0,0 +1,3 @@
# The all ANSI keymap for absinthe
![default absinthe keymap](https://i.imgur.com/td0vfz0.png)

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