Compare commits

...

131 Commits

Author SHA1 Message Date
Ryan
9331c22620 XT converter cleanup (#12264) 2021-03-18 11:48:09 +11:00
Salman
cc84831cae Adding Keyboard: GMMK Pro (#12030)
* GMMK Pro QMK Firmware Code

* info.json added

* updated info.json for the unused keys

* redoing info.json

* readme for pro

* gmmk initial readme

* pipeline fix, issue with compiling gmmk.h

* gmmk pro code formatting changes

* removed rules.mk

* noci file

* Updates

* updated matrix function to match keymap

* updating the keymap layout, renaming matrix, updating layout name to LAYOUT

* fauxpark changes added

* PID VID updates

* removed chconfig and made rules.mk comments cleaner

Co-authored-by: Drashna Jael're <drashna@live.com>
2021-03-18 09:33:16 +11:00
klausweiss
f490777502 [Keyboard] Add handwired/bolek keyboard (#12234)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-03-17 10:07:56 -07:00
Felix Springer
6e79767f5a [Keymap] jumper149 keymap for the dztech/dz65rgb (#12142) 2021-03-17 10:02:00 -07:00
Robert Verst
3bc7f46412 [Keymap] Add userspace rverst (#12205)
Co-authored-by: Robert Verst <robert.verst@tobit.com>
2021-03-17 09:44:21 -07:00
tszaboo
8a2d3a8861 [Keyboard] Add support for ortho4exent (#11699)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-03-16 23:50:22 -07:00
im a can what do you think lmao?
538194344a [Keyboard] add oled and encoder function to lck75 (#11825)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2021-03-16 23:48:03 -07:00
Salicylic-acid3
23765332fa [Keyboard] Modification of ErgoArrows info.json (#11980)
The order of key descriptions in ErgoArrows info.json was wrong, so it has been corrected.
2021-03-16 23:47:18 -07:00
Matthew Dias
163e9b02bf [Keyboard] Add barleycorn smd keyboard (#12200) 2021-03-16 23:31:58 -07:00
devriesp
90f95de5c9 [Keyboard] add via keymap to afternoonlabs breeze keyboard (#12247) 2021-03-16 23:22:43 -07:00
kaylanm
ffc4380b30 [Keyboard] Add KMAC VIA keymap (#12224) 2021-03-16 23:17:40 -07:00
James Young
314ef9df03 Pimentoso Paddino02 clean-up (#12263)
* fork rules.mk to be version-specific

* remove pimentoso/paddino02 as a keyboard target

This commit makes it so QMK API doesn't identify pimentoso/paddino02 as a build target on its own, because there's no actionable code here.

* add image to readme.md

* unify rules.mk files to QMK AVR template

- remove Bootloader selection comment block
- sort Build Option rules
- unify inline comments
2021-03-16 23:00:43 -07:00
peepeetee
563be8ca2a Add bootmagic support for hub16 and hub20 (#12257) 2021-03-17 15:57:51 +11:00
Ryan
e527b375e8 TKC M0lly refactor (#12227) 2021-03-17 15:56:45 +11:00
Mojitas
4e8a218d17 [Keymap] Mojito - removed layer macros (#12201)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-03-16 20:09:45 -07:00
peepeetee
57de02c9f2 [Keyboard] fix bm68rgb default keymap (#12199) 2021-03-16 20:05:20 -07:00
Kyle McAlpine
3c4972a53f [Keyboard] Fix issue with process_record_kb in Torn (#12189) 2021-03-16 19:49:48 -07:00
stanrc85
6af387ec6f [Keymap] stanrc85 keymap updates (#12184) 2021-03-16 19:44:13 -07:00
Gavin Austin
554b73643d [Keyboard] Added Roses Lite Support (#12173)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-03-16 19:23:35 -07:00
Simon Arlott
e941ae3811 [Keyboard] Add YMDK NP24 (ATmega32U4 with 6 RGB LEDs) (#12120) 2021-03-16 18:39:09 -07:00
James Young
f75420c209 box75: fix key positioning in info.json (#12256)
* fix key positioning for box75
2021-03-16 00:00:59 -07:00
Matteo Montemarani
d99806cc27 Pizza Keyboards Pizza65 addition (#11604)
* Added Pizza65 from Pizza Keyboards

Addition of Pizza65

* Update pizza65.h

* Update info.json

* Update mcuconf.h

* Update rules.mk

* Updated makefile

* Update keyboards/pizzakeyboards/pizza65/config.h

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

* Update keyboards/pizzakeyboards/pizza65/config.h

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

* Update keyboards/pizzakeyboards/pizza65/config.h

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

* Update keyboards/pizzakeyboards/pizza65/keymaps/ansi_blocker_doublebs/keymap.c

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

* Update keyboards/pizzakeyboards/pizza65/keymaps/iso_blocker_doublebs/keymap.c

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

* Update keyboards/pizzakeyboards/pizza65/info.json

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

* Update keyboards/pizzakeyboards/pizza65/rules.mk

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

* Update keyboards/pizzakeyboards/pizza65/keymaps/default/keymap.c

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

* Update keyboards/pizzakeyboards/pizza65/keymaps/iso_blocker/keymap.c

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

* Update keyboards/pizzakeyboards/pizza65/keymaps/via/keymap.c

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

* Update keyboards/pizzakeyboards/pizza65/readme.md

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

* Update keyboards/pizzakeyboards/pizza65/readme.md

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

* Update keyboards/pizzakeyboards/pizza65/info.json

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

* Update keyboards/pizzakeyboards/pizza65/info.json

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

* Update keyboards/pizzakeyboards/pizza65/info.json

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

* Chibios Config migration

* Update keyboards/pizzakeyboards/pizza65/readme.md

Co-authored-by: Jonas Gessner <JonasGessner@users.noreply.github.com>

* Update keyboards/pizzakeyboards/pizza65/readme.md

Co-authored-by: Jonas Gessner <JonasGessner@users.noreply.github.com>

* Update keyboards/pizzakeyboards/pizza65/pizza65.h

Co-authored-by: Jonas Gessner <JonasGessner@users.noreply.github.com>

* Update rules.mk

nk rollover activation

* conf updates

* Update keyboards/pizzakeyboards/pizza65/keymaps/iso_blocker/keymap.c

Co-authored-by: Davide Riccardo Caliendo <drc0@users.noreply.github.com>

* Update keyboards/pizzakeyboards/pizza65/keymaps/iso_blocker_doublebs/keymap.c

Co-authored-by: Davide Riccardo Caliendo <drc0@users.noreply.github.com>

* Update keymap.c

thanks to Acaban

* Update pizza65.h

update to the iso_blocker_doublebs layout macro

* Delete chconf.h

Deleting after the ChibiOS-conf migration.

* Delete config.h

Deleting after the ChibiOS-conf migration.

* Revert "Delete config.h"

This reverts commit 16d64619e6.

* Delete mcuconf.h

Deleting after ChibiOS-conf migration.

* Delete halconf.h

Deleting after ChibiOS-conf migrations.

Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Jonas Gessner <JonasGessner@users.noreply.github.com>
Co-authored-by: Davide Riccardo Caliendo <drc0@users.noreply.github.com>
2021-03-16 10:09:29 +11:00
kb-elmo
cd8497b9fb add support for Noah AVR PCB (#11563)
* add support for Noah AVR PCB

* Update info.json

* Update readme.md

* Update keyboards/kb_elmo/noah_avr/rules.mk

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

* Update keymap.c

* Apply suggestions from code review

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

Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2021-03-16 10:03:16 +11:00
James Young
469b4b21d2 Fixes for recent info.json files (#12248) 2021-03-16 07:45:39 +11:00
vattern
926389f3a7 Keyboard/grandiceps (#11933)
* Add Grandiceps keyboard

* Fix info.json

* Fix typo

* Fix typo

* cleanup format

* move mcu files to root

* Updated with PR changes

* Apply suggestions from code review

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

* Apply suggestions from code review

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

* PR issues for chibios confmigrate

* PR Changes

Co-authored-by: Thys de Wet <thys@vectorphoto.co.uk>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-03-15 17:42:09 +00:00
James Young
52b7ebd6be M10-A refactor (#12242) 2021-03-15 19:25:00 +11:00
James Young
2e50b34c67 Add missing info.json files for keyboards (#12239)
Recent changes to QMK Configurator's API have made it so an info.json file is required for QMK Configurator to know how to render the keyboard in question.

This PR adds info.json files for keyboards that did not have them, with a few exceptions for boards whose layouts I was unable to determine.

* add info.json file for 2key2crawl

* add info.json file for 40percentclub/4x4

* add info.json file for 40percentclub/5x5

* add info.json file for 4pplet/aekiso60/rev_a

* add info.json file for 4pplet/steezy60/rev_a

* add info.json file for 6ball

* add info.json file for 7c8/framework

* add info.json file for aeboards/constellation

* add info.json file for alpine65

* add info.json file for aplyard/aplx6

* add info.json file for arch_36

* add info.json file for arisu

* add info.json file for box75

* add info.json file for butterstick

* add info.json file for four_banger

* add info.json file for geekboards/tester

* add info.json file for handwired/2x5keypad

* add info.json file for handwired/412_64

* add info.json file for handwired/42

* add info.json file for handwired/aplx2

* add info.json file for handwired/brain

* add info.json file for handwired/cans12er

* add info.json file for handwired/ck4x4

* add info.json file for handwired/d48

* add info.json file for handwired/dactyl_manuform/dmote/62key

* add info.json file for handwired/daishi

* add info.json file for handwired/hexon38

* add info.json file for handwired/jot50

* add info.json file for handwired/jotanck

* add info.json file for handwired/jotpad16

* add info.json file for handwired/k8split

* add info.json file for handwired/myskeeb

* add info.json file for handwired/nicekey

* add info.json file for handwired/onekey

* add info.json file for handwired/postageboard

* add info.json file for handwired/riblee_f401

* add info.json file for handwired/riblee_f411

* add info.json file for handwired/rs60

* add info.json file for handwired/splittest

* add info.json file for handwired/trackpoint

* add info.json file for handwired/traveller

* add info.json file for hhkb_lite_2

* add info.json file for honeycomb

* add info.json file for ivy/rev1

* add info.json file for keebio/viterbi

* add info.json file for laptreus

* add info.json file for latin47ble

* add info.json file for latin64ble

* add info.json file for launchpad/rev1

* add info.json file for lets_split_eh/eh

* add info.json file for mechmini/v1

* add info.json file for meira

* add info.json file for meishi

* add info.json file for merge/iso_macro

* add info.json file for mschwingen/modelm

* add info.json file for pabile/p20

* add info.json files for pimentoso/paddino02

rev1, rev2/left, and rev2/right

* add info.json file for rgbkb/pan

* add info.json files for runner3680

3x6, 3x7, 3x8, 4x6, 4x7, 4x8, 5x6, 5x7, and 5x8

* add info.json file for sck/gtm

* add info.json file for splitish

* add info.json file for standaside

* add info.json file for ungodly/launch_pad

* add info.json file for xelus/trinityxttkl

* Revert "add info.json file for rgbkb/pan"

This reverts commit 280b89bc61.

* correct maintainer for ivy/rev1
2021-03-15 01:06:55 -07:00
github-actions[bot]
a18e1305b3 Format code according to conventions (#12244)
Co-authored-by: QMK Bot <hello@qmk.fm>
2021-03-15 12:21:14 +11:00
xyzz
0779c34db8 Fix keycode mappings for via and ensure they don't change within protocol (#12130)
* Fix keycode mappings for via and ensure they don't change within protocol

* Update keycodes

* Fix broken keyboards

* added the missing keycodes found in via

* Remove invalid keycodes

Co-authored-by: David Hoelscher <infinityis@users.noreply.github.com>
2021-03-15 12:19:01 +11:00
NightlyBoards
9e1d04fea7 [Keyboard] Added Adellein Keyboard/PCB (#11547) 2021-03-14 14:51:21 -07:00
yhaliaw
b44bffe954 [Keymap] Add yhaliaw keymap for Planck/Rev6.1. (#11318) 2021-03-14 13:19:05 -07:00
Ryan
739925c902 Add info.json for RGBKB Pan (#12218) 2021-03-15 07:17:09 +11:00
Monksoffunk
45e6bb7add Add Cassette42 (#10562)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-03-15 06:55:59 +11:00
milestogo
7b7689d307 [Keymap] miles2go userspace update, add functions for babblepaste library, add prime_e keybard keymap (#9196)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2021-03-14 12:23:30 -07:00
peepeetee
aa73411c14 Update RGB matrix effects documentation (#12181)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-03-13 11:37:39 +11:00
yiancar
b96c18c952 Hand 88 (#11963)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-03-13 09:37:41 +11:00
Dan Thomas
225bff226f fix info.json layout name for boardsource/5x12 (#12145) 2021-03-13 08:57:50 +11:00
Xelus22
5d7ad69cd8 [Bugs] Fix VIA Compiles (#12186) 2021-03-12 13:50:15 -08:00
Albert Y
b8ad5f4249 Document LED physical location index for Planck and Preonic (#12147)
Co-authored-by: filterpaper <filterpaper@localhost>
2021-03-13 08:47:45 +11:00
Albert Y
63f9e7ee86 Enable default features on VIA keymap for Lily58 (#12185)
Co-authored-by: filterpaper <filterpaper@localhost>
2021-03-12 18:43:31 +11:00
Ryan
88dce24375 Remove hex_to_keycode and move tap_random_base64 to send_string.c (#12079) 2021-03-12 18:03:44 +11:00
Nick Brassel
ea2a7c5ea4 ChibiOS conf upgrade for boston (#12170)
boston - 8bded9dabff58de6febd927d4ad976bb743696a3
2021-03-12 17:33:48 +11:00
Alexander Kagno
0ad7833ca4 [Keymap] arkag Userspace updated (#12183)
Co-authored-by: Alex <alex@turncommerce.com>
2021-03-11 10:01:53 -08:00
Joel Challis
790f94533c Refactor to use led config - Part 6 (#12115)
* Convert to config

* Convert to config

* Convert to config

* Convert to config

* Convert to config

* Convert to config

* Convert to config

* Convert to config

* revert changes
2021-03-10 22:48:18 +00:00
somepin
9089244db7 Add VIA support to doodboard/duckboard_r2 (#12028)
* Update R1 keymap and config

* Add duckboard R2

* Add VIA support for duckboard R2

* Set bootmagic lite row and column

* Update config.h

* Update keyboards/doodboard/duckboard/config.h

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

* Update config.h

Co-authored-by: Drashna Jaelre <drashna@live.com>
2021-03-09 21:17:35 -08:00
Ryan
aed8bace97 Fix typo in get_git_version() (#12182) 2021-03-10 08:36:39 +11:00
Danny
4f5e0dd325 Add BFO-9000 info.json (#12179) 2021-03-09 10:36:38 -08:00
Zach White
6d8d20774f improve detection of community layout support 2021-03-09 08:04:07 -08:00
Armando Magalhães
2aa38f5bd3 [Keymap] add crkbd/keymaps/armand1m (#12098) 2021-03-07 15:33:40 -08:00
maz0r
75fd6bd269 [Keyboard] Capsunlocked CU80 - added variant's for RGB matrix support (#12019)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-03-07 12:20:02 -08:00
Zach White
86e6be342c minor change to trigger api update 2021-03-07 08:14:43 -08:00
Ryan
8556068534 Require BOOTLOADER = qmk-dfu for :bootloader target (#12136) 2021-03-07 17:39:35 +11:00
Zach White
0763269ec5 fix CI job: api-data->api_data 2021-03-06 21:26:07 -08:00
Pierre Chevalier
01b8ef39f5 Remove stale references to "handwired/ferris"
The code was moved to the "ferris" directory.

Fixes the following commands:
```
qmk compile ~/qmk_firmware/keyboards/ferris/keymaps/default/keymap.json
qmk compile ~/qmk_firmware/keyboards/ferris/keymaps/pierrec83/keymap.json
```

Addresses this issue:
https://github.com/pierrechevalier83/ferris/issues/5
2021-03-06 21:22:24 -08:00
Zach White
08e512a273 upload api data to spaces 2021-03-06 21:17:55 -08:00
Zach White
1cbf1c681a Enforce minimum versions for jsonschema and MILC (#12141) 2021-03-06 15:56:45 -08:00
peepeetee
9b85b1b638 [Keyboard] bm68rgb (#12128)
* add support for Bbm68rgb

* pull request changes filled

* pull request changes filled(this time for real)

* added new line to files that did not have new lines at end of file

* updated modifier keys for rgb effects

* Update keyboards/bm68rgb/readme.md

* Apply suggestions from code review

* Apply suggestions from code review

* add nkro suppport

* Update keyboards/bm68rgb/rules.mk

* modified keymap to better correspond to physical layout

* updated comment style
2021-03-06 15:13:20 -08:00
icesoup
788b1854b4 [Keyboard] add Soup10 support (#11921)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-03-06 13:03:48 -08:00
Aleblazer
86e28b4db8 Adding Zodiark Split keyboard (#11837)
* Adding Files for Zodiark

* zodiark.h and keymap.c layout corrections

* Apply suggestions from code review

Applied all suggestions from zvecr.

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

* Applied all suggestions from fauxpark

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

* Defined matrix driver

* Update keymap with GPL2

* Added GPL2+ to All keymap.c, cleaned up config.h, and removed the rgbmatrixwip keymap

* Apply suggestions from code review

Removed the two lines from the config.h and changed to the smaller resolution picture on the Readme.

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

* Added VIA keymap

* Corrected VIA Keymap oled.c

Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2021-03-06 18:56:48 +00:00
Ryan
9c94de070a Remove ifdefs for UC and X/XP too (#12131) 2021-03-06 19:50:01 +11:00
Ryan
23d6ca9942 Remove a few more ifdefs from quantum_keycodes (#12129) 2021-03-06 17:44:48 +11:00
Conor Burns
b16bfac107 added 0xCB/1337 keyboard (#12089)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Joel Challis <git@zvecr.com>
2021-03-05 23:22:42 +01:00
Takeshi ISHII
09dfc08207 add OLED_DRIVER_ENABLE into show_options.mk (#12121) 2021-03-05 20:26:26 +00:00
bluepylons
07fce7ba13 [Keyboard] add Boston keyboard (#11273)
* Added boston keyboard

* Added Boston keyboard

* Changed some keycodes, added layers, added encoder layer change, added RGB layer indicator

* Cleaned up whitespace

* Update config.h

Cleaned up whitespace

* Cleaned up whitespace

* Added keyboard_post_init_kb code for RGBLEDs so that they start on a defined color

* Modified layout so that split backspace right is at a more intuitive location for configurator

* Cleaned up whitespace, changed some labels

* Modified keymap to accommodate revised layout in boston.h

* Removed "on port C6" from Line 20 (committed suggestion)

* Removed "Encoder Enable" from Line 8 (committed suggestion)

* Removed empty #define DESCRIPTION as suggested

* Implemented lock LED changes as suggested by drashna

* Implemented lock LED changes as suggested by Drashna, changed WS2812 driver byte order

* Updated HSV color  codes to reflect WS2812 byte order change

* Implemented suggestion from noroadsleft

* Implemented suggestion from noroadsleft

* Updated readm.md per suggestions from noroadsleft

* Update keyboards/boston/readme.md per noroadsleft's suggestion

* Removed empty layers from default keymap

* Stripped empty layers and much code from default keymap ; moved to RGB Light Layers keycap
2021-03-05 10:43:09 -08:00
Sendy YK
52d8cbf092 [Keymap] Add 60_ansi_arrow_split_bs_7u_spc layout & keymap (#11329)
* Add 60_ansi_arrow_split_bs_7u_spc layout & keymap

* Update readme.md

* Minor updates

* Update dz60.h

* Update keymap.c

* Update readme.md

* Update keymap.c

* Update readme.md

* Update readme.md

* Update keymap.c

* Update layouts/default/60_ansi_arrow_split_bs_7u_spc/layout.json

* Update keymap.c

* Update readme.md
2021-03-05 10:30:06 -08:00
Dimitris Papavasiliou
73b8f85816 [Keyboard] Lagrange handwired keyboard (#11374)
* [Keyboard] Add the Lagrange keyboard

* Covert the master side to use the SPI driver.
2021-03-05 10:25:20 -08:00
datafx
aadea5ab97 [Keyboard] Monstargear XO87 Solderable support (#11716)
* Support for XO87 solderable version

* cleanup

* Remove abandoned code

* replaced KEYMAP with LAYOUT and moved LAYOUT macro to solderable.h.  deleted unneeded files.

* Update keyboards/monstargear/xo87/solderable/keymaps/via/keymap.c

* update info.json with missing keys

* Apply suggestions from code review

* Apply suggestions from code review

correct layout macro
2021-03-05 10:04:14 -08:00
yiancar
54f7708eaa [Keyboard] NK65 rev 1.4 (#11991)
NK65 Pinout change for rev 1.4.

* Update Pinout for new PCB rev

* Create readme.md

* Update keyboards/nk65/v1_4/rules.mk
2021-03-04 21:15:41 -08:00
imchipwood
d7aa245c33 dumbpad refactor - adding support for various PCB revisions (#9259)
* Placeholder commit - Refactored to support different PCB revisions

Individual revision folders still need:
-  info.json
-  readme.md

all v0x folders support up to two LEDs for layer indication

all v1x folders support up to two LEDs for layer indication
plus one extra LED for numlock indication

v0x - supports single-encoder v0.x PCB revisions

v0x_right - supports reversible, single-encoder v0.x PCB revisions

v0x_dualencoder - supports dual-encoder v0.x PCB revisions

v1x - supports single-encoder v1.x PCB revisiions

v1x_right - supports reversible, single-encoder v1.x PCB revisions

* Added info.json and readme.md files for all dumbpad revisions

* More refactoring, adding shared config.h and rules.mk

Removed config.h from default keymap folders - defining TAPPING_TOGGLE in config.h

* Minor formatting fix

* MATRIX_COL_PINS for v1x_right was not reversed - changed to match v0x_right

* adding support for v1x dual encoder PCB

* adding alt-f2 tapdance routine for personal keymaps

* adding dumbpad build using teensy 2.0 instead of Pro Micro

* matched v1x dumbpad encoder and led pins to latest PCB revisions

* updated readme, removed v1x_teensy until someone requests it

* changed device name to match tmk udev rules, removed unnecessary ifdef

* removed user keymaps and folders

* missed hotdox keymap - removing

* fixing info.json keyboard_names for all versions

* Changed biton32 to get_highest_layer in keyboards/dumbpad/v0x/v0x.c

* keyboards/dumbpad/v0x/v0x.c - remove matrix_scan_kb, process_record_kb

* /dumbpad/v0x/keymaps/default/keymap.c - remove empty functions

* /dumbpad/v0x/keymaps/default/keymap.c - changed biton32 to get_highest_layer

* keyboards/dumbpad/v0x_dualencoder/keymaps/default/keymap.c - remove empty functions

* keyboards/dumbpad/v0x_right/readme.md - smaller board layout image

* keyboards/dumbpad/v1x_dualencoder/readme.md - smaller board image

* keyboards/dumbpad/v1x/readme.md - smaller board image

* keyboards/dumbpad/v1x_right/readme.md - smaller board image

* Update keyboards/dumbpad/rules.mk

* Apply suggestions from code review

Batch applying suggestions from review

* fixed removal of led_set_kb

* Implementing requested changes from old pull request 9259

* removing unused rules

* removed rules.mk from dumbpad base folder

* adding templates for each layout

* testing default keymap json

* Testing applying default keymap for dumbpad

* Layout correction: v1.x are 17 position pcb's

* Update keyboards/dumbpad/v0x/rules.mk

* Update keyboards/dumbpad/v0x/rules.mk

* Update keyboards/dumbpad/v0x_dualencoder/keymaps/default/keymap.c

* Update keyboards/dumbpad/v0x_dualencoder/rules.mk

* Update keyboards/dumbpad/v0x_dualencoder/rules.mk

* Update keyboards/dumbpad/v1x_dualencoder/rules.mk

* Update keyboards/dumbpad/v1x_dualencoder/templates/keymap.c

* Update keyboards/dumbpad/v1x_right/rules.mk

* Update keyboards/dumbpad/v1x_right/rules.mk

* Update keyboards/dumbpad/rules.mk

* Update keyboards/dumbpad/v0x_dualencoder/templates/keymap.c

* Update keyboards/dumbpad/v0x_right/rules.mk

* Update keyboards/dumbpad/v1x/rules.mk

* Update keyboards/dumbpad/v1x/rules.mk

* Update keyboards/dumbpad/v1x_dualencoder/keymaps/default/keymap.c

* Update keyboards/dumbpad/v1x_dualencoder/rules.mk

* Update keyboards/dumbpad/v0x_right/rules.mk

* Removing binary files
2021-03-04 20:25:19 -08:00
Quentin
2cb0b41ce7 update correct layout name (#12096) 2021-03-04 23:03:58 +00:00
Nick Blyumberg
e25f05224f Fixed the ortho60 and ortho48 matrix layout after testing (#12106) 2021-03-04 22:59:20 +00:00
Jos Boersema
7639b5aa3e [Keymap] josjoha keymap for TheVan Keyboards' Minivan (#8066)
Keymap Minivan: configurable dual layout, many symbols, speed/text-size measuring

* Made center led color follow last activated layer color. Some led code clean up

* Reordered the _RAR layer, also putting GUI on the _ACC layer.

* Some issue with _FUN (see keymap.c FIXME), removed _FUN nested 'go to layer' key on _FUN.

* markdown formatting

* Update readme about _FUN top row issue (see keymap.c at XXX)

* Sentence order final bit was wrong by topic. White space fiddles.

* Minor comment editing

* minor comment adjustments

* leds are not modifiers, moved

* _FUN persistance on base layer only (XXX)

* The up/left to go to _LTR layer, now always goes to BASE (_LTR or _DDL).
Led indicators refldect this. No _DRA hold on base layer but _ACC. No
one shot to _FUN layer (seemed to make things confusing), but a TO().

* Some chatter about how to configure this map to your needs.

* language fixing

* Tried to make sense explaining how to access the descramble.

* language fix

* Seems there was a stale CSET_LTR/.*DDL, should be BASE_LTR/.*DDL, fixed.

* language, blabla

* Corrected stale _LTR into BASE

* Some documentation finetuning and trying to make it simple to understand

* language fixing

* language fixing

* Doing the utmost to explain it in a way I understand it too.

* language fixing, going ultra-verbose

* language fixing and formatting

* language fixing

* language fixing, formatting

* attempt to simplify explanations as much as possible

* added License to keymap.c (GPL), noted that _ACC and _DRA need work to
function in 'descramble' mode

* fixes regarding layer order, adding two layers, started on descramble
layers for _ACC and _DRA Unicode

* Noted some coming changes about F-layer and more descramble.

* changed globals to type 'bool'

* Changed F-layer by removing pre-modifier F keys, moved BASE direction
switches, added new incomplete descramble layers

* _FUN layer changes (comment fix)

* Led color fixes. Changed order of layers in the source (no user consequence).

* Added copyright authors (hope that is correct in GPL style/requirements).

* Switched on BASE layers the keys to activate _MOV with leftside _NSY:
more harmoneous, and _MOV can also be held by right hand.

* Follow Quantum indentation style more (mostly).

* On _NSY & _DDN, Tab follows _LTR. '-' moved to LShift, '.' moved, ','
created, shift(tab) removed.

* Added Linux Unicode input mode Accented characters on layers _DDA, _DDD

* added to Todo

* Added ijIJ to _ACC and _DDA layers (2nd last letter of Dutch alphabet).

* add todo point about navigation, fix -> "8th key"

* added 「」《》 to _DRA and _DDA

* Added 〇, ƒƑ. Altered Nav clusters with paging on outside, added thumb Page up/down to _MOV, brought _REV in line with recent _NSY changes (tab,-,enter,dot,comma). Harmonized tab on _Mov with other layer tabs (also a move command, moving cells).

* Added super- and sub-script for numbers on _DRA, _DDD.

* Added quotation marks „ “ ” to layers _DRA and _DDD.

* Added °〇•· to _DRA, _DDA

* § as an enumeration grouped with • (bullet), · as possibly math (middot or multiply) grouped with ±.

* Changed numbers to be on home-rows both hands, because thumb layer key does
not interfere alternating between hands for longer numbers (previous
reason for one-handed numbers). The unshifted symbols went left 2nd row,
because then the shifted versions can be accessed with shift if the
layout is replicated on a Pok3r (which is non-programmable right hand 2nd row.)
The logic has been harmonized with layers _DDN, _DRA & _DDD, _FUN, which
have number(-like) keys. It seems better this way. The symbols are layed
out more spaciously, each finger now does two symbols (2nd row, 4th
row). The numbers are more like they normally are, which feels more
natural, and should even the load between both hands and help with
alternating between hands when typing numbers.

Reason to change was looking into pressing ;, q, j, with ring-, middle-,
index-finger (moved one to the right from default Dvorak), because the
stagger makes it easier to reach that way, less loss of home row contact,
bending fingers more straight up and down. Downside became that left
index type 5 numbers, and that the normal finger matching (0 is pinky,
etc) was lost. With the new layout these potential problems are also resolved.

* Made descramble _DDN, _DDL representation show both raw and resulting layouts.
layouts.

* Added arrows, fleur and heart on _DRA and _DDD.

* Changed _FUN layer switching to incorporate the 'descramble' system
seemlessly. The 4 layer with a descramble twin will switch to either
depending on the descramble mode.

* Descramble mode with normal Unicode layers mostly done, except costum LT() to share the key with Delete/Alt on _DDL.

* Changed descramble mode keys to be just one on a cycle. Added full set
of Alt/Control/Shift multimodifiers to `_FUN` layer.

* Changed descramble mode keys to be just one on a cycle. Added full set
of Alt/Control/Shift multimodifiers to `_FUN` layer.

* format fix

* Descramble cycle key moved from row 1 to row 4 far right, to avoid
accidental press,

* The 'descramble' mode with normal Unicode encoding finished. Fixed
mistaken non-transparent key on _DRA and _DDD, removed tab from _RAR.

* stale layer comment fix _LTR/_DDL

* New layer-tap timed keys proved unreliable, longer tap term fixed it.

* The _FUN layer is a one-shot layer for the F-keys, but that can be toggled by the FUN< key on the _FUN layer (top row, 3rd).
Some additions to the readme.

* Comment improvements (layout tables)

* minor

* Made #defines to allow a user to easily switch to a WASD arrow layout.

* Added keys to switch leds on/off, to _RAR layer. Fixed wrong comment on 'APP' key in _RAR.

* comments fix regarding MLed, SLeds

* Added BASE to same key as _FUN on base layer, except layers with numbers/symbols.
Removed capital ƒ, and moved ± to that key. Added … on old spot of ±.
Some readme language editing, adding something about other keyboards, etc.

* small language fix

* Config.h: Removed unused #defines.
Readme: minor edits.

* minor language edits.

* Minor comment edit.

* Minor language fix.

* Minor language style edit.

* Removed unnecessary section 'personal remarks'

* Changed the top row in _DRA and _DDD. Super-/sub-script parenthesis to that location on _NSY, added currency symbols, reduced emoticons.

* minor formatting

* Added LGUI and RGUI on the _DRA/_DDD layer(s).

* Put RGUI on the base layer, on the _FUN layer switch key. This probably causes side-effects on
systems without where RGUI is not merely a modifier.

* Changed _FUN toggle on BASE to Rshift, because RGUI on some systems has a consequence when tapped by itself.

* Changed LGUI and RGUI around because LGUI is mostly used and on BASE layer. Some edits to last part of readme.md.

* Minor language fixed (L/R-GUI, use-case).

* some more blabla on use case of the map generally

* Changed name KC__[LR]GUI to KC__[XY]GUI for clarity wrt switching them.

* Removed left-arrow on Alt on _ACC and _DRA, for faster use with pointer device.

* Added the same system as is on RShift, to LShift, pointed it to _MOV layer.

* Changed left shift layer toggle to _DRA, because it has uncluttered shift, alt, control, for using those with a pointer device (mouse, stylus).

* Changed base layer left-shift tap from _DRA to _MOV, because _MOV toggled can be convenient generally, and it is a less dangerous layer to accidentally press, and it makes more sense to activate the navigation layer when editing in 3D software.

* The Power keys on _RAR now require Shift to be activated (accident prevention).

* fiddled with title

* more title fiddles

* Added RGUI on _FUN for future proofing the layout, harmonizing layers.

* Added ',' on _REV (number fraction division). Minor fix to documentation format.

* title fiddle

* Added LGUI, RGUI to _RAR, to harmonize with other layers and for potential future uses.

* Changed unnecessary transparent keycode on _AcC and _DDA to be 'nop', minor comment fixes.

* Added on _DRA and _DDD: ─━┄┅.
Fixed a bug in led layer colors (forgotten 'else', causing wrong color for _DDD).

* Some changes to conform to QMK readme.md standards (more necessary).

* Changed _REV into a numbers pad layer called _PAD, put on Lshift in BASE.

_REV layer (not used anyway) replaced with a layer that is basically
a layer where symbols that exist on _NSY (mostly) and on _LTR (few)
are existing in the same locations, but in the number pad variant of
that symbol. The goal is to make it easy to find, it is not meant for
single hand access quickly. The use is to deal with special shortcuts
like Blender has, which differentiate normal and numpad numbers/symbols.
For quick access it was put on the left shift in BASE layer.

* Added navigation arrangements to _PAD. Changed location of shift on _RAR.

The numbers on numpad are easy to find, but when these keys are in their
navigation variant with numlock on it becomes almost impossible. There
was room on the map to add an arrow row, and a row for the remaining
navigation keys, hence they where added. They are in a left handed
order, because there already is a right handed order on _MOV.

It still proved possible to accidentally trigger Power, due to erroneous
hitting 'shift' in BASE and then messing around by accident. With shift
on (BASE) space in _RAR, accidents should be reduced further, since it
is a combination never used.

* Added Tab on _ACC and _PAD

To facilitate Control-Tab (a blender shortcut). On _ACC the Tab is in its
correct place. On _PAD it messy because not on its correct place. Leaving
it there for now: easier to access Tab+Control with left hand only on the
modifiers in _PAD, and other hand on a pointer device. Tab has a potential
use to jump input cells, which may be used in combination with a numpad.

* _MOV layer: switched default layout to trangle navigation layout.

This only required to set the already existing #defines. I found
the flat layout not intuitive, the triangle layout has no left/rigth hand problem.

The higher buttons for the mouse where not correctly ordered, so they where re-ordered.

* Triangle navigation by default. Added pictures of layout to readme.md

* Layer names on images.

* Changed image for layer _DRAW slightly.

The shifted symbol to the lower right.

* Image for _PAD corrected for no-action and Tab.

* Added a paragraph about why this layout is good to use.

* removed 'modifiers' paragraph

* Some text improvements in paragraph on what is good about this layout.

Fiddle on the title as well.

* Added Del on _DRAW layer.

Some minor text fiddles here and there.

* Removed word "descramble" in image layer _RAR.

* Improved key 'sticky' and altered image size (test).

* Rescaled image for layer FUN

* Unicode in its own file. Bug fix: _DDA 'ï' printed a capital.

Upon a suggestion from QMK Discord #programming, the macros and
unicode is put in a separate file, because keymap.c got large.

An erroneous numerical value for ï was fixed.

Author e-mail is updated to a new e-mail adres.

* Added an image to illustrate 'descramble' mode.

* Changed explicit e-mail to link, to reduce spam bot trolling.

* Added a Qwerty+Dvorak compile time version.

It seemed the overall design (accented, Unicode, stuff) could be useful
for Qwerty typers (of which there are so many). This was done by #if(n)def
out/in a fair amount of code here and there, and creating 4 replacement
layers in a new file qwerty_dvorak.c, also with its own readme in
qwerty_dvorak.md. The 'descramble' switch system is re-used here to
switch from Qwerty to Dvorak.

The new code is put in qwerty_dvorak.c, which starts with an extensive
comment about why and how it works.

Fix: Docs, a stale "_MOV" was replaced with "_PAD" in the readme.md for _DDL.

* Changed image hosting.

Downtime, problems registering: resorting to my own domain.

* minor text order changes

* Some text improvements.

* Added a compile option to easily change what layer is active on startup.

This layer can be plain Dvorak or 'descrambled' Dvorak, if
QWERTY_DVORAK is not set. It can be Qwerty or Dvorak if it is set.
Just some simple #define statements.

* Added graphics for Qwerty+Dvorak, and improved documentation.

Added the whole set of layers also to qwerty_dvorak.md, because
it seemed it would get even more confusing to have a user cross
reference it between the two files.

* Some simple text improvements

* Numbers/symbols layer keys on BASE to DRAW when both pressed.

The two keys besides the space bars go to DRAW layer when pressed
simultaneously. (This is inspired on the Planck's 'adjust' layer,
pressing both 'lower' and 'raise' together.) All layers can now
(relatively) comfortably be reached. This change was necessary
because it was cumbersome to reach the DRAW layer with the right
pinky and then type with the right hand. _RAR is now not super
easy, but it is a 'rare' layer anyway.

* Added compile + flash section in readme.

* Corrected documentation: 'mouse on ... hand'

* Removed up/down arrow ⮙⮛ on _DRA and _DDD, because the hex file was too large.

Due to pulling the master repository, changing nothing in this keymap, the
code compiled as 2 bytes too large, where before it had been 2 bytes left free.
Some compile options have been created, to make it easy to cut out up/down
arrow on the 'descramble' _DDD layer, and/or the normal _DRA layer, and/or
dashes ┄┅ on the 'descramble' _DDD layer. The 'normal' layer cut out of arrows
yields little benefit, but it keeps all layers exactly the same between 'descramble'
and normal mode. For Qwerty compilation, you will want to not cut out anything,
requiring to edit the user compile options in keymap.c (top).

* Resolved size issue with QMK #defines, re-instated ⮙⮛, removed RGUI on _FUN.

Various #defines tested to reduce space, NO_ACTION_MACRO NO_ACTION_FUNCTION
worked. Therefore the cutting out of the up/down arrows was no longer
needed. The #defines to easily remove them have been left in place.

RGUI made _FUN confusing with the multi-modifiers, thus taken out. Multi-
modifiers now logically cascade without skipping a key.

* Improved image files with led colors and some tweaks.

* Updated graphics file for Dvorak in QWERTY_DVORAK compile option.

The led colors where not correct because the graphics for standard
Dvorak was being re-used.

* Fixed for re-instating arrow up/down for space.

* Activation marker on _FUN layer in documentation altered.

It looked like it was a symbol.

* Made startup layer explicit in code.

Startup layer follows 'descramble' on/off user #define setting.

* Marker for BASE activation for _PAD, _MOV: fixed.

There was a stale marker in the documentation layouts for _MOV: removed.
The same marker for _PAD was improved.

* Code optimizations suggested on pull request #8066

https://github.com/qmk/qmk_firmware/pull/8066
Some things moved to config.h, rules.mk
Changed layer_on/_off to layer_move(..)
Removed a global variable, changed literal type on a function.

Code is now a lot smaller, hence removed readme.md entry on that.
Removed "not shown" on 'descramble' leds in qwerty readme (mistake).

* Compile option to change ƒ into €.

Since it's a west european keymap, maybe someone likes the euro currency on it.
(It was not on it because I don't like ...)

* default to ƒ on keymap

* Removed print sheet for layout *.odt file.

Changing this to text/markdown seems to reduce the use of this file
to a point that it may be better to delete it. There is also the
graphics now, which might be better to print.

* Updated the seller/maintainer of the board to: The Key Dot Company LLC.

https://thekey.company/blogs/blog-updates/thekey-company-acquires-minivan

* Changed external links to website to plain text.

The markdown link is caught by the github cammo system.

* Last free spot on the map made easy to configure.

One spot was still free (Unicode _DRA/_DDD layer). This puts a #define
on top of unicode_macros.c, to make it easy for a user to put in their
own symbol.

Put placeholder 🛠 in there. That symbol is not represented in the
documentation (maybe it should, it is a nice symbol).

* Removed space saving #defines.

These became obsolete clutter, now that there is enough space thanks to
LINK_TIME_OPTIMIZATION_ENABLE.

* Added tokens to simplify compiling for 45/46 keys.

An attempt to make it easy to switch on a #define between
various hardware configurations (44, 45, 46 keys) failed.
This: #define J1 , KC_A // seems to have failed to be
recognized as a key definition.
error: error: macro "LAYOUT_command" requires 45 arguments, but only 44 given

Left in are some code tokens (J1-J4) and #defines that need
at least bulk replacement in keymap.c and optionally qwerty_dvorak.c,
to compile for such hardware configurations. It would be nice
if this could be done better.

* User can easily compile for 45, 46 hardware keys.

Added some #ifdefs around optional keys in the keymap, to allow
compiling for 45 and 46 keys. Left the earlier made code with the
J1_J2 etc. tokens, which could still be used to port the map to
a board with even more keys. This fixes earlier mentioned problem.

* Arrow cluster for 'arrow' hardware configuration.

This is a user configurations option in the keymap.c, to have
an arrow cluster around the additional key for 'arrow' hardware.
The arrow cluster is however not on the base layer (no room). The
additional key is used to switch to the _MOV layer. There it becomes
a down arrow in the arrow cluster.

To make this work with the default _MOV layer, the right hand
keys on the 2nd row where moved one spot to the left, for the 'triangle'
arrow configuration (mouse right). This is a trivial change.

There was a bunch of language improvements to the documentation,
including graphics.

The symbol 🛠 is now listed.

The program seems to be reliable, as far as used and tested.

* Correction of mark-down formatting.

_MOV layer 'arrow' cluster documentation rendered incorrectly
(attempt to add newline).

* Markdown formatting mistake correction.

Adding a newline at 'Layers (text)' chapter.

* Moving the graphics about 'arrow' to topic.

The graphic explaining what 'arrow' with arrow cluster means,
should be where that is mentioned under compile options.

* Editor token J3_J4 moved to avoid arrow cluster.

If one wants to insert a key by bulk replacing J3_J4, and has
activated the 'arrow' layout arrow cluster, this new key would
be inside the arrow cluster, hence it was moved to the left.

* Æstethics of image 'arrow' layout, arrow cluster.

Shading corrected/nicer.

* Corrected image link in readme.md

Illustration 'arrow' layout, arrow cluster.

* Fix: Toggle to BASE layer leaked. South-paw key.

When toggling to a non-BASE layer, either on the _FUN layer or
using the 'arrow' cluster for 'arrow' layout, on the BASE layer to
toggle to _MOV, the layer changed on the down-stroke, causing a
character to leak. These layer switch macros now alter layer on the
up stroke.

There seems to have been an accidental code deletion: #define MORE_key1.
This defines what the additional hardware key for 'South Paw' ('Command')
should be.

* User compile option comments easier to read.

The phrases "uncomment" and "comment out" are confusing.
Replaced by _activate_ and _remove_.

* Put user compile options back to default Minivan.

Accidentally left the compile options for number of Minivan keys
in the wrong state while git pushing.

* Rewording a comment in the user compile options.

Clearer language.

* Leds indicate Caps/Num-lock.

Leds green/blue switch depending on numlock for numbers-pad layer _PAD.
BASE layer led brightens when capslock is on.

* _PAD had the wrong period, fixed.

_PAD layer had the KC_DOT instead of KC_KP_DOT.

* Options for navigation keys arrow hardware key.

Compile options added to have a complete navigation cluster around
the additional hardware key for 'arrow' layout, both for triangle
left handed arrows and flat right handed arrows.

* Added _FUN layer in text Qwerty.

_FUN text layer was by mistake missing/deleted in the qwerty-dvorak readme.

* Added graphical visualization of all layers.

* Graphics: _RAR 'Capslock', _NSY '~' corrected.

Text representation of layers was correct, graphics corrected.

* Compile Option arrows in a vi(1) editor layout.

Vi(1) is a much loved editor, with its own peculiar arrow layout
on HJKL (as it appears in Qwerty). It seems possible some Qwerty
vi users might find it fun this way for regular arrows as well.

The 'arrow' hardware layout, compiled with arrow cluster, follows
the vi(1) arrow arrangement.

* More layer overview graphics files for the readmes.

Added a '40% x 400%' to the 3D layer overview image (top).
Added overview of all layers in a readable way (Dvorak² only).
Added a guide to show where what is similar on layers. This should help with learning.
Added a graphic showing what key activates what layer.
Added graphics that show what layer subsets are active in certain modes (Dvorak² and Qwerty/Dvorak).

Fixed mistake: _Tab_ missing in layer `_PAD` graphics file.

* 'Tab' inserted in overview graphics for _PAD layer.

* Corrected mistake in similar layer keys.

LGUI on _ACC

* Added overview graphics for Qwerty/Dvorak.

Overview of layers, similar keys on similar layers, activation.

* Compile option to change ⮘ ⮙ ⮚ ⮛ into ☐ ☒ ☑ 🗹

Layer _DRA, _DDD. Checkboxes seem handy for lists. Set default on in
keymap.c. Pointers seem rarely useful. Right arrow sometimes as a bullet
point marker. All affected graphics updated.

* First overview image correction.

Last layer is not 'symbols' due to its numbers.
Some art improvement.

* Minor tekst correction (author Minivan config).

* Short features overview and git lib fix.

* note⁴ as example

* Improvements all over the place.

The keymap is now modular dual layout. There is a common system,
and there can then be two letter/numbers layer pairs be compiled
with it, which are separately defined and documented in ./bases…
files.

Speed measuring and text size counting added.

There is an additional Unicode layer, for a total of three.

The “descramble Dvorak” layer is now just a function, as was
originally intended.

* Wrong link to Dvorak manual, stray ‛r’ character.

* Splitting the layouts so they are not pairs of 4.

The layers had been configurable only as a set of a BASE and letter
layer with another BASE and letter layer: Dvorak + Dvorak² and
Qwerty+Dvorak.

Now Dvorak, Dvorak² and Qwerty can be individually configured, to
be on either the Default or Alternate spots in the dual layout
(Dvorak² only supports Alternate, due to its “_HALF_ descramble” mode).

* Added Colemak layout.

Some tidying up of documentation wrt DEF/ALT base layer identifiers.
Fixed missing ‛:’ on the graphics for Qwerty.

* stale letter

* fix modified submodules

* removed redundant code

testing twice for non-zero

* Speed measuring precision fix.

The calculation of “int speed;” caused great loss of precision.

* Added overview of layers by key.

Makes it easier to see the associations of meanings per key.

* Dvorak descramble by key overview

Forgot to add.

* Minor readme format fiddle.

* Graphics: blank keys are grey, fix one mistake.

* Compilation as a single layout.

Layer definitions _ALT_BASE and _ALT_NSY (enum) are simply #redefined
as preprocessor numbers equal to _DEF_BASE and _DEF_NSY (see user_config.h,
lowest reference to MINIFAN_SINGLE_LAYOUT).

* Single layout compile option

See user_config.h lowest reference to MINIFAN_SINGLE_LAYOUT for the why of the how.

* RShift toggles to _RAR when held ≥ 500 ms.

“Qwerty with arrows on BASE”, will need a key to _RAR layer.
It mirrors the behavior of LShift. It is generally useful.

Removed useless user options regarding LShift layer toggle.
It will have to be _PAD.

* Layer switch graphic update per last push.

Forgot to update the default base layer switching graphic.

* Preconfigured optional ‛Command’ hold key to _RAR layer.

This is a third way to reach the _RAR layer, useful if the furthest
right key on row 1 is changed to an uncluttered BASE layer arrow.
This further prepares the way for a Qwerty layout with arrows on BASE.

* Changed ‛Command’ hardware key to TG(_RAR)

MO(_RAR) doesn't work, because it doesn't follow a change in base
layers, which happens on _RAR.

* Corrected wrong all-layers-by-key upload readme.md

* More graphics = more fun: keycap view in readme.

Preparing to integrate a number pad base layer.
Shortened hold time for right/left Shift layer toggles to 200 ms.

* Too light grey for “1470” on three layout graphics.

* Added a numbers pad Base layout option.

This numbers pad layer is in the format of a numbers pad keyboard/cluster.
It has a second layer, which is normal for all Base layers. In this case,
the second layer provides sub-/super-script versions of the numbers, in the
same layout.

* Keycap view numpad improvements.

* Graphics: forgot to cut off southpaw/arrow on two keycap views.

* Preprocessor identifier for “MIT” Planck spacebar.

Trans-minivan preprocessor statements augmented with an identifier
which might work for a Planck keyboard with two unit spacebar.

At this point, the “trans minivan” code only could make porting
to other keyboards less of a chore. It remains untested. Only
visual inspection of the preprocessing regarding the amount of
keys in the layout has been done.

* Tweak of common layout graphic impression.

This would also allow indication of a number pad.

* Improved dual numpad layer & graphics.

All numbers/symbols seem to get affected by NumLock, hence they
all needed to show that in the graphic documentation. Tab was
removed in favor of Numpad ‛=’, and comma replaced by numpad-comma.

* Committing partial job on numpad Base layers.

Hardware problem here, don't want to loose the data.

* Three issues: header file, numpad Base, Tab key.

This should complete previous unexpected commit.

① Documentation and precedent for a base layer with its own header file,
  base_NAME.h. This allows someone writing a new Base layer pair, to
  (un)set user configuration options in user_config.h.

② Numbers pad Base layer added, different variants.
  The common numbers pad also has a new optional layout (square), and can be
  removed by user configuration option (because one might already compile with
  the Base layer numbers pad)..

③ It turns out there was an easy solution to the Tab key anomaly.
  Uncluttered Tab is now located both on BON and ACC layers, on intuitive
  locations opposing Control, which is also in the right spot. Basic
  modifiers for Tab works well now.

* Graphics for Base numpad single square: correction.

Showed wrong insertion key for 'command' / 'south paw' hardware key.
…

* ‛South paw’ default GUI. Graphics. TOC user config.

Made ‛south paw’ be GUI by default.
Improved graphics appearance.
Ordered options in user_config.h, added table of contents.

* User config cleanup & added a compact alternate.

The normal user configuration, which is heavily documented and
therefore a bit unwieldy, can now optionally be done in another
file, without any documentation.

* Base graphics fix, _ACC/_NSY hold switch option

* Added a Qwerty with arrows on base.

Added a graphic in readme for Dvorak descramble (for documentation predictability).

* Put `~ on the _BON layer.

① There was no uncluttered `~ available. On Qwerty Base Arrow
  the `~ key got even more sidelined.

② Improved Qwerty Base Arrow manual.

* Option to harmonize Qwerty with Qwerty Base Arrow

Key ‛/?’ is different on Qwerty Base Arrow, which will lead
to typing arrows for people who have both kinds of Qwerty
running. This option adds this key in the same spot as where
it is on Qwerty Base Arrow, but only if Qwerty Base Arrow is
being compiled.

* See previous commit (Qwerty harmonization)

* Efficiency fix. +Workman layout.

Workman layout added.

Serious efficiency mistakes discovered and fixed:
① There was no check on Delete on Base layer, to see if another
  key had been pressed. Fixed.
② The Shifts on Base did not provide a Shift for the _BON layer
  accented characters. Fixed.

Fixing was painless, proving the code is stable and maintainable.

* Changed Tab/CTL on _ACC/_DRA, μ, T.O.C. readme.md

μ was forgotten (French), added on _ACC.
This caused Tab to get displaced and stacked with Control, which
ends up being better anyway. This also meant _ACC needed Left-Control,
and therefore _DRA needed to switch Tab and Control, because it needs
to complement _ACC with Right-Control (to be able to type all modifiers
with Tab).

➡ Overview graphics are not yet updated. _DRA and _ACC are now out of sync
  in the graphics documentation. To be fixed soon.

Chapter on language support added in readme.

Table of Contents added to readme.

* Updated all graphics (_BON/_DRA Tab/Control/μ).

Some fiddles with readme.

* Led on/off at startup, RAlt on Base option.

It is hard to believe, but the todo que seems empty!

* Minor changes in readme.

* Minor documentation improvement (RAlt/_RAR).

* Minor changes readme.

Removed “not tested yet …”, because that becomes wrong once it is tested.

* Added a blank keycaps graphic.

* Lower saturation letters Dvorak-descramble keycap.

;-]

* One key change in personal keycap graphic.

;-]

* Forgot _NSY layer in keycap qwerty basearrow

* Moved speed/count startup setting in user_config.h

Moved to chapter startup settings.

(These last commits are more like some loose ends with the last
 ongoing topics. It isn't active development, nothing new gets
 started. If QMK requests more changes, even if it is a typo,
 just let me know.)

* Travis Cl: “The LINK_TIME_OPTIMIZATION_ENABLE flag…

… has been renamed to LTO_ENABLE..  Stop.”

Changed it.

* Adds a link to external resources in readme.

A place to put gimp .xcf files if someone wants to
modify/port the keymap. Perhaps links to varieties
of Minifan on github. Maybe a video about the keymap,
and such. Stuff that doesn't belong/fit on github,
and is easy to update without pull requests.

* RGBLIGHT_ENABLE rules.mk fixed, leds off for nop

rules.mk RGBLIGHT_ENABLE can now be set to “no” without issue.

Compile option to have leds off in Default Base layer.

* Transparency bug fixed.

Default layer was not set. This remained a hidden mistake, until Qwerty
Base Arrow had a different layer hold key in one place.

* Graphics doc correction, L/Rshift toggle config

Qwerty Base Arrow fix: Keycap view showed unneeded and empty ‛South Paw’ key.
                       All layers by key shows 45 Minivan version, title said “44”.

Added user configuration options to alter what is on the short and long
toggle on Left and Right Shift.

* Improved “why this layout” in readme.

Wanted to add that numbers & symbols layer can be reached by both
thumbs. It seems quite a drawback if that is not possible, to
constantly need to hold down the same thumb, especially for programming ?
It seemed worthwhile to mention.

* Reduced size of readme, dvorak-descramble, todo.

Stuff got a bit out of hand.

* one letter typo

* renumbered readme, _fun_stay initialization

Renumbered readme chapters to start from 1 not 0. Other minor edits.
Sticky on/off for _FUN layer seemed to be unpredictable on startup.

* Letter Ñ (capital) fix.

I seem to remember messing with this recently,
must have damaged this letter :-(. Capital was missing.

* Bare bones base numpad all layer by key.

I seemed to have forgotten to hide the common layers for this version.
Which doesn't matter a whole lot but this is a bit better and as it was meant.
2021-03-04 11:07:55 -08:00
drhigsby
4d41645598 Dubba175 (#12077)
* dubba175 initial

* Following checklist

* Update readme.md

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

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

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

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

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

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

* Update keyboards/dubba175/rules.mk

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

* Update config.h

* Update keyboards/dubba175/readme.md

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

* Update keyboards/dubba175/rules.mk

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

* Update keyboards/dubba175/rules.mk

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

Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: ridingqwerty <george.g.koenig@gmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-03-04 13:15:16 -05:00
s-show
b1a8fafa62 [Docs] Japanese translation of docs/keycodes.md (#10192)
* copy 'keycodes.md'.

* Translated 'keycodes.md'.

* Fixed typo.

* Fixed typo.

* 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>

* update based on comment.

* update based on comment.

* Update docs/ja/keycodes.md

* update based on comment.

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

* update based on comment.

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

* update based on comment.

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

* Update docs/ja/keycodes.md

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

* update based on comment.

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>
2021-03-05 00:20:01 +09:00
Ryan
6461087c86 qmk generate-rules-mk: add --escape switch for makefile logic (#12101) 2021-03-04 15:09:22 +11:00
studiokestra
7aa74c227b [Keyboard] Add Studio Kestra Nue PCB (#12094) 2021-03-03 17:02:27 -08:00
Drashna Jaelre
0fd95e5db5 Remove ifdefs for Swap Hands keycodes (#12095) 2021-03-03 17:02:00 -08:00
James Young
8f30f4170c cannonkeys/atlas_alps: rename via keymaps rules.mk.txt to rules.mk (#12103)
File doesn't work without the correct filename.
2021-03-03 22:33:14 +00:00
github-actions[bot]
ad4cfffe3d Format code according to conventions (#12102)
Co-authored-by: QMK Bot <hello@qmk.fm>
2021-03-03 13:44:55 -08:00
Signynt
2dcd67ce1a [Keymap] sigma-squared (#11694) 2021-03-03 13:32:22 -08:00
individ-divided
4c3090ace9 Documentation changes SPLIT_USB_DETECT and hid_listen udev rules (#11665)
Co-authored-by: David Grundberg <david@quartz>
2021-03-03 13:31:41 -08:00
Evelien-Lillian Dekkers
fb3777f085 [Keyboard] Add Conone 65 (#11827)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-03-03 13:14:55 -08:00
labahuy
018b8e1d62 [Keyboard] Add Keyboard Rartlite (#11866) 2021-03-03 12:38:16 -08:00
Skyler Lewis
ba3c346195 Update dichotomy/alairock layout (#12013) 2021-03-03 12:37:06 -08:00
Angel Rojas
e420b3981c [Keyboard] Added VIA folder under the keymaps folder (#12021)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-03-03 12:28:10 -08:00
grant24
76cd6b662b [Keymap] Add grant24 Planck Rev 6 keymap (#12070)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-03-03 10:51:39 -08:00
Ddone
0b6ff59448 [Keymap] Add ddone's iris keymap (#12055) 2021-03-02 20:06:40 -08:00
L3af
0752b6b23c [Docs] Small spelling mistake fix in leader keys (#12087) 2021-03-02 18:59:03 -08:00
Dan Carroll
c5b0b6ff32 Remove more cruft from Lily58 default keymap (#12078)
* Remove more cruft from lily58 default keymap

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

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

* Update config.h

Remove extra newline

Co-authored-by: Drashna Jaelre <drashna@live.com>
2021-03-02 14:32:44 +00:00
Drashna Jaelre
ab3986a684 Set default for USB_SUSPEND_WAKEUP_DELAY to 0/disabled (#12081) 2021-03-02 14:31:23 +00:00
Trevor Elliott
d0108869ee [Docs] MATRIX_MASKED docs for SPLIT_HAND_MATRIX_GRID (#11974) 2021-03-01 21:29:11 -08:00
qpockets
58d043b0d0 [Keyboard] Update eggman info.json (#12074)
attempting to fix qmk configurator issues
2021-03-01 20:34:13 -08:00
Mega Mind
d918d571cc Fix the typo in ergodone 80 layout (#12075) 2021-03-02 14:09:35 +11:00
Nick Brassel
75ab48958c Revert "Fixing K-type RGB lighting (#11551)" (#12065)
This reverts commit e6f7da4036.
2021-03-02 12:18:07 +11:00
Dan Carroll
3200007a69 Fixing adjust layer issue with the lily58 default keymap (#12052)
* Fix triggering of adjust layer in default lily58 keymap

* Remove unused extern

* Swap raise/lower in update_tri_layer_state call to match recommendation in PR checklist
2021-03-01 19:56:42 +00:00
Quentin
7132526dd2 Bastardkb added keyboard and renaming (#11887)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2021-03-01 16:03:55 +11:00
Joel Challis
f8266a228c Migrate make_dfu_header to CLI (#12061)
* Migrate make_dfu_header to CLI

* lint fixes

* Update lib/python/qmk/cli/generate/dfu_header.py

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

* Rename object

Co-authored-by: Ryan <fauxpark@gmail.com>
2021-02-28 21:25:09 +00:00
Joel Challis
59c7deab09 Fix generated file output while target exists (#12062) 2021-02-28 20:19:07 +00:00
Ryan
1a7f2c8f45 Extract sendstring into its own compilation unit (#12060)
* Extract sendstring into its own compilation unit

* License headers?

* Put this include in the header
2021-03-01 07:11:39 +11:00
Joel Challis
e6905805bb Remove unused keymap_config from ctrl keymaps (#12058) 2021-02-28 16:15:41 +00:00
Fabián González Martín
90c7ae70c6 Modified tmk_core/rules.mk to avoid linking errors (#10728)
* Modified tmk_core/rules.mk to avoid linking errors

Added -fcommon flag to avoid linking errors due to multiple variable definitions. Though this is neither a definitive nor good solution, proper changes and use of extern  keyword to avoid those multiple definitions must be made

* Comment updated
2021-02-28 08:01:16 -08:00
Anomalocaridid
ef49a9243b Implement PLOOPY_DRAGSCROLL_INVERT option, which inverts the ploopy trackball's DRAG_SCROLL's vertical scroll direction. (#12032) 2021-02-28 17:16:04 +11:00
Albert Y
db7c8562ed Add RGB Matrix support for Preonic rev3 (#12008)
* Add g_led_config for RGB Matrix support

* Corrected indentation

* Undo indentation on existing rev3.c code

Co-authored-by: filterpaper <filterpaper@localhost>
2021-02-28 17:15:38 +11:00
James Young
51eac99ce4 Kiko's Lab KL-90: Configurator bugfix (#11993)
* human-friendly formatting

* correct key order

* correct layout macro name
2021-02-28 17:13:29 +11:00
James Young
c3f83b6761 Keycapsss Kimiko rev1: Configurator bugfix (#11992)
* human-friendly formatting

* fix key positioning and order
2021-02-28 17:12:51 +11:00
unrelentingtech
ce75f48acb [Keyboard] Update spiderisland/split78 (#11990)
* [Keyboard] spiderisland/split78: add MCP23018 reset code

Now, communication with the right side gets re-established
after unplugging it and plugging it back in.

* [Keyboard] spiderisland/split78: configure debouncing

I've been experiencing particularly bad bounce on the 'A' key.

Also, update maintainer github username
2021-02-28 17:11:52 +11:00
jackytrabbit
9fd5c6f619 Update lazydesigners/the40 (#11989)
* Update the40.h

Update the40.h to fix keymap

* Add VIA support for lazydesigners/the40

Add VIA support for lazydesigners/the40

* Update keymap.c
2021-02-28 17:11:06 +11:00
James Young
f41e5ec928 Compilation fixes for handwired/concertina/64key (#11987)
* concatenate config.h to 64key directory

* move rules.mk to 64key directory

This commit makes the firmware actually compile.

* insert complete rules.mk contents

Conforms the file to QMK's template.

* move info.json to 64key directory

* remove concertina.h

This file no longer serves a purpose now that everything is in the 64key directory.

* complete 64key readme.md

Conforms the file more to QMK's template.
2021-02-28 17:10:26 +11:00
gazeddy
cd12fe86d3 New Variants of Console Keyboard (#11973)
* initial push of console keyboard variants

* update readme

* fixed compilation issue

* update Readme

* added 18 and 27 key variants

* missed commas

* update info.json

* added readme

* correct info.json

* correct info.json

* info.json again

* fixed keymap.c
2021-02-28 17:09:41 +11:00
Daniel Shields
d6fb8f12c6 [Keymap] Initial commit for keyboardio/atreus/dshields keymap. (#11946)
Incorporating changes suggested during pull request review.

Co-authored-by: Daniel Shields <dshields@cboe.com>
2021-02-28 17:07:55 +11:00
datafx
371fb853ee Fix incorrect key for LALT and add modifiers to LED matrix (#11984)
Co-authored-by: datafx <digitalfx@phreak.tech>
2021-02-28 17:06:38 +11:00
Xelus22
a0f532072d [Keyboard] Dawn60 Rev1 RGB matrix port (#11970)
* refactor

* layout update

* fix mods config

* lto enable

* add eeprom

* refactor

* final refactor
2021-02-28 17:04:46 +11:00
Aeonstrife
3405efe934 Add Potato65 PCB (#11956)
* Make initial set of files

* Update readme.md
2021-02-28 17:03:49 +11:00
MechMerlin
af2e1f4e4d Banana Split VIA Support (#11944)
* add VIA keymap for bananasplit

* refactor code to new standards
2021-02-28 17:02:34 +11:00
knaruo
4fe8c473fd Added support for barracuda keyboard (#11888)
- Added default and via keymaps
2021-02-28 17:01:56 +11:00
MajorKoos
b2a0e98a60 OddForge VE.A (#11875)
* VEA Support

* Update LEDs to use QMK methods

* Enable Backlight

* Update Vendor ID

* Updates to enable split RGB

* Update readme

* Update to split RGB

* remove unnecessary reference

* Knight animation starts at the back

* remove hardcoded variable

Co-authored-by: Major Koos <MajorKoos@noreply.users.github.com>
2021-02-28 16:57:04 +11:00
Andy Freeland
74372424ae [Keyboard] Add 'LAYOUT_65_ansi_split_bs' support to KBDfans KBD67 rev2 (#11739)
* [Keyboard] Add 'LAYOUT_65_ansi_split_bs' support to KBDfans KBD67 rev2

This is already supported by VIA.

* [Keymap] Fix kbd67 catrielmuller_camilad keymap

* [Keyboard] Add my keymap for KBDfans KBD67 rev2 using 'LAYOUT_65_ansi_split_bs'
2021-02-28 16:50:54 +11:00
Mario Medina
4a7a9e9951 Satisfaction 75 turn off backlight on suspend, restore config on wakeup (#11774)
* Satisfaction 75 turn off backlight on suspend, restore config on wakeup

* Disable SLEEP_LED_ENABLE because it has no effect
2021-02-28 16:50:01 +11:00
NightlyBoards
81fd005af9 Added n60_s folder (#11455)
* Create Alter folder

* Revert "Create Alter folder"

This reverts commit 361103b821.

* Added n60_s folder

* Fixed the url of the image in the readme

* Updated readme

* Updated readme

* Updated readme
2021-02-28 16:43:58 +11:00
precondition
2395069b0b [Docs] New section to modifier docs: Checking Modifier State (#10550)
* Added new section to docs: Checking Modifier State

* Added id anchors to all headers in modifiers docs

* Added a Wikipedia link to bitwise operators and...

crosslinked to the QMK macro docs.

* Added an explanation on the format of mod bitmask

* Added .md extension to hyperlinks to macros docs

* Corrected mod mask order and changed notation

* Documented add_oneshot_mods and del_oneshot_mods

* Mentioned modifier checks in the macro docs

* Explained strict modifier checking

i.e. using `get_mods() & MOD_MASK == MOD_MASK` instead of simply
`get_mods() & MOD_MASK`

* Added (un)register_mods to the docs

* Put left term of comparison in parens
2021-02-28 16:42:17 +11:00
Paweł Kiszteliński
032dfddb6b fix: ryloo studio m0110 layout 60 ansi fixed (#11685) 2021-02-28 16:38:51 +11:00
Andrew-Fahmy
e6f7da4036 Fixing K-type RGB lighting (#11551)
* initial rgb driver fix

* added underglow LEDs and fixed typo in RGB locations

* removed test code

* added my key maps

* updated rgb keymap to work with changes

* refactored my code to make it more maintainable and updated keymaps.

* added GPL licence
2021-02-28 16:38:13 +11:00
haierwangwei2005
7190971b44 17 key Panasonic rotary encoder BLE pad (#11659)
* 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

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

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

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

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

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

* Update keyboards/10bleoledhub/config.h

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

* Update keyboards/10bleoledhub/config.h

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

* Update keyboards/10bleoledhub/10bleoledhub.h

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

* Create readme.md

* Create rules.mk

* Create latin47ble.h

* Create latin47ble.c

* Create info.json

* Create config.h

* Create keymap.c

* Create rules.mk

* Create keymap.c

* Update keymap.c

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

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

* Update keymap.c

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

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

* Update keyboards/latin47ble/rules.mk

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

* Update keyboards/latin47ble/rules.mk

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

* Update keyboards/latin47ble/rules.mk

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

* Update latin47ble.h

* Update latin47ble.c

* Update latin47ble.h

* Update latin47ble.c

* Update keymap.c

* Update keymap.c

* Update config.h

* Update keyboards/latin47ble/config.h

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

* Update keyboards/latin47ble/config.h

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

* Update keyboards/latin47ble/config.h

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

* Update keyboards/latin47ble/config.h

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

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

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

* Update keyboards/latin47ble/rules.mk

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

* Delete info.json

* Update readme.md

* Update keymap.c

* Update keymap.c

* Update keyboards/latin47ble/config.h

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

* Update keyboards/latin47ble/config.h

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

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

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

* Update keyboards/latin47ble/latin47ble.c

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

* Update keyboards/latin47ble/latin47ble.h

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

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

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

* Update keymap.c

* Update keymap.c

* Update latin47ble.h

* Update keymap.c

* Update keymap.c

* Update keymap.c

* Update keymap.c

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

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

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

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

* Update keyboards/latin47ble/latin47ble.h

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

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

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

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

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

* Update keyboards/latin47ble/rules.mk

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

* Update config.h

* Create readme.md

* Add files via upload

* Create glcdfont.c

* Create keymap.c

* Create keymap.c

* Create rules.mk

* Update config.h

* Update config.h

* Update config.h

* Update config.h

* Update config.h

* Update latinpadble.c

* Update latinpadble.h

* Update config.h

* Update config.h

* Update keymap.c

* Update config.h

* Update rules.mk

* Update config.h

* Update rules.mk

* Update rules.mk

* Update config.h

* Update keyboards/latinpadble/config.h

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

* Update keyboards/latinpadble/config.h

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

* Update keymap.c

* Update keymap.c

* Update glcdfont.c

Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2021-02-28 16:36:04 +11:00
ridingqwerty
6b1170cb97 Onekey keymap: quine (#10732) 2021-02-28 16:31:40 +11:00
Steven Nguyen
ec06ffe294 Add keyboard: 7c8/Framework (#11593)
* Add 7c8/framework keyboard

* Update VIA framework.json definition

* Code cleanup and styling to conform to QMK style guide

* Code cleanup and moving some keymap definitions to a 'steven' keymap in order to create a cleaner default keymap for other users

* Update keyboards/7c8/framework/config.h

Remove #define DESCRIPTION

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

* Update keyboards/7c8/framework/config.h

remove #define UNUSED_PINS

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

* Update keyboards/7c8/framework/framework.h

Change layout name to existing layout name.

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

* Update keyboards/7c8/framework/framework.h

Change layout name to existing layout name.

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

* Update keyboards/7c8/framework/framework.h

Change layout name to existing layout name.

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

* Update keyboards/7c8/framework/keymaps/via/keymap.c

change biton32 to get_highest_layer

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

* change vendor ID from 0x07c8 to 0x77c8, which is unused

* delete VIA .json definition from via keymap folder

* Change framework_grid to LAYOUT_ortho_5x12 in default keymap.c

* remove framework.json from 'steven' keymap folder

* cleanup

* Update keyboards/7c8/framework/config.h

0x77c8 -> 0x77C8

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

Co-authored-by: Drashna Jaelre <drashna@live.com>
2021-02-28 16:30:28 +11:00
Josh Johnson
03ea478f20 Hub16 QMK configurator support + various bugfixes (#11496)
* qmk configurator support + various bugfixes

* Update keyboards/hub16/rules.mk

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

Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Nick Brassel <nick@tzarc.org>
2021-02-28 16:03:49 +11:00
Max Audron
e4d3ff2374 Add support for using podman to util/docker_build.sh (#10819)
* add podman support to docker_build.sh script

* break out runtime into the RUNTIME variable
* allows RUNTIME to be set by the user
* decides on docker or podman if docker isn't avaible
* rewrote check for docker-machine to account only for docker runtime
* put --user arg into a variable only to be used with docker
  this is not needed with podman as podman maps the containers root id
  to the users id.

* add podman to getting_started_docker documentation
2021-02-28 15:59:42 +11:00
MRAAGH
bcbcb3d107 Add suggestion for indirect unicode input on Linux (#10854)
* Add suggestion for indirect unicode input on Linux

I have used this approach myself with great success, and it seems to be the only good solution that doesn't involve IBus.

* Elaborate on keyboard layout on Linux

This should be enough to allow people to figure out how to add custom characters to a Linux keyboard layout.
2021-02-28 15:53:40 +11:00
Isaac Elenbaas
765d8a33dd Fixes #4072, #6214. Revision of #156 to clear before AS/TD. (#9941) 2021-02-28 15:48:19 +11:00
Zach White
58e733b5a0 remove keyboard_folder from info.json 2021-02-27 16:17:12 -08:00
Zach White
0828d0f5c7 Fix compile errors (#12048)
* fix compile errors

* fix broken json files
2021-02-27 23:25:41 +00:00
1035 changed files with 46006 additions and 5612 deletions

View File

@@ -25,18 +25,13 @@ jobs:
- name: Generate API Data
run: qmk generate-api
- name: Install rsync
run: |
apt-get update && apt-get install -y rsync
- name: Upload API Data
uses: JamesIves/github-pages-deploy-action@3.7.1
uses: jakejarvis/s3-sync-action@master
with:
ACCESS_TOKEN: ${{ secrets.API_TOKEN_GITHUB }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
BRANCH: main
FOLDER: api_data/v1
CLEAN: true
GIT_CONFIG_EMAIL: hello@qmk.fm
REPOSITORY_NAME: qmk/qmk_keyboards
TARGET_FOLDER: v1
args: --acl public-read --follow-symlinks --delete
env:
AWS_S3_BUCKET: ${{ secrets.API_SPACE_MASTER }}
AWS_ACCESS_KEY_ID: ${{ secrets.SPACES_ACCESS_KEY }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.SPACES_SECRET_KEY }}
AWS_S3_ENDPOINT: https://nyc3.digitaloceanspaces.com
SOURCE_DIR: 'api_data'

View File

@@ -25,18 +25,13 @@ jobs:
- name: Generate API Data
run: qmk generate-api
- name: Install rsync
run: |
apt-get update && apt-get install -y rsync
- name: Upload API Data
uses: JamesIves/github-pages-deploy-action@3.7.1
uses: jakejarvis/s3-sync-action@master
with:
ACCESS_TOKEN: ${{ secrets.API_TOKEN_GITHUB }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
BRANCH: main
FOLDER: api_data/v1
CLEAN: true
GIT_CONFIG_EMAIL: hello@qmk.fm
REPOSITORY_NAME: qmk/qmk_keyboards_devel
TARGET_FOLDER: v1
args: --acl public-read --follow-symlinks --delete
env:
AWS_S3_BUCKET: ${{ secrets.API_SPACE_DEVELOP }}
AWS_ACCESS_KEY_ID: ${{ secrets.SPACES_ACCESS_KEY }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.SPACES_SECRET_KEY }}
AWS_S3_ENDPOINT: https://nyc3.digitaloceanspaces.com
SOURCE_DIR: 'api_data'

View File

@@ -97,7 +97,7 @@ MAIN_KEYMAP_PATH_4 := $(KEYBOARD_PATH_4)/keymaps/$(KEYMAP)
MAIN_KEYMAP_PATH_5 := $(KEYBOARD_PATH_5)/keymaps/$(KEYMAP)
# Pull in rules from info.json
INFO_RULES_MK = $(shell bin/qmk generate-rules-mk --quiet --keyboard $(KEYBOARD) --output $(KEYBOARD_OUTPUT)/src/rules.mk)
INFO_RULES_MK = $(shell bin/qmk generate-rules-mk --quiet --escape --keyboard $(KEYBOARD) --output $(KEYBOARD_OUTPUT)/src/rules.mk)
include $(INFO_RULES_MK)
# Check for keymap.json first, so we can regenerate keymap.c

View File

@@ -17,6 +17,7 @@ SERIAL_PATH := $(QUANTUM_PATH)/serial_link
QUANTUM_SRC += \
$(QUANTUM_DIR)/quantum.c \
$(QUANTUM_DIR)/send_string.c \
$(QUANTUM_DIR)/bitwise.c \
$(QUANTUM_DIR)/led.c \
$(QUANTUM_DIR)/keymap_common.c \

View File

@@ -38,5 +38,9 @@
"RGBLIGHT_SPLIT": {"info_key": "rgblight.split", "value_type": "bool"},
"PRODUCT": {"info_key": "keyboard_folder", "to_json": false},
"PRODUCT_ID": {"info_key": "usb.pid", "value_type": "hex"},
"VENDOR_ID": {"info_key": "usb.vid", "value_type": "hex"}
"VENDOR_ID": {"info_key": "usb.vid", "value_type": "hex"},
"QMK_ESC_OUTPUT": {"info_key": "qmk_lufa_bootloader.esc_output"},
"QMK_ESC_INPUT": {"info_key": "qmk_lufa_bootloader.esc_input"},
"QMK_LED": {"info_key": "qmk_lufa_bootloader.led"},
"QMK_SPEAKER": {"info_key": "qmk_lufa_bootloader.speaker"}
}

View File

@@ -88,7 +88,7 @@
"oneOf": [
{
"type": "string",
"enum": ["LAYOUT"]
"enum": ["LAYOUT", "LAYOUT_planck_1x2uC"]
},
{
"type": "string",
@@ -299,6 +299,28 @@
"pattern": "^[0-9A-F]x[0-9A-F][0-9A-F][0-9A-F][0-9A-F]"
}
}
},
"qmk_lufa_bootloader": {
"type": "object",
"additionalProperties": false,
"properties": {
"esc_output": {
"type": "string",
"pattern": "^[A-K]\\d{1,2}$"
},
"esc_input": {
"type": "string",
"pattern": "^[A-K]\\d{1,2}$"
},
"led": {
"type": "string",
"pattern": "^[A-K]\\d{1,2}$"
},
"speaker": {
"type": "string",
"pattern": "^[A-K]\\d{1,2}$"
}
}
}
}
}

View File

@@ -109,6 +109,19 @@ If you can't get this 'Listening:' message try building with `CONSOLE_ENABLE=yes
You may need privileges to access the device an OS like Linux. Try `sudo hid_listen`.
On many Linux distros you can avoid having to run hid_listen as root
by creating a file called `/etc/udev/rules.d/70-hid-listen.rules` with
the following content:
```
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="abcd", ATTRS{idProduct}=="def1", TAG+="uaccess", RUN{builtin}+="uaccess"
```
Replace abcd and def1 with your keyboard's vendor and product id,
letters must be lowercase. The `RUN{builtin}+="uaccess"` part is only
needed for older distros.
## Can't Get Message on Console
Check:
- *hid_listen* finds your device. See above.

View File

@@ -23,6 +23,141 @@ These allow you to combine a modifier with a keycode. When pressed, the keydown
You can also chain them, for example `LCTL(LALT(KC_DEL))` or `C(A(KC_DEL))` makes a key that sends Control+Alt+Delete with a single keypress.
# Checking Modifier State :id=checking-modifier-state
The current modifier state can mainly be accessed with two functions: `get_mods()` for normal modifiers and modtaps and `get_oneshot_mods()` for one-shot modifiers (unless they're held, in which case they act like normal modifier keys).
The presence of one or more specific modifiers in the current modifier state can be detected by ANDing the modifier state with a mod mask corresponding to the set of modifiers you want to match for. The reason why bitwise operators are used is that the modifier state is stored as a single byte in the format (GASC)<sub>R</sub>(GASC)<sub>L</sub>.
Thus, to give an example, `01000010` would be the internal representation of LShift+RAlt.
For more information on bitwise operators in C, click [here](https://en.wikipedia.org/wiki/Bitwise_operations_in_C) to open the Wikipedia page on the topic.
In practice, this means that you can check whether a given modifier is active with `get_mods() & MOD_BIT(KC_<modifier>)` (see the [list of modifier keycodes](keycodes_basic.md#modifiers)) or with `get_mods() & MOD_MASK_<modifier>` if the difference between left and right hand modifiers is not important and you want to match both. Same thing can be done for one-shot modifiers if you replace `get_mods()` with `get_oneshot_mods()`.
To check that *only* a specific set of mods is active at a time, AND the modifier state and your desired mod mask as explained above and compare the result to the mod mask itself: `get_mods() & <mod mask> == <mod mask>`.
For example, let's say you want to trigger a piece of custom code if one-shot left control and one-shot left shift are on but every other one-shot mods are off. To do so, you can compose the desired mod mask by combining the mod bits for left control and shift with `(MOD_BIT(KC_LCTL) | MOD_BIT(KC_LSFT))` and then plug it in: `get_oneshot_mods & (MOD_BIT(KC_LCTL) | MOD_BIT(KC_LSFT)) == (MOD_BIT(KC_LCTL) | MOD_BIT(KC_LSFT))`. Using `MOD_MASK_CS` instead for the mod bitmask would have forced you to press four modifier keys (both versions of control and shift) to fulfill the condition.
The full list of mod masks is as follows:
| Mod Mask Name | Matching Modifiers |
|--------------------|------------------------------------------------|
| `MOD_MASK_CTRL` | LCTRL , RCTRL |
| `MOD_MASK_SHIFT` | LSHIFT , RSHIFT |
| `MOD_MASK_ALT` | LALT , RALT |
| `MOD_MASK_GUI` | LGUI , RGUI |
| `MOD_MASK_CS` | CTRL , SHIFT |
| `MOD_MASK_CA` | (L/R)CTRL , (L/R)ALT |
| `MOD_MASK_CG` | (L/R)CTRL , (L/R)GUI |
| `MOD_MASK_SA` | (L/R)SHIFT , (L/R)ALT |
| `MOD_MASK_SG` | (L/R)SHIFT , (L/R)GUI |
| `MOD_MASK_AG` | (L/R)ALT , (L/R)GUI |
| `MOD_MASK_CSA` | (L/R)CTRL , (L/R)SHIFT , (L/R)ALT |
| `MOD_MASK_CSG` | (L/R)CTRL , (L/R)SHIFT , (L/R)GUI |
| `MOD_MASK_CAG` | (L/R)CTRL , (L/R)ALT , (L/R)GUI |
| `MOD_MASK_SAG` | (L/R)SHIFT , (L/R)ALT , (L/R)GUI |
| `MOD_MASK_CSAG` | (L/R)CTRL , (L/R)SHIFT , (L/R)ALT , (L/R)GUI |
Aside from accessing the currently active modifiers using `get_mods()`, there exists some other functions you can use to modify the modifier state, where the `mods` argument refers to the modifiers bitmask.
* `add_mods(mods)`: Enable `mods` without affecting any other modifiers
* `register_mods(mods)`: Like `add_mods` but send a keyboard report immediately.
* `del_mods(mods)`: Disable `mods` without affecting any other modifiers
* `unregister_mods(mods)`: Like `del_mods` but send a keyboard report immediately.
* `set_mods(mods)`: Overwrite current modifier state with `mods`
* `clear_mods()`: Reset the modifier state by disabling all modifiers
Similarly, in addition to `get_oneshot_mods()`, there also exists these functions for one-shot mods:
* `add_oneshot_mods(mods)`: Enable `mods` without affecting any other one-shot modifiers
* `del_oneshot_mods(mods)`: Disable `mods` without affecting any other one-shot modifiers
* `set_oneshot_mods(mods)`: Overwrite current one-shot modifier state with `mods`
* `clear_oneshot_mods()`: Reset the one-shot modifier state by disabling all one-shot modifiers
## Examples :id=examples
The following examples use [advanced macro functions](feature_macros.md#advanced-macro-functions) which you can read more about in the [documentation page on macros](feature_macros.md).
### Alt + Escape for Alt + Tab :id=alt-escape-for-alt-tab
Simple example where chording Left Alt with `KC_ESC` makes it behave like `KC_TAB` for alt-tabbing between applications. This example strictly checks if only Left Alt is active, meaning you can't do Alt+Shift+Esc to switch between applications in reverse order. Also keep in mind that this removes the ability to trigger the actual Alt+Escape keyboard shortcut, though it keeps the ability to do AltGr+Escape.
```c
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case KC_ESC:
// Detect the activation of only Left Alt
if ((get_mods() & MOD_BIT(KC_LALT)) == MOD_BIT(KC_LALT)) {
if (record->event.pressed) {
// No need to register KC_LALT because it's already active.
// The Alt modifier will apply on this KC_TAB.
register_code(KC_TAB);
} else {
unregister_code(KC_TAB);
}
// Do not let QMK process the keycode further
return false;
}
// Else, let QMK process the KC_ESC keycode as usual
return true;
}
return true;
};
```
### Shift + Backspace for Delete :id=shift-backspace-for-delete
Advanced example where the original behaviour of shift is cancelled when chorded with `KC_BSPC` and is instead fully replaced by `KC_DEL`. Two main variables are created to make this work well: `mod_state` and `delkey_registered`. The first one stores the modifier state and is used to restore it after registering `KC_DEL`. The second variable is a boolean variable (true or false) which keeps track of the status of `KC_DEL` to manage the release of the whole Backspace/Delete key correctly.
As opposed to the previous example, this doesn't use strict modifier checking. Pressing `KC_BSPC` while one or two shifts are active is enough to trigger this custom code, regardless of the state of other modifiers. That approach offers some perks: Ctrl+Shift+Backspace lets us delete the next word (Ctrl+Delete) and Ctrl+Alt+Shift+Backspace lets us execute the Ctrl+Alt+Del keyboard shortcut.
```c
// Initialize variable holding the binary
// representation of active modifiers.
uint8_t mod_state;
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
// Store the current modifier state in the variable for later reference
mod_state = get_mods();
switch (keycode) {
case KC_BSPC:
{
// Initialize a boolean variable that keeps track
// of the delete key status: registered or not?
static bool delkey_registered;
if (record->event.pressed) {
// Detect the activation of either shift keys
if (mod_state & MOD_MASK_SHIFT) {
// First temporarily canceling both shifts so that
// shift isn't applied to the KC_DEL keycode
del_mods(MOD_MASK_SHIFT);
register_code(KC_DEL);
// Update the boolean variable to reflect the status of KC_DEL
delkey_registered = true;
// Reapplying modifier state so that the held shift key(s)
// still work even after having tapped the Backspace/Delete key.
set_mods(mod_state);
return false;
}
} else { // on release of KC_BSPC
// In case KC_DEL is still being sent even after the release of KC_BSPC
if (delkey_registered) {
unregister_code(KC_DEL);
delkey_registered = false;
return false;
}
}
// Let QMK process the KC_BSPC keycode as usual outside of shift
return true;
}
}
return true;
};
```
# Legacy Content :id=legacy-content
This page used to encompass a large set of features. We have moved many sections that used to be part of this page to their own pages. Everything below this point is simply a redirect so that people following old links on the web find what they're looking for.

View File

@@ -92,7 +92,7 @@ void leader_start(void) {
}
void leader_end(void) {
// sequence ended (no success/failuer detection)
// sequence ended (no success/failure detection)
}
```

View File

@@ -209,7 +209,7 @@ SEND_STRING(".."SS_TAP(X_END));
There are some functions you may find useful in macro-writing. Keep in mind that while you can write some fairly advanced code within a macro, if your functionality gets too complex you may want to define a custom keycode instead. Macros are meant to be simple.
?> You can also use the functions described in [Useful functions](ref_functions.md) for additional functionality. For example `reset_keyboard()` allows you to reset the keyboard as part of a macro.
?> You can also use the functions described in [Useful function](ref_functions.md) and [Checking modifier state](feature_advanced_keycodes#checking-modifier-state) for additional functionality. For example, `reset_keyboard()` allows you to reset the keyboard as part of a macro and `get_mods() & MOD_MASK_SHIFT` lets you check for the existence of active shift modifiers.
### `record->event.pressed`

View File

@@ -281,8 +281,10 @@ You can disable a single effect by defining `DISABLE_[EFFECT_NAME]` in your `con
|Define |Description |
|-------------------------------------------------------|-----------------------------------------------|
|`#define DISABLE_RGB_MATRIX_SOLID_COLOR` |Disables `RGB_MATRIX_SOLID_COLOR` |
|`#define DISABLE_RGB_MATRIX_ALPHAS_MODS` |Disables `RGB_MATRIX_ALPHAS_MODS` |
|`#define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN` |Disables `RGB_MATRIX_GRADIENT_UP_DOWN` |
|`#define DISABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT` |Disables `MATRIX_GRADIENT_LEFT_RIGHT` |
|`#define DISABLE_RGB_MATRIX_BREATHING` |Disables `RGB_MATRIX_BREATHING` |
|`#define DISABLE_RGB_MATRIX_BAND_SAT` |Disables `RGB_MATRIX_BAND_SAT` |
|`#define DISABLE_RGB_MATRIX_BAND_VAL` |Disables `RGB_MATRIX_BAND_VAL` |
@@ -293,20 +295,20 @@ You can disable a single effect by defining `DISABLE_[EFFECT_NAME]` in your `con
|`#define DISABLE_RGB_MATRIX_CYCLE_ALL` |Disables `RGB_MATRIX_CYCLE_ALL` |
|`#define DISABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT` |Disables `RGB_MATRIX_CYCLE_LEFT_RIGHT` |
|`#define DISABLE_RGB_MATRIX_CYCLE_UP_DOWN` |Disables `RGB_MATRIX_CYCLE_UP_DOWN` |
|`#define DISABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON` |Disables `RGB_MATRIX_RAINBOW_MOVING_CHEVRON` |
|`#define DISABLE_RGB_MATRIX_CYCLE_OUT_IN` |Disables `RGB_MATRIX_CYCLE_OUT_IN` |
|`#define DISABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL` |Disables `RGB_MATRIX_CYCLE_OUT_IN_DUAL` |
|`#define DISABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON` |Disables `RGB_MATRIX_RAINBOW_MOVING_CHEVRON` |
|`#define DISABLE_RGB_MATRIX_DUAL_BEACON` |Disables `RGB_MATRIX_DUAL_BEACON` |
|`#define DISABLE_RGB_MATRIX_CYCLE_PINWHEEL` |Disables `RGB_MATRIX_CYCLE_PINWHEEL` |
|`#define DISABLE_RGB_MATRIX_CYCLE_SPIRAL` |Disables `RGB_MATRIX_CYCLE_SPIRAL` |
|`#define DISABLE_RGB_MATRIX_DUAL_BEACON` |Disables `RGB_MATRIX_DUAL_BEACON` |
|`#define DISABLE_RGB_MATRIX_RAINBOW_BEACON` |Disables `RGB_MATRIX_RAINBOW_BEACON` |
|`#define DISABLE_RGB_MATRIX_RAINBOW_PINWHEELS` |Disables `RGB_MATRIX_RAINBOW_PINWHEELS` |
|`#define DISABLE_RGB_MATRIX_RAINDROPS` |Disables `RGB_MATRIX_RAINDROPS` |
|`#define DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS` |Disables `RGB_MATRIX_JELLYBEAN_RAINDROPS` |
|`#define DISABLE_RGB_MATRIX_TYPING_HEATMAP` |Disables `RGB_MATRIX_TYPING_HEATMAP` |
|`#define DISABLE_RGB_MATRIX_DIGITAL_RAIN` |Disables `RGB_MATRIX_DIGITAL_RAIN` |
|`#define DISABLE_RGB_MATRIX_SOLID_REACTIVE` |Disables `RGB_MATRIX_SOLID_REACTIVE` |
|`#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE` |Disables `RGB_MATRIX_SOLID_REACTIVE_SIMPLE` |
|`#define DISABLE_RGB_MATRIX_SOLID_REACTIVE` |Disables `RGB_MATRIX_SOLID_REACTIVE` |
|`#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE` |Disables `RGB_MATRIX_SOLID_REACTIVE_WIDE` |
|`#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE` |Disables `RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE` |
|`#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS` |Disables `RGB_MATRIX_SOLID_REACTIVE_CROSS` |

View File

@@ -109,6 +109,10 @@ Normally, when a diode is connected to an intersection, it is judged to be left.
#define SPLIT_HAND_MATRIX_GRID_LOW_IS_RIGHT
```
Note that adding a diode at a previously unused intersection will effectively tell the firmware that there is a key held down at that point. You can instruct qmk to ignore that intersection by defining `MATRIX_MASKED` and then defining a `matrix_row_t matrix_mask[MATRIX_ROWS]` array in your keyboard config. Each bit of a single value (starting form the least-significant bit) is used to tell qmk whether or not to pay attention to key presses at that intersection.
While `MATRIX_MASKED` isn't necessary to use `SPLIT_HAND_MATRIX_GRID` successfully, without it you may experience issues trying to suspend your computer with your keyboard attached as the matrix will always report at least one key-press.
#### 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.
@@ -239,7 +243,12 @@ This sets how many LEDs are directly connected to each controller. The first nu
```c
#define SPLIT_USB_DETECT
```
This option changes the startup behavior to detect an active USB connection when delegating master/slave. If this operation times out, then the half is assume to be a slave. This is the default behavior for ARM, and required for AVR Teensy boards (due to hardware limitations).
Enabling this option changes the startup behavior to listen for an active USB communication to delegate which part is master and which is slave. With this option enabled and theres's USB communication, then that half assumes it is the master, otherwise it assumes it is the slave.
Without this option, the master is the half that can detect voltage on the physical USB connection (VBUS detection).
Enabled by default on ChibiOS/ARM.
?> This setting will stop the ability to demo using battery packs.
@@ -255,9 +264,13 @@ This sets the poll frequency when detecting master/slave when using `SPLIT_USB_D
## Hardware Considerations and Mods
While most any Pro Micro can be used, micro controllers like the AVR Teensys and most (if not all) ARM boards require the Split USB Detect.
Master/slave delegation is made either by detecting voltage on VBUS connection or waiting for USB communication (`SPLIT_USB_DETECT`). Pro Micro boards can use VBUS detection out of the box and be used with or without `SPLIT_USB_DETECT`.
However, with the Teensy 2.0 and Teensy++ 2.0, there is a simple hardware mod that you can perform to add VBUS detection, so you don't need the Split USB detection option.
Many ARM boards, but not all, do not support VBUS detection. Because it is common that ARM boards lack VBUS detection, `SPLIT_USB_DETECT` is automatically defined on ARM targets (technically when ChibiOS is targetted).
### Teensy boards
Teensy boards lack VBUS detection out of the box and must have `SPLIT_USB_DETECT` defined. With the Teensy 2.0 and Teensy++ 2.0, there is a simple hardware mod that you can perform to add VBUS detection, so you don't need the `SPLIT_USB_DETECT` option.
You'll only need a few things:

View File

@@ -126,6 +126,8 @@ The following input modes are available:
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 a different keycode. This might be required for IBus versions ≥1.5.15, where Ctrl+Shift+U behavior is consolidated into Ctrl+Shift+E.
Users who wish support in non-GTK apps without IBus may need to resort to a more indirect method, such as creating a custom keyboard layout ([more on this method](#custom-linux-layout)).
* **`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` 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.
@@ -270,3 +272,22 @@ AutoHotkey inserts the Text right of `Send, ` when this combination is pressed.
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).
## Software keyboard layout on Linux :id=custom-linux-layout
This method does not require Unicode support on the keyboard itself but instead uses a custom keyboard layout for Xorg. This is how special characters are inserted by regular keyboards. This does not require IBus and works in practically all software. Help on creating a custom layout can be found [here](https://www.linux.com/news/creating-custom-keyboard-layouts-x11-using-xkb/), [here](http://karols.github.io/blog/2013/11/18/creating-custom-keyboard-layouts-for-linux/) and [here](https://wiki.archlinux.org/index.php/X_keyboard_extension). An example of how you could edit the `us` layout to gain 🤣 on `RALT(KC_R)`:
Edit the keyboard layout file `/usr/share/X11/xkb/symbols/us`.
Inside `xkb_symbols "basic" {`, add `include "level3(ralt_switch)"`.
Find the line defining the R key and add an entry to the list, making it look like this:
```
key <AD04> { [ r, R, U1F923 ] };
```
Save the file and run the command `setxkbmap us` to reload the layout.
You can define one custom character for key defined in the layout, and another if you populate the fourth layer. Additional layers up to 8th are also possible.
This method is specific to the computer on which you set the custom layout. The custom keys will be available only when Xorg is running. To avoid accidents, you should always reload the layout using `setxkbmap`, otherwise an invalid layout could prevent you from logging into your system, locking you out.

View File

@@ -4,8 +4,9 @@ This project includes a Docker workflow that will allow you to build a new firmw
## Requirements
The main prerequisite is a working `docker` install.
The main prerequisite is a working `docker` or `podman` install.
* [Docker CE](https://docs.docker.com/install/#supported-platforms)
* [Podman](https://podman.io/getting-started/installation)
## Usage
@@ -38,6 +39,13 @@ util/docker_build.sh
# Reads parameters as input (leave blank for all keyboards/keymaps)
```
You can manually set which container runtime you want to use by setting the `RUNTIME` environment variable to it's name or path.
By default docker or podman are automatically detected and docker is preferred over podman.
```bash
RUNTIME="podman" util/docker_build.sh keyboard:keymap:target
```
## FAQ
### Why can't I flash on Windows/macOS

574
docs/ja/keycodes.md Normal file
View File

@@ -0,0 +1,574 @@
# キーコードの概要
<!---
original document: 0.11.64:docs/keycodes.md
git diff 0.11.64 HEAD -- docs/keycodes.md | cat
-->
[キーマップ](ja/keymap.md) を定義するときは、それぞれのキーに有効な定義が必要です。このページは、QMK で使えるキーコードに相当するシンボルについて記述しています。
このページは参照のみです。それぞれのキーの種類毎のリンク先のページに、それぞれのキーの機能についてもっと詳細に記載しています。
## 基本的なキーコード :id=basic-keycodes
[基本的なキーコード](ja/keycodes_basic.md) も見てください。
?> 訳注: 以下の説明は、OS のキーボード配列の設定が「US」の場合のものです。OS のキーボード配列の設定が「JIS」の場合、一部のキーは下の表と異なる文字が入力されます。例えば、`KC_LBRC` は、OS のキーボード配列の設定が US であれば「`[` または `{`」が入力されますが、JIS の場合「`@` または <code>&#96;</code>」が入力されます。
?> これは、OS がキーボードから送信されたキーコードを解釈する際に、キーボード配列の設定によって対応する文字を変えるためです。もし、OS のキーボード配列の設定を JIS にする場合、`#include "keymap_jp.h"``keymap.c` に追加すると`JP_AT` のような JIS キーボードのキーキャップに対応したキーを指定できます。
|キー |エイリアス |説明 |Windows |macOS |Linux<sup>1</sup>|
|-----------------------|------------------------------|-----------------------------------------|-------------|-------------|-----------------|
|`KC_NO` |`XXXXXXX` |このキーを無視します (何もしません) 。 |*N/A* |*N/A* |*N/A* |
|`KC_TRANSPARENT` |`KC_TRNS`, `_______` | 次に低いレイヤーの非透過キーを使う |*N/A* |*N/A* |*N/A* |
|`KC_A` | |`a``A` |✔ |✔ |✔ |
|`KC_B` | |`b``B` |✔ |✔ |✔ |
|`KC_C` | |`c``C` |✔ |✔ |✔ |
|`KC_D` | |`d``D` |✔ |✔ |✔ |
|`KC_E` | |`e``E` |✔ |✔ |✔ |
|`KC_F` | |`f``F` |✔ |✔ |✔ |
|`KC_G` | |`g``G` |✔ |✔ |✔ |
|`KC_H` | |`h``H` |✔ |✔ |✔ |
|`KC_I` | |`i``I` |✔ |✔ |✔ |
|`KC_J` | |`j``J` |✔ |✔ |✔ |
|`KC_K` | |`k``K` |✔ |✔ |✔ |
|`KC_L` | |`l``L` |✔ |✔ |✔ |
|`KC_M` | |`m``M` |✔ |✔ |✔ |
|`KC_N` | |`n``N` |✔ |✔ |✔ |
|`KC_O` | |`o``O` |✔ |✔ |✔ |
|`KC_P` | |`p``P` |✔ |✔ |✔ |
|`KC_Q` | |`q``Q` |✔ |✔ |✔ |
|`KC_R` | |`r``R` |✔ |✔ |✔ |
|`KC_S` | |`s``S` |✔ |✔ |✔ |
|`KC_T` | |`t``T` |✔ |✔ |✔ |
|`KC_U` | |`u``U` |✔ |✔ |✔ |
|`KC_V` | |`v``V` |✔ |✔ |✔ |
|`KC_W` | |`w``W` |✔ |✔ |✔ |
|`KC_X` | |`x``X` |✔ |✔ |✔ |
|`KC_Y` | |`y``Y` |✔ |✔ |✔ |
|`KC_Z` | |`z``Z` |✔ |✔ |✔ |
|`KC_1` | |`1``!` |✔ |✔ |✔ |
|`KC_2` | |`2``@` |✔ |✔ |✔ |
|`KC_3` | |`3``#` |✔ |✔ |✔ |
|`KC_4` | |`4``$` |✔ |✔ |✔ |
|`KC_5` | |`5``%` |✔ |✔ |✔ |
|`KC_6` | |`6``^` |✔ |✔ |✔ |
|`KC_7` | |`7``&` |✔ |✔ |✔ |
|`KC_8` | |`8``*` |✔ |✔ |✔ |
|`KC_9` | |`9``(` |✔ |✔ |✔ |
|`KC_0` | |`0``)` |✔ |✔ |✔ |
|`KC_ENTER` |`KC_ENT` |Return (Enter) |✔ |✔ |✔ |
|`KC_ESCAPE` |`KC_ESC` |Escape |✔ |✔ |✔ |
|`KC_BSPACE` |`KC_BSPC` |Delete (Backspace) |✔ |✔ |✔ |
|`KC_TAB` | |Tab |✔ |✔ |✔ |
|`KC_SPACE` |`KC_SPC` |Spacebar |✔ |✔ |✔ |
|`KC_MINUS` |`KC_MINS` |`-``_` |✔ |✔ |✔ |
|`KC_EQUAL` |`KC_EQL` |`=``+` |✔ |✔ |✔ |
|`KC_LBRACKET` |`KC_LBRC` |`[``{` |✔ |✔ |✔ |
|`KC_RBRACKET` |`KC_RBRC` |`]``}` |✔ |✔ |✔ |
|`KC_BSLASH` |`KC_BSLS` |`\``\|` |✔ |✔ |✔ |
|`KC_NONUS_HASH` |`KC_NUHS` |Non-US `#``~` |✔ |✔ |✔ |
|`KC_SCOLON` |`KC_SCLN` |`;``:` |✔ |✔ |✔ |
|`KC_QUOTE` |`KC_QUOT` |`'``"` |✔ |✔ |✔ |
|`KC_GRAVE` |`KC_GRV`, `KC_ZKHK` |<code>&#96;</code>`~`, JIS 全角/半角 |✔ |✔ |✔ |
|`KC_COMMA` |`KC_COMM` |`,``<` |✔ |✔ |✔ |
|`KC_DOT` | |`.``>` |✔ |✔ |✔ |
|`KC_SLASH` |`KC_SLSH` |`/``?` |✔ |✔ |✔ |
|`KC_CAPSLOCK` |`KC_CLCK`, `KC_CAPS` |Caps Lock |✔ |✔ |✔ |
|`KC_F1` | |F1 |✔ |✔ |✔ |
|`KC_F2` | |F2 |✔ |✔ |✔ |
|`KC_F3` | |F3 |✔ |✔ |✔ |
|`KC_F4` | |F4 |✔ |✔ |✔ |
|`KC_F5` | |F5 |✔ |✔ |✔ |
|`KC_F6` | |F6 |✔ |✔ |✔ |
|`KC_F7` | |F7 |✔ |✔ |✔ |
|`KC_F8` | |F8 |✔ |✔ |✔ |
|`KC_F9` | |F9 |✔ |✔ |✔ |
|`KC_F10` | |F10 |✔ |✔ |✔ |
|`KC_F11` | |F11 |✔ |✔ |✔ |
|`KC_F12` | |F12 |✔ |✔ |✔ |
|`KC_PSCREEN` |`KC_PSCR` |Print Screen |✔ |✔<sup>2</sup>|✔ |
|`KC_SCROLLLOCK` |`KC_SLCK`, `KC_BRMD` |Scroll Lock, 画面の明るさダウン (macOS) |✔ |✔<sup>2</sup>|✔ |
|`KC_PAUSE` |`KC_PAUS`, `KC_BRK`, `KC_BRMU`|Pause, 画面の明るさアップ (macOS) |✔ |✔<sup>2</sup>|✔ |
|`KC_INSERT` |`KC_INS` |Insert |✔ | |✔ |
|`KC_HOME` | |Home |✔ |✔ |✔ |
|`KC_PGUP` | |Page Up |✔ |✔ |✔ |
|`KC_DELETE` |`KC_DEL` |Forward Delete |✔ |✔ |✔ |
|`KC_END` | |End |✔ |✔ |✔ |
|`KC_PGDOWN` |`KC_PGDN` |Page Down |✔ |✔ |✔ |
|`KC_RIGHT` |`KC_RGHT` |右矢印 |✔ |✔ |✔ |
|`KC_LEFT` | |左矢印 |✔ |✔ |✔ |
|`KC_DOWN` | |下矢印 |✔ |✔ |✔ |
|`KC_UP` | |上矢印 |✔ |✔ |✔ |
|`KC_NUMLOCK` |`KC_NLCK` |テンキー Num Lock と Clear |✔ |✔ |✔ |
|`KC_KP_SLASH` |`KC_PSLS` |テンキー `/` |✔ |✔ |✔ |
|`KC_KP_ASTERISK` |`KC_PAST` |テンキー `*` |✔ |✔ |✔ |
|`KC_KP_MINUS` |`KC_PMNS` |テンキー `-` |✔ |✔ |✔ |
|`KC_KP_PLUS` |`KC_PPLS` |テンキー `+` |✔ |✔ |✔ |
|`KC_KP_ENTER` |`KC_PENT` |テンキー Enter |✔ |✔ |✔ |
|`KC_KP_1` |`KC_P1` |テンキー `1` と End |✔ |✔ |✔ |
|`KC_KP_2` |`KC_P2` |テンキー `2` と下矢印 |✔ |✔ |✔ |
|`KC_KP_3` |`KC_P3` |テンキー `3` と Page Down |✔ |✔ |✔ |
|`KC_KP_4` |`KC_P4` |テンキー `4` と左矢印 |✔ |✔ |✔ |
|`KC_KP_5` |`KC_P5` |テンキー `5` |✔ |✔ |✔ |
|`KC_KP_6` |`KC_P6` |テンキー `6` と右矢印 |✔ |✔ |✔ |
|`KC_KP_7` |`KC_P7` |テンキー `7` と Home |✔ |✔ |✔ |
|`KC_KP_8` |`KC_P8` |テンキー `8` と上矢印 |✔ |✔ |✔ |
|`KC_KP_9` |`KC_P9` |テンキー `9` と Page Up |✔ |✔ |✔ |
|`KC_KP_0` |`KC_P0` |テンキー `0` と Insert |✔ |✔ |✔ |
|`KC_KP_DOT` |`KC_PDOT` |テンキー `.` と Delete |✔ |✔ |✔ |
|`KC_NONUS_BSLASH` |`KC_NUBS` |Non-US `\``\|` |✔ |✔ |✔ |
|`KC_APPLICATION` |`KC_APP` |アプリケーションキー (Windows コンテキストメニューキー) |✔ | |✔ |
|`KC_POWER` | |システム電源 | |✔<sup>3</sup>|✔ |
|`KC_KP_EQUAL` |`KC_PEQL` |テンキー `=` |✔ |✔ |✔ |
|`KC_F13` | |F13 |✔ |✔ |✔ |
|`KC_F14` | |F14 |✔ |✔ |✔ |
|`KC_F15` | |F15 |✔ |✔ |✔ |
|`KC_F16` | |F16 |✔ |✔ |✔ |
|`KC_F17` | |F17 |✔ |✔ |✔ |
|`KC_F18` | |F18 |✔ |✔ |✔ |
|`KC_F19` | |F19 |✔ |✔ |✔ |
|`KC_F20` | |F20 |✔ | |✔ |
|`KC_F21` | |F21 |✔ | |✔ |
|`KC_F22` | |F22 |✔ | |✔ |
|`KC_F23` | |F23 |✔ | |✔ |
|`KC_F24` | |F24 |✔ | |✔ |
|`KC_EXECUTE` |`KC_EXEC` |Execute | | |✔ |
|`KC_HELP` | |Help | | |✔ |
|`KC_MENU` | |Menu | | |✔ |
|`KC_SELECT` |`KC_SLCT` |Select | | |✔ |
|`KC_STOP` | |Stop | | |✔ |
|`KC_AGAIN` |`KC_AGIN` |Again | | |✔ |
|`KC_UNDO` | |アンドゥ | | |✔ |
|`KC_CUT` | |カット | | |✔ |
|`KC_COPY` | |コピー | | |✔ |
|`KC_PASTE` |`KC_PSTE` |ペースト | | |✔ |
|`KC_FIND` | |検索 | | |✔ |
|`KC__MUTE` | |ミュート | |✔ |✔ |
|`KC__VOLUP` | |音量アップ | |✔ |✔ |
|`KC__VOLDOWN` | |音量ダウン | |✔ |✔ |
|`KC_LOCKING_CAPS` |`KC_LCAP` |Caps Lock のロック |✔ |✔ | |
|`KC_LOCKING_NUM` |`KC_LNUM` |Num Lock のロック |✔ |✔ | |
|`KC_LOCKING_SCROLL` |`KC_LSCR` |Scroll Lock のロック |✔ |✔ | |
|`KC_KP_COMMA` |`KC_PCMM` |テンキー `,` | | |✔ |
|`KC_KP_EQUAL_AS400` | |AS/400 キーボードのテンキー `=` | | | |
|`KC_INT1` |`KC_RO` |JIS `\``_` |✔ | |✔ |
|`KC_INT2` |`KC_KANA` |JIS カタカナ/ひらがな |✔ | |✔ |
|`KC_INT3` |`KC_JYEN` |JIS `¥``\|` |✔ | |✔ |
|`KC_INT4` |`KC_HENK` |JIS 変換 |✔ | |✔ |
|`KC_INT5` |`KC_MHEN` |JIS 無変換 |✔ | |✔ |
|`KC_INT6` | |JIS テンキー `,` | | |✔ |
|`KC_INT7` | |International 7 | | | |
|`KC_INT8` | |International 8 | | | |
|`KC_INT9` | |International 9 | | | |
|`KC_LANG1` |`KC_HAEN` |ハングル/英語 | | |✔ |
|`KC_LANG2` |`KC_HANJ` |韓文漢字 | | |✔ |
|`KC_LANG3` | |JIS カタカナ | | |✔ |
|`KC_LANG4` | |JIS ひらがな | | |✔ |
|`KC_LANG5` | |JIS 全角/半角 | | |✔ |
|`KC_LANG6` | |Language 6 | | | |
|`KC_LANG7` | |Language 7 | | | |
|`KC_LANG8` | |Language 8 | | | |
|`KC_LANG9` | |Language 9 | | | |
|`KC_ALT_ERASE` |`KC_ERAS` |Alternate Erase | | | |
|`KC_SYSREQ` | |SysReq/Attention | | | |
|`KC_CANCEL` | |Cancel | | | |
|`KC_CLEAR` |`KC_CLR` |Clear | | |✔ |
|`KC_PRIOR` | |Prior | | | |
|`KC_RETURN` | |Return | | | |
|`KC_SEPARATOR` | |Separator | | | |
|`KC_OUT` | |Out | | | |
|`KC_OPER` | |Oper | | | |
|`KC_CLEAR_AGAIN` | |Clear/Again | | | |
|`KC_CRSEL` | |CrSel/Props | | | |
|`KC_EXSEL` | |ExSel | | | |
|`KC_LCTRL` |`KC_LCTL` |左 Control |✔ |✔ |✔ |
|`KC_LSHIFT` |`KC_LSFT` |左 Shift |✔ |✔ |✔ |
|`KC_LALT` |`KC_LOPT` |左 Alt (Option) |✔ |✔ |✔ |
|`KC_LGUI` |`KC_LCMD`, `KC_LWIN` |左 GUI (Windows/Command/Meta key) |✔ |✔ |✔ |
|`KC_RCTRL` |`KC_RCTL` |右 Control |✔ |✔ |✔ |
|`KC_RSHIFT` |`KC_RSFT` |右 Shift |✔ |✔ |✔ |
|`KC_RALT` |`KC_ROPT`, `KC_ALGR` |右 Alt (Option/AltGr) |✔ |✔ |✔ |
|`KC_RGUI` |`KC_RCMD`, `KC_RWIN` |右 GUI (Windows/Command/Meta key) |✔ |✔ |✔ |
|`KC_SYSTEM_POWER` |`KC_PWR` |システム電源オフ |✔ |✔<sup>3</sup>|✔ |
|`KC_SYSTEM_SLEEP` |`KC_SLEP` |システムスリープ |✔ |✔<sup>3</sup>|✔ |
|`KC_SYSTEM_WAKE` |`KC_WAKE` |システムスリープ解除 | |✔<sup>3</sup>|✔ |
|`KC_AUDIO_MUTE` |`KC_MUTE` |ミュート |✔ |✔ |✔ |
|`KC_AUDIO_VOL_UP` |`KC_VOLU` |音量アップ |✔ |✔<sup>4</sup>|✔ |
|`KC_AUDIO_VOL_DOWN` |`KC_VOLD` |音量ダウン |✔ |✔<sup>4</sup>|✔ |
|`KC_MEDIA_NEXT_TRACK` |`KC_MNXT` |次の曲へ |✔ |✔<sup>5</sup>|✔ |
|`KC_MEDIA_PREV_TRACK` |`KC_MPRV` |前の曲へ |✔ |✔<sup>5</sup>|✔ |
|`KC_MEDIA_STOP` |`KC_MSTP` |再生停止 |✔ | |✔ |
|`KC_MEDIA_PLAY_PAUSE` |`KC_MPLY` |再生/一時停止 |✔ |✔ |✔ |
|`KC_MEDIA_SELECT` |`KC_MSEL` |Media Player 起動 |✔ | |✔ |
|`KC_MEDIA_EJECT` |`KC_EJCT` |イジェクト | |✔ |✔ |
|`KC_MAIL` | |メール起動 |✔ | |✔ |
|`KC_CALCULATOR` |`KC_CALC` |電卓起動 |✔ | |✔ |
|`KC_MY_COMPUTER` |`KC_MYCM` |マイコンピュータを開く |✔ | |✔ |
|`KC_WWW_SEARCH` |`KC_WSCH` |ブラウザ検索 |✔ | |✔ |
|`KC_WWW_HOME` |`KC_WHOM` |ブラウザホーム画面 |✔ | |✔ |
|`KC_WWW_BACK` |`KC_WBAK` |ブラウザ戻る |✔ | |✔ |
|`KC_WWW_FORWARD` |`KC_WFWD` |ブラウザ進む |✔ | |✔ |
|`KC_WWW_STOP` |`KC_WSTP` |ブラウザ読み込み中止 |✔ | |✔ |
|`KC_WWW_REFRESH` |`KC_WREF` |ブラウザ再読み込み |✔ | |✔ |
|`KC_WWW_FAVORITES` |`KC_WFAV` |ブラウザお気に入り |✔ | |✔ |
|`KC_MEDIA_FAST_FORWARD`|`KC_MFFD` |次の曲へ |✔ |✔<sup>5</sup>|✔ |
|`KC_MEDIA_REWIND` |`KC_MRWD` |前の曲へ |✔<sup>6</sup>|✔<sup>5</sup>|✔ |
|`KC_BRIGHTNESS_UP` |`KC_BRIU` |画面の明るさアップ |✔ |✔ |✔ |
|`KC_BRIGHTNESS_DOWN` |`KC_BRID` |画面の明るさダウン |✔ |✔ |✔ |
<sup>1. Linux カーネル HID ドライバは [ほぼ全てのキーコード](https://github.com/torvalds/linux/blob/master/drivers/hid/hid-input.c) を識別しますが、デフォルトの関連付けは デスクトップ環境/ウィンドウマネージャによって決まります。</sup><br/>
<sup>2. F13-F15 として取り扱われます。</sup><br/>
<sup>3. 約3秒間押していると、プロンプトが表示されます。</sup><br/>
<sup>4. Shift と Option を押していると、ボリュームレベルの細かいコントロールが可能になります。</sup><br/>
<sup>5. iTunes では、タップすると1曲全体がスキップされます。押していると曲の中で早送り/巻き戻しになります。</sup><br/>
<sup>6. Windows Media Player は巻き戻しキーを識別しませんが、VLC では早送り/巻き戻しキーで再生速度が変更されます。</sup>
## Quantum キーコード :id=quantum-keycodes
[Quantum キーコード](ja/quantum_keycodes.md#qmk-keycodes) も見てください。
|キー |エイリアス |説明 |
|--------------|-----------|---------------------------------------------------------|
|`RESET` | |ファームウエア書き込みのためにキーボードをブートローダーモードにします |
|`DEBUG` | |デバッグモードを切り替えます |
|`EEPROM_RESET`|`EEP_RST` |キーボードの EEPROM (不揮発メモリ) を再初期化します |
## オーディオキー :id=audio-keys
[オーディオ](ja/feature_audio.md) も見てください。
|キー |エイリアス |説明 |
|----------------|------------|---------------------------------------|
|`AU_ON` | |オーディオモードオン |
|`AU_OFF` | |オーディオモードオフ |
|`AU_TOG` | |オーディオモードを切り替えます |
|`CLICKY_TOGGLE` |`CK_TOGG` |オーディオクリックモードを切り替えます |
|`CLICKY_UP` |`CK_UP` |クリック音の周波数を増やします |
|`CLICKY_DOWN` |`CK_DOWN` |クリック音の周波数を減らします |
|`CLICKY_RESET` |`CK_RST` |周波数をデフォルトに再設定します |
|`MU_ON` | |音楽モードをオンにします |
|`MU_OFF` | |音楽モードをオフにします |
|`MU_TOG` | |音楽モードを切り替えます |
|`MU_MOD` | |音楽モードを循環します |
## バックライト :id=backlighting
[バックライト](ja/feature_backlight.md) も見てください。
|キー |説明 |
|---------|-------------------------------------|
|`BL_TOGG`|バックライトをオンあるいはオフにする |
|`BL_STEP`|バックライトレベルを循環する |
|`BL_ON` |バックライトを最大輝度にセットする |
|`BL_OFF` |バックライトをオフにする |
|`BL_INC` |バックライトのレベルを上げる |
|`BL_DEC` |バックライトのレベルを下げる |
|`BL_BRTG`|バックライトの明滅動作を切り替える |
## ブートマジック :id=bootmagic
[ブートマジック](ja/feature_bootmagic.md) も見てください。
| キー | エイリアス| 説明 |
|------------------------------------|-----------|-------------------------------------------------------|
| `MAGIC_SWAP_CONTROL_CAPSLOCK` | `CL_SWAP` | Caps Lock と左 Control の入れ替え |
| `MAGIC_UNSWAP_CONTROL_CAPSLOCK` | `CL_NORM` | Caps Lock と左 Control の入れ替えの解除 |
| `MAGIC_CAPSLOCK_TO_CONTROL` | `CL_CTRL` | Caps Lock を Control として扱う |
| `MAGIC_UNCAPSLOCK_TO_CONTROL` | `CL_CAPS` | Caps Lock を Control として扱うことを止める |
| `MAGIC_SWAP_LCTL_LGUI` | `LCG_SWP` | 左 Control と GUI の入れ替え |
| `MAGIC_UNSWAP_LCTL_LGUI` | `LCG_NRM` | 左 Control と GUI の入れ替えを解除 |
| `MAGIC_SWAP_RCTL_RGUI` | `RCG_SWP` | 右 Control と GUI の入れ替え |
| `MAGIC_UNSWAP_RCTL_RGUI` | `RCG_NRM` | 右 Control と GUI の入れ替えを解除 |
| `MAGIC_SWAP_CTL_GUI` | `CG_SWAP` | 両側の Control と GUI の入れ替え |
| `MAGIC_UNSWAP_CTL_GUI` | `CG_NORM` | 両側の Control と GUI の入れ替えを解除 |
| `MAGIC_TOGGLE_CTL_GUI` | `CG_TOGG` | 両側の Control と GUI の入れ替えの切り替え |
| `MAGIC_SWAP_LALT_LGUI` | `LAG_SWP` | 左 Alt と GUI の入れ替え |
| `MAGIC_UNSWAP_LALT_LGUI` | `LAG_NRM` | 左 Alt と GUI の入れ替えを解除 |
| `MAGIC_SWAP_RALT_RGUI` | `RAG_SWP` | 右 Alt と GUI の入れ替え |
| `MAGIC_UNSWAP_RALT_RGUI` | `RAG_NRM` | 右 Alt と GUI の入れ替えを解除 |
| `MAGIC_SWAP_ALT_GUI` | `AG_SWAP` | 両側の Alt と GUI の入れ替え |
| `MAGIC_UNSWAP_ALT_GUI` | `AG_NORM` | 両側の Alt と GUI の入れ替えを解除 |
| `MAGIC_TOGGLE_ALT_GUI` | `AG_TOGG` | 両側の Alt と GUI の入れ替えの切り替え |
| `MAGIC_NO_GUI` | `GUI_OFF` | GUI キーを無効にする |
| `MAGIC_UNNO_GUI` | `GUI_ON` | GUI キーを有効にする |
| `MAGIC_SWAP_GRAVE_ESC` | `GE_SWAP` | <code>&#96;</code> とエスケープの入れ替え |
| `MAGIC_UNSWAP_GRAVE_ESC` | `GE_NORM` | <code>&#96;</code> とエスケープの入れ替えを解除 |
| `MAGIC_SWAP_BACKSLASH_BACKSPACE` | `BS_SWAP` | `\` と Backspace を入れ替え |
| `MAGIC_UNSWAP_BACKSLASH_BACKSPACE` | `BS_NORM` | `\` と Backspace の入れ替えを解除する |
| `MAGIC_HOST_NKRO` | `NK_ON` | N キーロールオーバーを有効にする |
| `MAGIC_UNHOST_NKRO` | `NK_OFF` | N キーロールオーバーを無効にする |
| `MAGIC_TOGGLE_NKRO` | `NK_TOGG` | N キーロールオーバーの有効・無効を切り替え |
| `MAGIC_EE_HANDS_LEFT` | `EH_LEFT` | 分割キーボードのマスター側を左手に設定(`EE_HANDS` 用) |
| `MAGIC_EE_HANDS_RIGHT` | `EH_RGHT` | 分割キーボードのマスター側を右手に設定(`EE_HANDS` 用) |
## Bluetooth :id=bluetooth
[Bluetooth](ja/feature_bluetooth.md) も見てください。
|キー |説明 |
|----------|--------------------------------------|
|`OUT_AUTO`|USB と Bluetooth を自動的に切り替える |
|`OUT_USB` |USB のみ |
|`OUT_BT` |Bluetooth のみ |
## 動的マクロ :id=dynamic-macros
[動的マクロ](ja/feature_dynamic_macros.md) も見てください。
|キー |エイリアス |説明 |
|-----------------|---------|-------------------------------------|
|`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`|現在記録中のマクロの記録を終了します |
## グレイブエスケープ :id=grave-escape
[グレイブエスケープ](ja/feature_grave_esc.md) も見てください。
|キー |エイリアス |説明 |
|-----------|---------|------------------------------------------------------------------|
|`GRAVE_ESC`|`KC_GESC`|押された場合に Escape。Shift あるいは GUI が押されたままの場合は <code>&#96;</code>|
## キーロック :id=key-lock
[キーロック](ja/feature_key_lock.md) も見てください。
|キー |説明 |
|---------|--------------------------------------------------|
|`KC_LOCK`|キーが再び押されるまで次のキーを押したままにします |
## レイヤー切り替え :id=layer-switching
[レイヤー切り替え](ja/feature_layers.md#switching-and-toggling-layers) も見てください。
|キー |説明 |
|----------------|--------------------------------------------------------------------------------------------------------------------------------------|
|`DF(layer)` |指定されたレイヤーを基本 (デフォルト) レイヤーに設定する |
|`MO(layer)` |キーを押したら一時的に `layer` を切り替える。(切り替え先のレイヤーには `KC_TRNS` が必要です) |
|`OSL(layer)` |次のキーが押されるまで、一時的にレイヤーをアクティブにします。詳細は [ワンショットキー](ja/one_shot_keys.md) のとおり。 |
|`LM(layer, mod)`|`mod` がアクティブな状態で (MO のように) 一時的にレイヤーをアクティブにします。ここでは、`mod` は mods_bit のことです。Mod については [こちら](ja/mod_tap.md) で見ることができます。実装例: `LM(LAYER_1, MOD_LALT)` |
|`LT(layer, kc)` |押していると `layer` をオンにし、タップすると `kc` になります。 |
|`TG(layer)` |`layer` のオン・オフを切り替え |
|`TO(layer)` |`layer` をオンにして、デフォルトレイヤーを除く他のレイヤーをオフにします。 |
|`TT(layer)` |複数回タップしない限り `MO` のように動作し、複数回タップすると `layer` をオンにトグルします。 |
## リーダーキー :id=leader-key
[リーダーキー](ja/feature_leader_key.md) も見てください。
|キー |説明 |
|---------|-------------------------------|
|`KC_LEAD`|リーダーキーのシーケンスを開始 |
## マウスキー :id=mouse-keys
[マウスキー](ja/feature_mouse_keys.md) も見てください。
|キー |エイリアス |説明 |
|----------------|---------|-------------------------|
|`KC_MS_UP` |`KC_MS_U`|マウスカーソルを上に移動 |
|`KC_MS_DOWN` |`KC_MS_D`|マウスカーソルを下に移動 |
|`KC_MS_LEFT` |`KC_MS_L`|マウスカーソルを左に移動 |
|`KC_MS_RIGHT` |`KC_MS_R`|マウスカーソルを右に移動 |
|`KC_MS_BTN1` |`KC_BTN1`|ボタン1を押す |
|`KC_MS_BTN2` |`KC_BTN2`|ボタン2を押す |
|`KC_MS_BTN3` |`KC_BTN3`|ボタン3を押す |
|`KC_MS_BTN4` |`KC_BTN4`|ボタン4を押す |
|`KC_MS_BTN5` |`KC_BTN5`|ボタン5を押す |
|`KC_MS_WH_UP` |`KC_WH_U`|ホイールを向こう側に回転 |
|`KC_MS_WH_DOWN` |`KC_WH_D`|ホイールを手前側に回転 |
|`KC_MS_WH_LEFT` |`KC_WH_L`|ホイールを左に倒す |
|`KC_MS_WH_RIGHT`|`KC_WH_R`|ホイールを右に倒す |
|`KC_MS_ACCEL0` |`KC_ACL0`|速度を0に設定 |
|`KC_MS_ACCEL1` |`KC_ACL1`|速度を1に設定 |
|`KC_MS_ACCEL2` |`KC_ACL2`|速度を2に設定 |
## 修飾キー :id=modifiers
[修飾キー](ja/feature_advanced_keycodes.md#modifier-keys) も見てください。
| キー | エイリアス | 説明 |
|------------|---------------------------------|---------------------------------------------------------------|
| `LCTL(kc)` | `C(kc)` | 左 Control を押しながら `kc` を押します。 |
| `LSFT(kc)` | `S(kc)` | 左 Shift を押しながら `kc` を押します。 |
| `LALT(kc)` | `A(kc)`, `LOPT(kc)` | 左 Alt を押しながら `kc`を押します。 |
| `LGUI(kc)` | `G(kc)`, `LCMD(kc)`, `LWIN(kc)` | 左 GUI を押しながら `kc` を押します。 |
| `RCTL(kc)` | | 右 Control を押しながら `kc` を押します。 |
| `RSFT(kc)` | | 右 Shift を押しながら `kc` を押します。 |
| `RALT(kc)` | `ROPT(kc)`, `ALGR(kc)` | 右 Alt (AltGr) を押しながら `kc` を押します。 |
| `RGUI(kc)` | `RCMD(kc)`, `LWIN(kc)` | 右 GUI を押しながら `kc` を押します。 |
| `SGUI(kc)` | `SCMD(kc)`, `SWIN(kc)` | 左 Shift と GUI を押しながら `kc` を押します。 |
| `LCA(kc)` | | 左 Control と Alt を押しながら `kc` を押します。 |
| `LSA(kc)` | | 左 Shift と Alt を押しながら `kc` を押します。 |
| `RSA(kc)` |`SAGR(kc)` | 右 Shift と Alt (AltGr) を押しながら `kc` を押します。 |
| `RCS(kc)` | | 右 Control と Shift を押しながら `kc` を押します。 |
| `LCAG(kc)` | | 左 Control、Alt、GUI を押しながら `kc` を押します。 |
| `MEH(kc)` | | 左 Control、Shift、Alt を押しながら `kc` を押します。 |
| `HYPR(kc)` | | 左 Control、Shift、Alt、GUI を押しながら `kc` を押します。 |
| `KC_MEH` | | 左 Control、Shift、Alt |
| `KC_HYPR` | | 左 Control、Shift、Alt、GUI |
## モッドタップキー :id=mod-tap-keys
[モッドタップキー](ja/mod_tap.md) も見てください。
|キー |エイリアス | 説明 |
|--------------|-------------------------------------------------------------------|------------------------------------------------------------------------|
| `MT(mod, kc)`| |押したままの場合は `mod` 、タップした場合は `kc` |
| `LCTL_T(kc)` | `CTL_T(kc)` | 押したままの場合は左 Control、タップした場合は `kc` |
| `LSFT_T(kc)` | `SFT_T(kc)` | 押したままの場合は左 Shift、タップした場合は `kc` |
| `LALT_T(kc)` | `LOPT_T(kc)`, `ALT_T(kc)`, `OPT_T(kc)` | 押したままの場合は左 Alt、タップした場合は `kc` |
| `LGUI_T(kc)` | `LCMD_T(kc)`, `LWIN_T(kc)`, `GUI_T(kc)`, `CMD_T(kc)`, `WIN_T(kc)` | 押したままの場合は左 GUI、タップした場合は `kc` |
| `RCTL_T(kc)` | | 押したままの場合は右 Control、タップした場合は `kc` |
| `RSFT_T(kc)` | | 押したままの場合は右 Shift、タップした場合は `kc` |
| `RALT_T(kc)` | `ROPT_T(kc)`, `ALGR_T(kc)` | 押したままの場合は右 Alt (AltGr) 、タップした場合は `kc` |
| `RGUI_T(kc)` | `RCMD_T(kc)`, `RWIN_T(kc)` | 押したままの場合は右 GUI、タップした場合は `kc` |
| `SGUI_T(kc)` | `SCMD_T(kc)`, `SWIN_T(kc)` | 押したままの場合は左 Shift と GUI、タップした場合は `kc` |
| `LCA_T(kc)` | | 押したままの場合は左 Control と Alt、タップした場合は `kc` |
| `LSA_T(kc)` | | 押したままの場合は左 Shift と Alt、タップした場合は `kc` |
| `RSA_T(kc)` |`SAGR_T(kc)` | 押したままの場合は右 Shift と Alt (AltGr) 、タップした場合は `kc` |
| `RCS_T(kc)` | | 押したままの場合は右 Control と Shift、タップした場合は `kc` |
| `LCAG_T(kc)` | | 押したままの場合は左 Control、Alt、GUI、タップした場合は `kc` |
| `RCAG_T(kc)` | | 押したままの場合は右 Control、Alt、GUI、タップした場合は `kc` |
| `C_S_T(kc)` | | 押したままの場合は左 Control と Shift、タップした場合は `kc` |
| `MEH_T(kc)` | | 押したままの場合は左 Control、Shift、Alt、タップした場合は `kc` |
| `HYPR_T(kc)` | `ALL_T(kc)` | 押したままの場合は左 Control、Shift、Alt、GUI、タップした場合は `kc` - より詳しくは[ここ](https://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/)を見てください |
## RGB ライト :id=rgb-lighting
[RGB ライト](ja/feature_rgblight.md) も見てください。
|キー |エイリアス|説明 |
|-------------------|----------|---------------------------------------------------------------------|
|`RGB_TOG` | |RGB ライトのオン・オフを切り替え |
|`RGB_MODE_FORWARD` |`RGB_MOD` |RGB モードを順送りで変更し、Shift を押していると逆順で変更します。 |
|`RGB_MODE_REVERSE` |`RGB_RMOD`|RGB モードを逆順で変更し、Shift を押していると順送りで変更します。 |
|`RGB_HUI` | |色相 (HUE) を増加させ、Shift を押していると減少させます。 |
|`RGB_HUD` | |色相 (HUE) を減少させ、Shift を押していると増加させます。 |
|`RGB_SAI` | |彩度 (SAT) を増加させ、Shift を押していると減少させます。 |
|`RGB_SAD` | |彩度 (SAT) を減少させ、Shift を押していると増加させます。 |
|`RGB_VAI` | |明度 (VAL/brightness) を増加させ、Shift を押していると減少させます。 |
|`RGB_VAD` | |明度 (VAL/brightness) を減少させ、Shift を押していると増加させます。 |
|`RGB_MODE_PLAIN` |`RGB_M_P `|静止(動き無し) モードに固定します |
|`RGB_MODE_BREATHE` |`RGB_M_B` |明滅アニメーションモード |
|`RGB_MODE_RAINBOW` |`RGB_M_R` |レインボーアニメーションモード |
|`RGB_MODE_SWIRL` |`RGB_M_SW`|渦巻アニメーションモード |
|`RGB_MODE_SNAKE` |`RGB_M_SN`|スネークアニメーションモード |
|`RGB_MODE_KNIGHT` |`RGB_M_K` |「ナイトライダー」アニメーションモード |
|`RGB_MODE_XMAS` |`RGB_M_X` |クリスマスアニメーションモード |
|`RGB_MODE_GRADIENT`|`RGB_M_G` |固定階調アニメーションモード |
|`RGB_MODE_RGBTEST` |`RGB_M_T` |赤、緑、青のテストアニメーションモード |
## RGB マトリックスライト :id=rgb-matrix-lighting
[RGB マトリックスライト](ja/feature_rgb_matrix.md) も見てください。
|キー |エイリアス|説明 |
|-------------------|----------|--------------------------------------------------------------------------------------------------------|
|`RGB_TOG` | |RGB ライトのオン・オフを切り替え |
|`RGB_MODE_FORWARD` |`RGB_MOD` |RGB モードを順送りで変更し、Shift を押していると逆順で変更します。 |
|`RGB_MODE_REVERSE` |`RGB_RMOD`|RGB モードを逆順で変更し、Shift を押していると順送りで変更します。 |
|`RGB_HUI` | |色相 (HUE) を増加させ、Shift を押していると減少させます。 |
|`RGB_HUD` | |色相 (HUE) を減少させ、Shift を押していると増加させます。 |
|`RGB_SAI` | |彩度 (SAT) を増加させ、Shift を押していると減少させます。 |
|`RGB_SAD` | |彩度 (SAT) を減少させ、Shift を押していると増加させます。 |
|`RGB_VAI` | |明度 (VAL/brightness) を増加させ、Shift を押していると減少させます。 |
|`RGB_VAD` | |明度 (VAL/brightness) を減少させ、Shift を押していると増加させます。 |
|`RGB_SPI` | |エフェクトのスピード (EEPROM はまだサポートしていません) を増加させ、Shift を押していると減少させます。 |
|`RGB_SPD` | |エフェクトのスピード (EEPROM はまだサポートしていません) を減少させ、Shift を押していると増加させます。 |
## 感熱式プリンタ :id=thermal-printer
[感熱式プリンタ](ja/feature_thermal_printer.md) も見てください。
|キー |説明 |
|-----------|---------------------------------|
|`PRINT_ON` |ユーザが入力した全ての印刷を開始 |
|`PRINT_OFF`|ユーザが入力した全ての印刷を停止 |
## US ANSI シフト済シンボル :id=us-ansi-shifted-symbols
[US ANSI シフト済シンボル](ja/keycodes_us_ansi_shifted.md) も見てください。
|キー |エイリアス |説明|
|------------------------|-------------------|-----------|
|`KC_TILDE` |`KC_TILD` |`~` |
|`KC_EXCLAIM` |`KC_EXLM` |`!` |
|`KC_AT` | |`@` |
|`KC_HASH` | |`#` |
|`KC_DOLLAR` |`KC_DLR` |`$` |
|`KC_PERCENT` |`KC_PERC` |`%` |
|`KC_CIRCUMFLEX` |`KC_CIRC` |`^` |
|`KC_AMPERSAND` |`KC_AMPR` |`&` |
|`KC_ASTERISK` |`KC_ASTR` |`*` |
|`KC_LEFT_PAREN` |`KC_LPRN` |`(` |
|`KC_RIGHT_PAREN` |`KC_RPRN` |`)` |
|`KC_UNDERSCORE` |`KC_UNDS` |`_` |
|`KC_PLUS` | |`+` |
|`KC_LEFT_CURLY_BRACE` |`KC_LCBR` |`{` |
|`KC_RIGHT_CURLY_BRACE` |`KC_RCBR` |`}` |
|`KC_PIPE` | |`\|` |
|`KC_COLON` |`KC_COLN` |`:` |
|`KC_DOUBLE_QUOTE` |`KC_DQUO`, `KC_DQT`|`"` |
|`KC_LEFT_ANGLE_BRACKET` |`KC_LABK`, `KC_LT` |`<` |
|`KC_RIGHT_ANGLE_BRACKET`|`KC_RABK`, `KC_GT` |`>` |
|`KC_QUESTION` |`KC_QUES` |`?` |
## ワンショットキー :id=one-shot-keys
[ワンショットキー](ja/one_shot_keys.md) も見てください。
|キー |説明 |
|------------|--------------------------------|
|`OSM(mod)` | 次のキーが押されるまで、`mod` を押したままにします |
|`OSL(layer)`| 次のキーが押されるまで、一時的にレイヤーをアクティブにします |
## Space Cadet :id=space-cadet
[Space Cadet](ja/feature_space_cadet.md) も見てください。
|キー |説明 |
|-----------|-------------------------------------------|
|`KC_LCPO` |押したままの場合は左 Control、タップした場合は `(` |
|`KC_RCPC` |押したままの場合は右 Control、タップした場合は `)` |
|`KC_LSPO` |押したままの場合は左 Shift、タップした場合は `(`、 |
|`KC_RSPC` |押したままの場合は右 Shift、タップした場合は `)`、 |
|`KC_LAPO` |押したままの場合は左 Alt、タップした場合は `(`、 |
|`KC_RAPC` |押したままの場合は右 Alt、タップした場合は `)`、 |
|`KC_SFTENT`|押したままの場合は右 Shift、タップした場合は Enter |
## スワップハンド :id=swap-hands
[スワップハンド](ja/feature_swap_hands.md) も見てください。
|キー |説明 |
|-------------|----------------------------------------------------------------------------------|
| `SH_T(key)` | タップで `key` を送信する。押している時に一時的に入れ替え。 |
| `SH_ON` | 入れ替えをオンにして、そのままにする。 |
| `SH_OFF` | 入れ替えをオフにして、そのままにする。既知の状態に戻るのに適しています。 |
| `SH_MON` | 押すとスワップハンドし、放すと通常に戻る (一時的)。 |
| `SH_MOFF` | 一時的に入れ替えをオフする。 |
| `SH_TG` | キーを押すたびにオンとオフを切り替える。 |
| `SH_TT` | タップで切り替える。押している時に一時的に切り替える。 |
| `SH_OS` | ワンショットスワップハンド: 押している時あるいは次のキーを押すまで切り替える。 |
## ユニコードサポート :id=unicode-support
[ユニコードサポート](ja/feature_unicode.md) も見てください。
|キー |エイリアス |説明 |
|----------------------|-----------|----------------------------------------------------------------------|
|`UC(c)` | |コードポイント `c` のユニコードを送信 |
|`X(i)` | |`unicode_map` のインデックス `i` のユニコードを送信 |
|`XP(i, j)` | |Shift/Capsが有効なら、インデックス `i` または `j` のユニコードを送信 |
|`UNICODE_MODE_FORWARD`|`UC_MOD` |ユニコード入力方式を順送りで選択 |
|`UNICODE_MODE_REVERSE`|`UC_RMOD` |ユニコード入力方式を逆順で選択 |
|`UNICODE_MODE_OSX` |`UC_M_OS` |ユニコード入力方式を macOS 方式に切り替え |
|`UNICODE_MODE_LNX` |`UC_M_LN` |ユニコード入力方式を Linux 方式に切り替え |
|`UNICODE_MODE_WIN` |`UC_M_WI` |ユニコード入力方式を Windows 方式に切り替え |
|`UNICODE_MODE_BSD` |`UC_M_BS` |ユニコード入力方式を BSD 方式に切り替え (実装されていません) |
|`UNICODE_MODE_WINC` |`UC_M_WC` |ユニコード入力方式を WinCompose を使う Windows 方式に切り替え |

View File

@@ -0,0 +1,34 @@
/*
Copyright 2021 0xCB - Conor Burns
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 "1337.h"
void eeconfig_init_kb(void) {
#ifdef BACKLIGHT_ENABLE
backlight_enable();
backlight_level(5);
#endif
#ifdef RGBLIGHT_ENABLE
rgblight_enable();
rgblight_sethsv(0, 255, 255);
#ifdef RGBLIGHT_ANIMATIONS
rgblight_mode(RGBLIGHT_MODE_RAINBOW_SWIRL + 2);
#endif
#endif
eeconfig_update_kb(0);
eeconfig_init_user();
}

View File

@@ -0,0 +1,38 @@
/*
Copyright 2021 0xCB - Conor Burns
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 "quantum.h"
/* This 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( \
KA1, KA2, KA3, \
KB1, KB2, KB3, \
KC1, KC2, KC3 \
) \
{ \
{ KA1, KA2, KA3 }, \
{ KB1, KB2, KB3 }, \
{ KC1, KC2, KC3 } \
}

View File

@@ -0,0 +1,70 @@
/*
Copyright 2021 0xCB - Conor Burns
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 0xCB00
#define PRODUCT_ID 0x1337
#define DEVICE_VER 0x0001
#define MANUFACTURER 0xCB
#define PRODUCT 1337
/* key matrix size */
#define MATRIX_ROWS 3
#define MATRIX_COLS 3
/* Keyboard Matrix Assignments */
#define DIRECT_PINS { \
{ D2, D4, F4 }, \
{ D7, B1, B3 }, \
{ E6, B4, B2 } \
}
#define TAP_CODE_DELAY 10
#define ENCODER_RESOLUTION 4
#define ENCODERS_PAD_A { F5 }
#define ENCODERS_PAD_B { F6 }
#define BACKLIGHT_PIN B5
// #define BACKLIGHT_BREATHING
#define BACKLIGHT_LEVELS 7
#define RGB_DI_PIN D3
#ifdef RGB_DI_PIN
#define RGBLED_NUM 5
#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
#endif
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 5
/* 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
/* Oled Size */
#define OLED_DISPLAY_128X64
/* QMK DFU */
#define QMK_LED B0

View File

@@ -0,0 +1,22 @@
{
"keyboard_name": "0xCB 1337",
"url": "https://0xCB.dev",
"maintainer": "Conor-Burns",
"width": 3,
"height": 3,
"layouts": {
"LAYOUT": {
"layout": [
{"x":0, "y":0},
{"x":1, "y":0},
{"x":2, "y":0},
{"x":0, "y":1},
{"x":1, "y":1},
{"x":2, "y":1},
{"x":0, "y":2},
{"x":1, "y":2},
{"x":2, "y":2}
]
}
}
}

View File

@@ -0,0 +1,189 @@
/*
Copyright 2021 0xCB - Conor Burns
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
enum layer_names {
_HOME,
_MISC,
_RGB,
_BLED
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_HOME] = LAYOUT(
KC_MPRV, KC_MNXT, KC_MPLY,
KC_PGUP, KC_PGDN, TO(3),
KC_HOME, KC_END, TO(1)
),
[_MISC] = LAYOUT(
_______, _______, _______,
_______, _______, TO(0),
_______, _______, TO(2)
),
[_RGB] = LAYOUT(
RGB_HUI, RGB_HUD, RGB_MOD,
RGB_SAI, RGB_SAD, TO(1),
RGB_SPI, RGB_SPD, TO(3)
),
[_BLED] = LAYOUT(
BL_STEP, BL_BRTG, BL_TOGG,
BL_ON, BL_OFF, TO(2),
BL_INC, BL_DEC, TO(0)
)
};
/* rotary encoder (SW3) - add more else if blocks for more granular layer control */
#ifdef ENCODER_ENABLE
void encoder_update_user(uint8_t index, bool clockwise) {
if (IS_LAYER_ON(_RGB)) {
if (clockwise) {
rgblight_increase_val();
} else {
rgblight_decrease_val();
}
} else if (IS_LAYER_ON(_BLED)) {
if (clockwise) {
backlight_increase();
} else {
backlight_decrease();
}
} else {
if (clockwise) {
tap_code(KC_VOLU);
} else {
tap_code(KC_VOLD);
}
}
}
#endif
/* oled stuff :) */
#ifdef OLED_DRIVER_ENABLE
uint16_t startup_timer;
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
startup_timer = timer_read();
return rotation;
}
static void render_logo(void) {
static const char PROGMEM logo[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x80, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x02, 0x04, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x05,
0xf8, 0x05, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xc0, 0xe0, 0xe0, 0x70, 0x78,
0x38, 0x3f, 0x1c, 0x0e, 0x0e, 0x0e, 0xfe, 0x0e, 0x0e, 0x1e, 0x1c, 0x3f, 0x38, 0x78, 0x70, 0xe0,
0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x05, 0xf8, 0x05, 0x02, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xa0,
0x13, 0xa2, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xfc,
0xfe, 0xfe, 0xc0, 0xc0, 0xc0, 0xc0, 0xff, 0x00, 0x00, 0x00, 0x3e, 0x3e, 0x3c, 0x3c, 0x00, 0x00,
0x01, 0xff, 0xff, 0xff, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0xa2, 0x13, 0xa0, 0x40, 0x00,
0x00, 0x00, 0x00, 0x80, 0x40, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x80, 0xc0, 0x40, 0x40, 0xc0, 0x80, 0x00, 0x00, 0xc0, 0x40, 0x40, 0xc0, 0x80,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x40, 0xc0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0x40, 0x40, 0xc0, 0x80, 0x00, 0x00, 0x80, 0xc0, 0x40,
0x40, 0xc0, 0x80, 0x00, 0x00, 0x40, 0x40, 0x40, 0x40, 0x40, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00,
0xf9, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x7f, 0xff, 0xff, 0xc0, 0x80, 0x80, 0x0f,
0x1f, 0x1f, 0x01, 0x01, 0x01, 0x01, 0xff, 0x00, 0x00, 0x00, 0x1e, 0x1e, 0x0e, 0x0e, 0x80, 0xc0,
0xc0, 0xff, 0xff, 0x7f, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0xf9, 0x00, 0x00, 0x00,
0x00, 0x00, 0x1f, 0x31, 0x40, 0x4e, 0x40, 0x31, 0x1f, 0x00, 0x00, 0x61, 0x16, 0x08, 0x16, 0x61,
0x00, 0x00, 0x1f, 0x31, 0x60, 0x40, 0x40, 0x60, 0x20, 0x00, 0x00, 0x7f, 0x44, 0x44, 0x64, 0x3b,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x7f,
0x40, 0x40, 0x00, 0x00, 0x00, 0x20, 0x64, 0x44, 0x44, 0x6e, 0x3b, 0x00, 0x00, 0x20, 0x64, 0x44,
0x44, 0x6e, 0x3b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x03, 0x01, 0x00, 0x00, 0x00, 0x08, 0x14,
0x23, 0x14, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x03, 0x07, 0x07,
0x0f, 0xfe, 0x1e, 0x1c, 0x1c, 0x1c, 0xff, 0x1c, 0x1c, 0x1c, 0x1e, 0xfe, 0x0f, 0x07, 0x03, 0x03,
0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x0a, 0x11, 0x0a, 0x04, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x28, 0x44, 0x28, 0x10, 0x10, 0x10, 0x10, 0x10,
0x10, 0x1f, 0x00, 0x00, 0x10, 0x28, 0x47, 0x28, 0x10, 0x00, 0x00, 0x1f, 0x10, 0x10, 0x10, 0x10,
0x10, 0x10, 0x28, 0x44, 0x28, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
oled_write_raw_P(logo, sizeof(logo));
}
/* Shows the name of the current layer and locks for the host (CAPS etc.) */
static void render_info(void) {
oled_write_P(PSTR("Layer: "), false);
switch (get_highest_layer(layer_state)) {
case _HOME:
oled_write_ln_P(PSTR("HOME"), false);
break;
case _MISC:
oled_write_ln_P(PSTR("MISC"), false);
break;
case _RGB:
oled_write_ln_P(PSTR("RGB"), false);
break;
case _BLED:
oled_write_ln_P(PSTR("Backlight"), false);
break;
default:
oled_write_ln_P(PSTR("Undefined"), false);
}
led_t led_state = host_keyboard_led_state();
oled_write_P(led_state.num_lock ? PSTR("NUM ") : PSTR(" "), false);
oled_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR(" "), false);
oled_write_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false);
}
void oled_task_user(void) {
static bool finished_timer = false;
if ((timer_elapsed(startup_timer) < 3000) && !finished_timer) {
render_logo();
} else {
finished_timer = true;
render_info();
}
}
#endif

View File

@@ -0,0 +1,189 @@
/*
Copyright 2021 0xCB - Conor Burns
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
enum layer_names {
_HOME,
_MISC,
_RGB,
_BLED
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_HOME] = LAYOUT(
KC_MPRV, KC_MNXT, KC_MPLY,
KC_PGUP, KC_PGDN, TO(3),
KC_HOME, KC_END, TO(1)
),
[_MISC] = LAYOUT(
_______, _______, _______,
_______, _______, TO(0),
_______, _______, TO(2)
),
[_RGB] = LAYOUT(
RGB_HUI, RGB_HUD, RGB_MOD,
RGB_SAI, RGB_SAD, TO(1),
RGB_SPI, RGB_SPD, TO(3)
),
[_BLED] = LAYOUT(
BL_STEP, BL_BRTG, BL_TOGG,
BL_ON, BL_OFF, TO(2),
BL_INC, BL_DEC, TO(0)
)
};
/* rotary encoder (SW3) - add more else if blocks for more granular layer control */
#ifdef ENCODER_ENABLE
void encoder_update_user(uint8_t index, bool clockwise) {
if (IS_LAYER_ON(_RGB)) {
if (clockwise) {
rgblight_increase_val();
} else {
rgblight_decrease_val();
}
} else if (IS_LAYER_ON(_BLED)) {
if (clockwise) {
backlight_increase();
} else {
backlight_decrease();
}
} else {
if (clockwise) {
tap_code(KC_VOLU);
} else {
tap_code(KC_VOLD);
}
}
}
#endif
/* oled stuff :) */
#ifdef OLED_DRIVER_ENABLE
uint16_t startup_timer;
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
startup_timer = timer_read();
return rotation;
}
static void render_logo(void) {
static const char PROGMEM logo[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x80, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x02, 0x04, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x05,
0xf8, 0x05, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xc0, 0xe0, 0xe0, 0x70, 0x78,
0x38, 0x3f, 0x1c, 0x0e, 0x0e, 0x0e, 0xfe, 0x0e, 0x0e, 0x1e, 0x1c, 0x3f, 0x38, 0x78, 0x70, 0xe0,
0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x05, 0xf8, 0x05, 0x02, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xa0,
0x13, 0xa2, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xfc,
0xfe, 0xfe, 0xc0, 0xc0, 0xc0, 0xc0, 0xff, 0x00, 0x00, 0x00, 0x3e, 0x3e, 0x3c, 0x3c, 0x00, 0x00,
0x01, 0xff, 0xff, 0xff, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0xa2, 0x13, 0xa0, 0x40, 0x00,
0x00, 0x00, 0x00, 0x80, 0x40, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x80, 0xc0, 0x40, 0x40, 0xc0, 0x80, 0x00, 0x00, 0xc0, 0x40, 0x40, 0xc0, 0x80,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x40, 0xc0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0x40, 0x40, 0xc0, 0x80, 0x00, 0x00, 0x80, 0xc0, 0x40,
0x40, 0xc0, 0x80, 0x00, 0x00, 0x40, 0x40, 0x40, 0x40, 0x40, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00,
0xf9, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x7f, 0xff, 0xff, 0xc0, 0x80, 0x80, 0x0f,
0x1f, 0x1f, 0x01, 0x01, 0x01, 0x01, 0xff, 0x00, 0x00, 0x00, 0x1e, 0x1e, 0x0e, 0x0e, 0x80, 0xc0,
0xc0, 0xff, 0xff, 0x7f, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0xf9, 0x00, 0x00, 0x00,
0x00, 0x00, 0x1f, 0x31, 0x40, 0x4e, 0x40, 0x31, 0x1f, 0x00, 0x00, 0x61, 0x16, 0x08, 0x16, 0x61,
0x00, 0x00, 0x1f, 0x31, 0x60, 0x40, 0x40, 0x60, 0x20, 0x00, 0x00, 0x7f, 0x44, 0x44, 0x64, 0x3b,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x7f,
0x40, 0x40, 0x00, 0x00, 0x00, 0x20, 0x64, 0x44, 0x44, 0x6e, 0x3b, 0x00, 0x00, 0x20, 0x64, 0x44,
0x44, 0x6e, 0x3b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x03, 0x01, 0x00, 0x00, 0x00, 0x08, 0x14,
0x23, 0x14, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x03, 0x07, 0x07,
0x0f, 0xfe, 0x1e, 0x1c, 0x1c, 0x1c, 0xff, 0x1c, 0x1c, 0x1c, 0x1e, 0xfe, 0x0f, 0x07, 0x03, 0x03,
0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x0a, 0x11, 0x0a, 0x04, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x28, 0x44, 0x28, 0x10, 0x10, 0x10, 0x10, 0x10,
0x10, 0x1f, 0x00, 0x00, 0x10, 0x28, 0x47, 0x28, 0x10, 0x00, 0x00, 0x1f, 0x10, 0x10, 0x10, 0x10,
0x10, 0x10, 0x28, 0x44, 0x28, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
oled_write_raw_P(logo, sizeof(logo));
}
/* Shows the name of the current layer and locks for the host (CAPS etc.) */
static void render_info(void) {
oled_write_P(PSTR("Layer: "), false);
switch (get_highest_layer(layer_state)) {
case _HOME:
oled_write_ln_P(PSTR("HOME"), false);
break;
case _MISC:
oled_write_ln_P(PSTR("MISC"), false);
break;
case _RGB:
oled_write_ln_P(PSTR("RGB"), false);
break;
case _BLED:
oled_write_ln_P(PSTR("Backlight"), false);
break;
default:
oled_write_ln_P(PSTR("Undefined"), false);
}
led_t led_state = host_keyboard_led_state();
oled_write_P(led_state.num_lock ? PSTR("NUM ") : PSTR(" "), false);
oled_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR(" "), false);
oled_write_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false);
}
void oled_task_user(void) {
static bool finished_timer = false;
if ((timer_elapsed(startup_timer) < 3000) && !finished_timer) {
render_logo();
} else {
finished_timer = true;
render_info();
}
}
#endif

View File

@@ -0,0 +1,25 @@
# 0xCB 1337
Macro keypad
* Keyboard Maintainer: [Conor Burns](https://github.com/conor-burns)
* Hardware Supported: https://github.com/conor-burns/0xcb-1337
* Hardware Availability: Soon on tindie or order your own parts - the hardware in the repo is Open Source :D
* PCB renders :)
![](https://github.com/Conor-Burns/0xcb-1337/blob/main/PCB/top.png)
![](https://github.com/Conor-Burns/0xcb-1337/blob/main/PCB/bottom.png)
To go to bootloader press row 0 col 0 key (top left) while plugging in the board.
Make example for this keyboard (after setting up your build environment):
make 0xcb/1337:default
Flashing example for this keyboard:
make 0xcb/1337:default:flash
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).

View File

@@ -0,0 +1,27 @@
# MCU name
MCU = atmega32u4
# Bootloader selection
BOOTLOADER = qmk-dfu
# Build Options
# change yes to no to disable
#
BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
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
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth
AUDIO_ENABLE = no # Audio output
ENCODER_ENABLE = yes
LTO_ENABLE = yes
OLED_DRIVER_ENABLE = yes

View File

@@ -0,0 +1,25 @@
{
"keyboard_name": "2Key2CrawlPad",
"url": "",
"maintainer": "qmk",
"width": 6.5,
"height": 2,
"layouts": {
"LAYOUT": {
"layout": [
{"label":"K00", "x":0, "y":0},
{"label":"K01", "x":1, "y":0},
{"label":"K02", "x":2, "y":0},
{"label":"K03", "x":3, "y":0},
{"label":"K15", "x":4, "y":0},
{"label":"K10", "x":0, "y":1},
{"label":"K11", "x":1, "y":1},
{"label":"K12", "x":2, "y":1},
{"label":"K13", "x":3, "y":1},
{"label":"K14", "x":4, "y":1},
{"label":"K16", "x":5.5, "y":0.5}
]
}
}
}

View File

@@ -0,0 +1,197 @@
{
"keyboard_name": "40percent.club 4x4",
"url": "",
"maintainer": "qmk",
"height": 4,
"width": 4,
"layouts": {
"LAYOUT_ortho_4x4": {
"layout": [
{"x":0, "y":0},
{"x":1, "y":0},
{"x":2, "y":0},
{"x":3, "y":0},
{"x":0, "y":1},
{"x":1, "y":1},
{"x":2, "y":1},
{"x":3, "y":1},
{"x":0, "y":2},
{"x":1, "y":2},
{"x":2, "y":2},
{"x":3, "y":2},
{"x":0, "y":3},
{"x":1, "y":3},
{"x":2, "y":3},
{"x":3, "y":3}
]
},
"LAYOUT_ortho_4x8": {
"layout": [
{"x":0, "y":0},
{"x":1, "y":0},
{"x":2, "y":0},
{"x":3, "y":0},
{"x":4, "y":0},
{"x":5, "y":0},
{"x":6, "y":0},
{"x":7, "y":0},
{"x":0, "y":1},
{"x":1, "y":1},
{"x":2, "y":1},
{"x":3, "y":1},
{"x":4, "y":1},
{"x":5, "y":1},
{"x":6, "y":1},
{"x":7, "y":1},
{"x":0, "y":2},
{"x":1, "y":2},
{"x":2, "y":2},
{"x":3, "y":2},
{"x":4, "y":2},
{"x":5, "y":2},
{"x":6, "y":2},
{"x":7, "y":2},
{"x":0, "y":3},
{"x":1, "y":3},
{"x":2, "y":3},
{"x":3, "y":3},
{"x":4, "y":3},
{"x":5, "y":3},
{"x":6, "y":3},
{"x":7, "y":3}
]
},
"LAYOUT_ortho_4x12": {
"layout": [
{"x":0, "y":0},
{"x":1, "y":0},
{"x":2, "y":0},
{"x":3, "y":0},
{"x":4, "y":0},
{"x":5, "y":0},
{"x":6, "y":0},
{"x":7, "y":0},
{"x":8, "y":0},
{"x":9, "y":0},
{"x":10, "y":0},
{"x":11, "y":0},
{"x":0, "y":1},
{"x":1, "y":1},
{"x":2, "y":1},
{"x":3, "y":1},
{"x":4, "y":1},
{"x":5, "y":1},
{"x":6, "y":1},
{"x":7, "y":1},
{"x":8, "y":1},
{"x":9, "y":1},
{"x":10, "y":1},
{"x":11, "y":1},
{"x":0, "y":2},
{"x":1, "y":2},
{"x":2, "y":2},
{"x":3, "y":2},
{"x":4, "y":2},
{"x":5, "y":2},
{"x":6, "y":2},
{"x":7, "y":2},
{"x":8, "y":2},
{"x":9, "y":2},
{"x":10, "y":2},
{"x":11, "y":2},
{"x":0, "y":3},
{"x":1, "y":3},
{"x":2, "y":3},
{"x":3, "y":3},
{"x":4, "y":3},
{"x":5, "y":3},
{"x":6, "y":3},
{"x":7, "y":3},
{"x":8, "y":3},
{"x":9, "y":3},
{"x":10, "y":3},
{"x":11, "y":3}
]
},
"LAYOUT_ortho_4x16": {
"layout": [
{"x":0, "y":0},
{"x":1, "y":0},
{"x":2, "y":0},
{"x":3, "y":0},
{"x":4, "y":0},
{"x":5, "y":0},
{"x":6, "y":0},
{"x":7, "y":0},
{"x":8, "y":0},
{"x":9, "y":0},
{"x":10, "y":0},
{"x":11, "y":0},
{"x":12, "y":0},
{"x":13, "y":0},
{"x":14, "y":0},
{"x":15, "y":0},
{"x":0, "y":1},
{"x":1, "y":1},
{"x":2, "y":1},
{"x":3, "y":1},
{"x":4, "y":1},
{"x":5, "y":1},
{"x":6, "y":1},
{"x":7, "y":1},
{"x":8, "y":1},
{"x":9, "y":1},
{"x":10, "y":1},
{"x":11, "y":1},
{"x":12, "y":1},
{"x":13, "y":1},
{"x":14, "y":1},
{"x":15, "y":1},
{"x":0, "y":2},
{"x":1, "y":2},
{"x":2, "y":2},
{"x":3, "y":2},
{"x":4, "y":2},
{"x":5, "y":2},
{"x":6, "y":2},
{"x":7, "y":2},
{"x":8, "y":2},
{"x":9, "y":2},
{"x":10, "y":2},
{"x":11, "y":2},
{"x":12, "y":2},
{"x":13, "y":2},
{"x":14, "y":2},
{"x":15, "y":2},
{"x":0, "y":3},
{"x":1, "y":3},
{"x":2, "y":3},
{"x":3, "y":3},
{"x":4, "y":3},
{"x":5, "y":3},
{"x":6, "y":3},
{"x":7, "y":3},
{"x":8, "y":3},
{"x":9, "y":3},
{"x":10, "y":3},
{"x":11, "y":3},
{"x":12, "y":3},
{"x":13, "y":3},
{"x":14, "y":3},
{"x":15, "y":3}
]
}
}
}

View File

@@ -0,0 +1,183 @@
{
"keyboard_name": "40percent.club 4x4",
"url": "",
"maintainer": "qmk",
"height": 4,
"width": 4,
"layouts": {
"LAYOUT_ortho_5x5": {
"layout": [
{"x":0, "y":0},
{"x":1, "y":0},
{"x":2, "y":0},
{"x":3, "y":0},
{"x":4, "y":0},
{"x":0, "y":1},
{"x":1, "y":1},
{"x":2, "y":1},
{"x":3, "y":1},
{"x":4, "y":1},
{"x":0, "y":2},
{"x":1, "y":2},
{"x":2, "y":2},
{"x":3, "y":2},
{"x":4, "y":2},
{"x":0, "y":3},
{"x":1, "y":3},
{"x":2, "y":3},
{"x":3, "y":3},
{"x":4, "y":3},
{"x":0, "y":4},
{"x":1, "y":4},
{"x":2, "y":4},
{"x":3, "y":4},
{"x":4, "y":4}
]
},
"LAYOUT_ortho_5x10": {
"layout": [
{"x":0, "y":0},
{"x":1, "y":0},
{"x":2, "y":0},
{"x":3, "y":0},
{"x":4, "y":0},
{"x":5, "y":0},
{"x":6, "y":0},
{"x":7, "y":0},
{"x":8, "y":0},
{"x":9, "y":0},
{"x":0, "y":1},
{"x":1, "y":1},
{"x":2, "y":1},
{"x":3, "y":1},
{"x":4, "y":1},
{"x":5, "y":1},
{"x":6, "y":1},
{"x":7, "y":1},
{"x":8, "y":1},
{"x":9, "y":1},
{"x":0, "y":2},
{"x":1, "y":2},
{"x":2, "y":2},
{"x":3, "y":2},
{"x":4, "y":2},
{"x":5, "y":2},
{"x":6, "y":2},
{"x":7, "y":2},
{"x":8, "y":2},
{"x":9, "y":2},
{"x":0, "y":3},
{"x":1, "y":3},
{"x":2, "y":3},
{"x":3, "y":3},
{"x":4, "y":3},
{"x":5, "y":3},
{"x":6, "y":3},
{"x":7, "y":3},
{"x":8, "y":3},
{"x":9, "y":3},
{"x":0, "y":4},
{"x":1, "y":4},
{"x":2, "y":4},
{"x":3, "y":4},
{"x":4, "y":4},
{"x":5, "y":4},
{"x":6, "y":4},
{"x":7, "y":4},
{"x":8, "y":4},
{"x":9, "y":4}
]
},
"LAYOUT_ortho_5x15": {
"layout": [
{"x":0, "y":0},
{"x":1, "y":0},
{"x":2, "y":0},
{"x":3, "y":0},
{"x":4, "y":0},
{"x":5, "y":0},
{"x":6, "y":0},
{"x":7, "y":0},
{"x":8, "y":0},
{"x":9, "y":0},
{"x":10, "y":0},
{"x":11, "y":0},
{"x":12, "y":0},
{"x":13, "y":0},
{"x":14, "y":0},
{"x":0, "y":1},
{"x":1, "y":1},
{"x":2, "y":1},
{"x":3, "y":1},
{"x":4, "y":1},
{"x":5, "y":1},
{"x":6, "y":1},
{"x":7, "y":1},
{"x":8, "y":1},
{"x":9, "y":1},
{"x":10, "y":1},
{"x":11, "y":1},
{"x":12, "y":1},
{"x":13, "y":1},
{"x":14, "y":1},
{"x":0, "y":2},
{"x":1, "y":2},
{"x":2, "y":2},
{"x":3, "y":2},
{"x":4, "y":2},
{"x":5, "y":2},
{"x":6, "y":2},
{"x":7, "y":2},
{"x":8, "y":2},
{"x":9, "y":2},
{"x":10, "y":2},
{"x":11, "y":2},
{"x":12, "y":2},
{"x":13, "y":2},
{"x":14, "y":2},
{"x":0, "y":3},
{"x":1, "y":3},
{"x":2, "y":3},
{"x":3, "y":3},
{"x":4, "y":3},
{"x":5, "y":3},
{"x":6, "y":3},
{"x":7, "y":3},
{"x":8, "y":3},
{"x":9, "y":3},
{"x":10, "y":3},
{"x":11, "y":3},
{"x":12, "y":3},
{"x":13, "y":3},
{"x":14, "y":3},
{"x":0, "y":4},
{"x":1, "y":4},
{"x":2, "y":4},
{"x":3, "y":4},
{"x":4, "y":4},
{"x":5, "y":4},
{"x":6, "y":4},
{"x":7, "y":4},
{"x":8, "y":4},
{"x":9, "y":4},
{"x":10, "y":4},
{"x":11, "y":4},
{"x":12, "y":4},
{"x":13, "y":4},
{"x":14, "y":4}
]
}
}
}

View File

@@ -0,0 +1,81 @@
{
"keyboard_name": "AEKISO60 Rev A",
"url": "",
"maintainer": "4pplet",
"width": 15,
"height": 5,
"layouts": {
"LAYOUT_all": {
"layout": [
{"x":0, "y":0, "w":1.25},
{"x":1.25, "y":0},
{"x":2.25, "y":0},
{"x":3.25, "y":0},
{"x":4.25, "y":0},
{"x":5.25, "y":0},
{"x":6.25, "y":0},
{"x":7.25, "y":0},
{"x":8.25, "y":0},
{"x":9.25, "y":0},
{"x":10.25, "y":0},
{"x":11.25, "y":0},
{"x":12.25, "y":0},
{"x":13.25, "y":0, "w":1.75},
{"x":0, "y":1, "w":1.75},
{"x":1.75, "y":1},
{"x":2.75, "y":1},
{"x":3.75, "y":1},
{"x":4.75, "y":1},
{"x":5.75, "y":1},
{"x":6.75, "y":1},
{"x":7.75, "y":1},
{"x":8.75, "y":1},
{"x":9.75, "y":1},
{"x":10.75, "y":1},
{"x":11.75, "y":1},
{"x":12.75, "y":1},
{"x":0, "y":2, "w":2},
{"x":2, "y":2},
{"x":3, "y":2},
{"x":4, "y":2},
{"x":5, "y":2},
{"x":6, "y":2},
{"x":7, "y":2},
{"x":8, "y":2},
{"x":9, "y":2},
{"x":10, "y":2},
{"x":11, "y":2},
{"x":12, "y":2},
{"x":13, "y":2},
{"x":14, "y":1, "h":2},
{"x":0, "y":3, "w":1.5},
{"x":1.5, "y":3},
{"x":2.5, "y":3},
{"x":3.5, "y":3},
{"x":4.5, "y":3},
{"x":5.5, "y":3},
{"x":6.5, "y":3},
{"x":7.5, "y":3},
{"x":8.5, "y":3},
{"x":9.5, "y":3},
{"x":10.5, "y":3},
{"x":11.5, "y":3},
{"x":12.5, "y":3, "w":1.5},
{"x":14, "y":3},
{"x":0, "y":4, "w":1.5},
{"x":1.5, "y":4, "w":1.25},
{"x":2.75, "y":4, "w":1.5},
{"x":4.25, "y":4, "w":2.75},
{"x":7, "y":4},
{"x":8, "y":4, "w":2.75},
{"x":10.75, "y":4, "w":1.5},
{"x":12.25, "y":4, "w":1.25},
{"x":13.5, "y":4, "w":1.5}
]
}
}
}

View File

@@ -0,0 +1,87 @@
{
"keyboard_name": "Steezy60 Rev A",
"url": "",
"maintainer": "4pplet",
"width": 15,
"height": 5,
"layouts": {
"LAYOUT_all": {
"layout": [
{"x":0, "y":0},
{"x":1, "y":0},
{"x":2, "y":0},
{"x":3, "y":0},
{"x":4, "y":0},
{"x":5, "y":0},
{"x":6, "y":0},
{"x":7, "y":0},
{"x":8, "y":0},
{"x":9, "y":0},
{"x":10, "y":0},
{"x":11, "y":0},
{"x":12, "y":0},
{"x":13, "y":0},
{"x":14, "y":0},
{"x":0, "y":1, "w":1.5},
{"x":1.5, "y":1},
{"x":2.5, "y":1},
{"x":3.5, "y":1},
{"x":4.5, "y":1},
{"x":5.5, "y":1},
{"x":6.5, "y":1},
{"x":7.5, "y":1},
{"x":8.5, "y":1},
{"x":9.5, "y":1},
{"x":10.5, "y":1},
{"x":11.5, "y":1},
{"x":12.5, "y":1},
{"x":13.5, "y":1, "w":1.5},
{"x":0, "y":2, "w":1.75},
{"x":1.75, "y":2},
{"x":2.75, "y":2},
{"x":3.75, "y":2},
{"x":4.75, "y":2},
{"x":5.75, "y":2},
{"x":6.75, "y":2},
{"x":7.75, "y":2},
{"x":8.75, "y":2},
{"x":9.75, "y":2},
{"x":10.75, "y":2},
{"x":11.75, "y":2},
{"x":12.75, "y":2},
{"x":13.75, "y":2, "w":1.25},
{"x":0, "y":3},
{"x":1, "y":3},
{"x":2, "y":3},
{"x":3, "y":3},
{"x":4, "y":3},
{"x":5, "y":3},
{"x":6, "y":3},
{"x":7, "y":3},
{"x":8, "y":3},
{"x":9, "y":3},
{"x":10, "y":3},
{"x":11, "y":3},
{"x":12, "y":3},
{"x":13, "y":3},
{"x":14, "y":3},
{"x":0, "y":4},
{"x":1, "y":4},
{"x":2, "y":4},
{"x":3, "y":4},
{"x":4, "y":4, "w":2.25},
{"x":6.25, "y":4, "w":1.5},
{"x":7.75, "y":4, "w":2.25},
{"x":10, "y":4},
{"x":11, "y":4},
{"x":12, "y":4},
{"x":13, "y":4},
{"x":14, "y":4}
]
}
}
}

20
keyboards/6ball/info.json Normal file
View File

@@ -0,0 +1,20 @@
{
"keyboard_name": "6-Ball",
"url": "",
"maintainer": "qmk",
"width": 3,
"height": 3,
"layouts": {
"LAYOUT": {
"layout": [
{"x":0, "y":0.5},
{"x":1, "y":0},
{"x":2, "y":0.5},
{"x":0, "y":1.5},
{"x":1, "y":2},
{"x":2, "y":1.5}
]
}
}
}

View File

@@ -0,0 +1,40 @@
/* Copyright 2020 Steven Nguyen
*
* 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"
#define VENDOR_ID 0x77C8
#define PRODUCT_ID 0x0001
#define DEVICE_VER 0x0000
#define MANUFACTURER 7c8
#define PRODUCT Framework
#define MATRIX_ROWS 10
#define MATRIX_COLS 6
#define MATRIX_ROW_PINS { B0, B1, D7, B2, D6, B3, D5, B4, D4, B5 }
#define MATRIX_COL_PINS { C0, C1, C2, C3, C4, C5 }
#define ENCODERS_PAD_A { D0 }
#define ENCODERS_PAD_B { D1 }
#define ENCODER_RESOLUTION 4
#define TAP_CODE_DELAY 16
#define DIODE_DIRECTION COL2ROW
#define DEBOUNCE 5
#define LEADER_TIMEOUT 250
#define LEADER_PER_KEY_TIMING 150

View File

@@ -0,0 +1,17 @@
/* Copyright 2020 Steven Nguyen
*
* 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 "framework.h"

View File

@@ -0,0 +1,98 @@
/* Copyright 2020 Steven Nguyen
*
* 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 "quantum.h"
#define ___ KC_NO
#define LAYOUT_ortho_5x12( \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0a, K0b, \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1a, K1b, \
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2a, K2b, \
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3a, K3b, \
K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4a, K4b \
) { \
{ K00, K01, K02, K03, K04, K05 }, \
{ K06, K07, K08, K09, K0a, K0b }, \
{ K10, K11, K12, K13, K14, K15 }, \
{ K16, K17, K18, K19, K1a, K1b }, \
{ K20, K21, K22, K23, K24, K25 }, \
{ K26, K27, K28, K29, K2a, K2b }, \
{ K30, K31, K32, K33, K34, K35 }, \
{ K36, K37, K38, K39, K3a, K3b }, \
{ K40, K41, K42, K43, K44, K45 }, \
{ K46, K47, K48, K49, K4a, K4b } \
}
#define LAYOUT_ortho_5x12_1x2uC( \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0a, K0b, \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1a, K1b, \
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2a, K2b, \
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3a, K3b, \
K40, K41, K42, K43, K44, K45, K47, K48, K49, K4a, K4b \
) { \
{ K00, K01, K02, K03, K04, K05 }, \
{ K06, K07, K08, K09, K0a, K0b }, \
{ K10, K11, K12, K13, K14, K15 }, \
{ K16, K17, K18, K19, K1a, K1b }, \
{ K20, K21, K22, K23, K24, K25 }, \
{ K26, K27, K28, K29, K2a, K2b }, \
{ K30, K31, K32, K33, K34, K35 }, \
{ K36, K37, K38, K39, K3a, K3b }, \
{ K40, K41, K42, K43, K44, K45 }, \
{ ___, K47, K48, K49, K4a, K4b } \
}
#define LAYOUT_preonic_2x2u( \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0a, K0b, \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1a, K1b, \
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2a, K2b, \
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3a, K3b, \
K40, K41, K42, K43, K45, K46, K48, K49, K4a, K4b \
) { \
{ K00, K01, K02, K03, K04, K05 }, \
{ K06, K07, K08, K09, K0a, K0b }, \
{ K10, K11, K12, K13, K14, K15 }, \
{ K16, K17, K18, K19, K1a, K1b }, \
{ K20, K21, K22, K23, K24, K25 }, \
{ K26, K27, K28, K29, K2a, K2b }, \
{ K30, K31, K32, K33, K34, K35 }, \
{ K36, K37, K38, K39, K3a, K3b }, \
{ K40, K41, K42, K43, ___, K45 }, \
{ K46, ___, K48, K49, K4a, K4b } \
}
#define framework_via( \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0a, K0b, \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1a, K1b, \
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2a, K2b, \
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3a, K3b, \
K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4a, K4b, \
K50, K51 \
) { \
{ K00, K01, K02, K03, K04, K05 }, \
{ K06, K07, K08, K09, K0a, K0b }, \
{ K10, K11, K12, K13, K14, K15 }, \
{ K16, K17, K18, K19, K1a, K1b }, \
{ K20, K21, K22, K23, K24, K25 }, \
{ K26, K27, K28, K29, K2a, K2b }, \
{ K30, K31, K32, K33, K34, K35 }, \
{ K36, K37, K38, K39, K3a, K3b }, \
{ K40, K41, K42, K43, K44, K45 }, \
{ K46, K47, K48, K49, K4a, K4b }, \
{ K50, K51 } \
}

View File

@@ -0,0 +1,210 @@
{
"keyboard_name": "Framework",
"url": "",
"maintainer": "stevennguyen",
"width": 12,
"height": 5,
"layouts": {
"LAYOUT_ortho_5x12": {
"layout": [
{"x": 0, "y": 0},
{"x": 1, "y": 0},
{"x": 2, "y": 0},
{"x": 3, "y": 0},
{"x": 4, "y": 0},
{"x": 5, "y": 0},
{"x": 6, "y": 0},
{"x": 7, "y": 0},
{"x": 8, "y": 0},
{"x": 9, "y": 0},
{"x": 10, "y": 0},
{"x": 11, "y": 0},
{"x": 0, "y": 1},
{"x": 1, "y": 1},
{"x": 2, "y": 1},
{"x": 3, "y": 1},
{"x": 4, "y": 1},
{"x": 5, "y": 1},
{"x": 6, "y": 1},
{"x": 7, "y": 1},
{"x": 8, "y": 1},
{"x": 9, "y": 1},
{"x": 10, "y": 1},
{"x": 11, "y": 1},
{"x": 0, "y": 2},
{"x": 1, "y": 2},
{"x": 2, "y": 2},
{"x": 3, "y": 2},
{"x": 4, "y": 2},
{"x": 5, "y": 2},
{"x": 6, "y": 2},
{"x": 7, "y": 2},
{"x": 8, "y": 2},
{"x": 9, "y": 2},
{"x": 10, "y": 2},
{"x": 11, "y": 2},
{"x": 0, "y": 3},
{"x": 1, "y": 3},
{"x": 2, "y": 3},
{"x": 3, "y": 3},
{"x": 4, "y": 3},
{"x": 5, "y": 3},
{"x": 6, "y": 3},
{"x": 7, "y": 3},
{"x": 8, "y": 3},
{"x": 9, "y": 3},
{"x": 10, "y": 3},
{"x": 11, "y": 3},
{"x": 0, "y": 4},
{"x": 1, "y": 4},
{"x": 2, "y": 4},
{"x": 3, "y": 4},
{"x": 4, "y": 4},
{"x": 5, "y": 4},
{"x": 6, "y": 4},
{"x": 7, "y": 4},
{"x": 8, "y": 4},
{"x": 9, "y": 4},
{"x": 10, "y": 4},
{"x": 11, "y": 4}
]
},
"LAYOUT_ortho_5x12_1x2uC": {
"layout": [
{"x": 0, "y": 0},
{"x": 1, "y": 0},
{"x": 2, "y": 0},
{"x": 3, "y": 0},
{"x": 4, "y": 0},
{"x": 5, "y": 0},
{"x": 6, "y": 0},
{"x": 7, "y": 0},
{"x": 8, "y": 0},
{"x": 9, "y": 0},
{"x": 10, "y": 0},
{"x": 11, "y": 0},
{"x": 0, "y": 1},
{"x": 1, "y": 1},
{"x": 2, "y": 1},
{"x": 3, "y": 1},
{"x": 4, "y": 1},
{"x": 5, "y": 1},
{"x": 6, "y": 1},
{"x": 7, "y": 1},
{"x": 8, "y": 1},
{"x": 9, "y": 1},
{"x": 10, "y": 1},
{"x": 11, "y": 1},
{"x": 0, "y": 2},
{"x": 1, "y": 2},
{"x": 2, "y": 2},
{"x": 3, "y": 2},
{"x": 4, "y": 2},
{"x": 5, "y": 2},
{"x": 6, "y": 2},
{"x": 7, "y": 2},
{"x": 8, "y": 2},
{"x": 9, "y": 2},
{"x": 10, "y": 2},
{"x": 11, "y": 2},
{"x": 0, "y": 3},
{"x": 1, "y": 3},
{"x": 2, "y": 3},
{"x": 3, "y": 3},
{"x": 4, "y": 3},
{"x": 5, "y": 3},
{"x": 6, "y": 3},
{"x": 7, "y": 3},
{"x": 8, "y": 3},
{"x": 9, "y": 3},
{"x": 10, "y": 3},
{"x": 11, "y": 3},
{"x": 0, "y": 4},
{"x": 1, "y": 4},
{"x": 2, "y": 4},
{"x": 3, "y": 4},
{"x": 4, "y": 4},
{"x": 5, "y": 4, "w": 2},
{"x": 7, "y": 4},
{"x": 8, "y": 4},
{"x": 9, "y": 4},
{"x": 10, "y": 4},
{"x": 11, "y": 4}
]
},
"LAYOUT_preonic_2x2u": {
"layout": [
{"x": 0, "y": 0},
{"x": 1, "y": 0},
{"x": 2, "y": 0},
{"x": 3, "y": 0},
{"x": 4, "y": 0},
{"x": 5, "y": 0},
{"x": 6, "y": 0},
{"x": 7, "y": 0},
{"x": 8, "y": 0},
{"x": 9, "y": 0},
{"x": 10, "y": 0},
{"x": 11, "y": 0},
{"x": 0, "y": 1},
{"x": 1, "y": 1},
{"x": 2, "y": 1},
{"x": 3, "y": 1},
{"x": 4, "y": 1},
{"x": 5, "y": 1},
{"x": 6, "y": 1},
{"x": 7, "y": 1},
{"x": 8, "y": 1},
{"x": 9, "y": 1},
{"x": 10, "y": 1},
{"x": 11, "y": 1},
{"x": 0, "y": 2},
{"x": 1, "y": 2},
{"x": 2, "y": 2},
{"x": 3, "y": 2},
{"x": 4, "y": 2},
{"x": 5, "y": 2},
{"x": 6, "y": 2},
{"x": 7, "y": 2},
{"x": 8, "y": 2},
{"x": 9, "y": 2},
{"x": 10, "y": 2},
{"x": 11, "y": 2},
{"x": 0, "y": 3},
{"x": 1, "y": 3},
{"x": 2, "y": 3},
{"x": 3, "y": 3},
{"x": 4, "y": 3},
{"x": 5, "y": 3},
{"x": 6, "y": 3},
{"x": 7, "y": 3},
{"x": 8, "y": 3},
{"x": 9, "y": 3},
{"x": 10, "y": 3},
{"x": 11, "y": 3},
{"x": 0, "y": 4},
{"x": 1, "y": 4},
{"x": 2, "y": 4},
{"x": 3, "y": 4},
{"x": 4, "y": 4, "w": 2},
{"x": 6, "y": 4, "w": 2},
{"x": 8, "y": 4},
{"x": 9, "y": 4},
{"x": 10, "y": 4},
{"x": 11, "y": 4}
]
}
}
}

View File

@@ -0,0 +1,156 @@
/* Copyright 2020 Steven Nguyen
*
* 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
enum framework_layers {
_BASE,
_LOWER,
_RAISE,
_BOTH,
_FN
};
enum framework_keycodes {
LOWER = SAFE_RANGE,
RAISE,
BOTH,
FN
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_BASE] = LAYOUT_ortho_5x12(
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MEDIA_PLAY_PAUSE,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
KC_LCTL, KC_LGUI, KC_LALT, FN, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
),
[_LOWER] = LAYOUT_ortho_5x12(
_______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, _______,
KC_LEAD, KC_F1, KC_F2, KC_F3, KC_F4, _______, _______, _______, _______, KC_LBRC, KC_RBRC, KC_BSLS,
KC_DEL, KC_F5, KC_F6, KC_F7, KC_F8, _______, _______, _______, _______, _______, _______, _______,
KC_TRNS, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, _______, _______, KC_TRNS, KC_HOME, KC_PGDN, KC_PGUP, KC_END
),
[_RAISE] = LAYOUT_ortho_5x12(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, KC_TRNS, _______, _______, KC_TRNS, _______, _______, _______, _______
),
[_BOTH] = LAYOUT_ortho_5x12(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, LALT(KC_F4), _______, KC_MYCM, LGUI(KC_R), _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, DEBUG
),
[_FN] = LAYOUT_ortho_5x12(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
)
};
void encoder_update_user(uint8_t index, bool clockwise) {
if (index == 0) {
switch (get_highest_layer(layer_state)) {
case _BASE:
if (clockwise) {
tap_code(KC_AUDIO_VOL_UP);
} else {
tap_code(KC_AUDIO_VOL_DOWN);
}
break;
case _LOWER:
if (clockwise) {
tap_code16(LCTL(KC_TAB));
} else {
tap_code16(LCTL(LSFT(KC_TAB)));
}
break;
case _RAISE:
if (clockwise) {
tap_code16(LCTL(KC_RGHT));
} else {
tap_code16(LCTL(KC_LEFT));
}
break;
case _BOTH:
if (clockwise) {
tap_code16(LCTL(KC_Y));
} else {
tap_code16(LCTL(KC_Z));
}
break;
case _FN:
if (clockwise) {
tap_code(_______);
} else {
tap_code(_______);
}
break;
default:
break;
}
}
}
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case LOWER:
if (record->event.pressed) {
layer_on(_LOWER);
update_tri_layer(_LOWER, _RAISE, _BOTH);
} else {
layer_off(_LOWER);
update_tri_layer(_LOWER, _RAISE, _BOTH);
}
return false;
case RAISE:
if (record->event.pressed) {
layer_on(_RAISE);
update_tri_layer(_LOWER, _RAISE, _BOTH);
} else {
layer_off(_RAISE);
update_tri_layer(_LOWER, _RAISE, _BOTH);
}
return false;
case FN:
if (record->event.pressed) {
layer_on(_FN);
} else {
layer_off(_FN);
}
return false;
}
return true;
}

View File

@@ -0,0 +1,23 @@
/* Copyright 2020 Steven Nguyen
*
* 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/>.
*/
/* VIA specific defines to increase dynamic layer count */
#define VIA_EEPROM_LAYOUT_OPTIONS_SIZE 3
#define DYNAMIC_KEYMAP_LAYER_COUNT 5
/* defining an extra row for encoder assignment in VIA */
#undef MATRIX_ROWS
#define MATRIX_ROWS 11

View File

@@ -0,0 +1,129 @@
/* Copyright 2020 Steven Nguyen
*
* 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
enum framework_layers {
_BASE,
_LOWER,
_RAISE,
_BOTH,
_FN
};
enum framework_keycodes {
LOWER = SAFE_RANGE,
RAISE,
BOTH,
FN
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_BASE] = framework_via(
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MEDIA_PLAY_PAUSE,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
KC_LCTL, KC_LGUI, KC_LALT, MO(_FN), MO(_LOWER), KC_SPC, KC_SPC, MO(_RAISE), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT,
KC_AUDIO_VOL_DOWN, KC_AUDIO_VOL_UP
),
[_LOWER] = framework_via(
_______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, _______,
KC_LEAD, KC_F1, KC_F2, KC_F3, KC_F4, _______, _______, _______, _______, KC_LBRC, KC_RBRC, KC_BSLS,
KC_DEL, KC_F5, KC_F6, KC_F7, KC_F8, _______, _______, _______, _______, _______, _______, _______,
_______, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, MO(_BOTH), KC_HOME, KC_PGDN, KC_PGUP, KC_END,
C(S(KC_TAB)), C(KC_TAB)
),
[_RAISE] = framework_via(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, MO(_BOTH), _______, _______, _______, _______, _______, _______, _______,
C(KC_LEFT), C(KC_RIGHT)
),
[_BOTH] = framework_via(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, EEP_RST, DEBUG,
C(KC_Z), C(KC_Y)
),
[_FN] = framework_via(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
KC_MS_WH_LEFT, KC_MS_WH_RIGHT
)
};
LEADER_EXTERNS();
void matrix_scan_user(void) {
LEADER_DICTIONARY() {
leading = false;
leader_end();
// qq, alt+f4 close window
SEQ_TWO_KEYS(KC_Q, KC_Q) {
tap_code16(A(KC_F4));
}
// ee, open explorer
SEQ_TWO_KEYS(KC_E, KC_E) {
tap_code16(G(KC_E));
}
// rr, windows run prompt
SEQ_TWO_KEYS(KC_R, KC_R) {
tap_code16(G(KC_R));
}
// ww, maximize window
SEQ_TWO_KEYS(KC_W, KC_W) {
tap_code16(G(KC_UP));
}
// ss, minimize window
SEQ_TWO_KEYS(KC_S, KC_S) {
tap_code16(G(KC_DOWN));
}
// <space><space>, toggle desktop
SEQ_TWO_KEYS(KC_SPC, KC_SPC) {
tap_code16(G(KC_D));
}
}
}
void encoder_update_user(uint8_t index, bool clockwise) {
uint8_t layer = get_highest_layer(layer_state);
if (index == 0) {
if (clockwise) {
tap_code16(dynamic_keymap_get_keycode(layer, 10, 1));
} else {
tap_code16(dynamic_keymap_get_keycode(layer, 10, 0));
}
}
}

View File

@@ -0,0 +1,3 @@
# Steven's Framework layout
This is a VIA compatible layout, exactly like the default VIA keymap, but with some leader key sequences that I find convenient.

View File

@@ -0,0 +1,23 @@
/* Copyright 2020 Steven Nguyen
*
* 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/>.
*/
/* VIA specific defines to increase dynamic layer count */
#define VIA_EEPROM_LAYOUT_OPTIONS_SIZE 3
#define DYNAMIC_KEYMAP_LAYER_COUNT 5
/* defining an extra row for encoder assignment in VIA */
#undef MATRIX_ROWS
#define MATRIX_ROWS 11

View File

@@ -0,0 +1,90 @@
/* Copyright 2020 Steven Nguyen
*
* 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
enum framework_layers {
_BASE,
_LOWER,
_RAISE,
_BOTH,
_FN
};
enum framework_keycodes {
LOWER = SAFE_RANGE,
RAISE,
BOTH,
FN
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_BASE] = framework_via(
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MEDIA_PLAY_PAUSE,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
KC_LCTL, KC_LGUI, KC_LALT, MO(_FN), MO(_LOWER), KC_SPC, KC_SPC, MO(_RAISE), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT,
KC_AUDIO_VOL_DOWN, KC_AUDIO_VOL_UP
),
[_LOWER] = framework_via(
_______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, _______,
_______, KC_F1, KC_F2, KC_F3, KC_F4, _______, _______, _______, _______, KC_LBRC, KC_RBRC, KC_BSLS,
KC_DEL, KC_F5, KC_F6, KC_F7, KC_F8, _______, _______, _______, _______, _______, _______, _______,
_______, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, MO(_BOTH), KC_HOME, KC_PGDN, KC_PGUP, KC_END,
C(S(KC_TAB)), C(KC_TAB)
),
[_RAISE] = framework_via(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, MO(_BOTH), _______, _______, _______, _______, _______, _______, _______,
C(KC_LEFT), C(KC_RIGHT)
),
[_BOTH] = framework_via(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, EEP_RST, DEBUG,
C(KC_Z), C(KC_Y)
),
[_FN] = framework_via(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
KC_MS_WH_LEFT, KC_MS_WH_RIGHT
)
};
void encoder_update_user(uint8_t index, bool clockwise) {
uint8_t layer = get_highest_layer(layer_state);
if (index == 0) {
if (clockwise) {
tap_code16(dynamic_keymap_get_keycode(layer, 10, 1));
} else {
tap_code16(dynamic_keymap_get_keycode(layer, 10, 0));
}
}
}

View File

@@ -0,0 +1,2 @@
VIA_ENABLE = yes
LEADER_ENABLE = no

View File

@@ -0,0 +1,30 @@
# Framework
![Framework](https://i.imgur.com/njrHoH1.jpeg)
## Features
* All through-hole components (except Kailh hotswap sockets)
* QMK firmware with VIA support
* Rotary encoder
* Hotswappable switches
* FR-4 and acrylic sandwich construction
* USB Type-C
* Supports MIT (one 2u), grid (two 1u), and two 2u space keys
## Info
* Keyboard maintainer: [Steven Nguyen](https://github.com/stevennguyen)
* Hardware supported: Framework
* Hardware availability: [Steven Nguyen](https://github.com/stevennguyen)
Make example for this keyboard (after setting up your build environment):
make 7c8/framework:default # default keymap
make 7c8/framework:via # via-compatible keymap
Flashing example for this keyboard:
make 7c8/framework:default:flash
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).

View File

@@ -0,0 +1,20 @@
MCU = atmega328p
BOOTLOADER = USBasp
BOOTMAGIC_ENABLE = no
MOUSEKEY_ENABLE = yes
EXTRAKEY_ENABLE = yes
CONSOLE_ENABLE = no
COMMAND_ENABLE = no
SLEEP_LED_ENABLE = no
NKRO_ENABLE = no
BACKLIGHT_ENABLE = no
RGBLIGHT_ENABLE = no
MIDI_ENABLE = no
UNICODE_ENABLE = no
BLUETOOTH_ENABLE = no
AUDIO_ENABLE = no
FAUXCLICKY_ENABLE = no
LAYOUTS_HAS_RGB = no
ENCODER_ENABLE = yes
LEADER_ENABLE = yes

View File

@@ -1,6 +1,5 @@
{
"keyboard_name": "SharkPCB",
"keyboard_folder": "acheron/shark",
"url": "https://gondolindrim.github.io/AcheronDocs/shark/intro.html",
"maintainer": "Gondolindrim",
"width": 12,

View File

@@ -0,0 +1,85 @@
{
"keyboard_name": "Constellation",
"url": "",
"maintainer": "Xelus22",
"width": 16,
"height": 5,
"layouts": {
"LAYOUT_all": {
"layout": [
{"x":0, "y":0},
{"x":1, "y":0},
{"x":2, "y":0},
{"x":3, "y":0},
{"x":4, "y":0},
{"x":5, "y":0},
{"x":6, "y":0},
{"x":7, "y":0},
{"x":8, "y":0},
{"x":9, "y":0},
{"x":10, "y":0},
{"x":11, "y":0},
{"x":12, "y":0},
{"x":13, "y":0},
{"x":14, "y":0},
{"x":15, "y":0},
{"x":0, "y":1, "w":1.5},
{"x":1.5, "y":1},
{"x":2.5, "y":1},
{"x":3.5, "y":1},
{"x":4.5, "y":1},
{"x":5.5, "y":1},
{"x":6.5, "y":1},
{"x":7.5, "y":1},
{"x":8.5, "y":1},
{"x":9.5, "y":1},
{"x":10.5, "y":1},
{"x":11.5, "y":1},
{"x":12.5, "y":1},
{"x":13.5, "y":1, "w":1.5},
{"x":15, "y":1},
{"x":0, "y":2, "w":1.75},
{"x":1.75, "y":2},
{"x":2.75, "y":2},
{"x":3.75, "y":2},
{"x":4.75, "y":2},
{"x":5.75, "y":2},
{"x":6.75, "y":2},
{"x":7.75, "y":2},
{"x":8.75, "y":2},
{"x":9.75, "y":2},
{"x":10.75, "y":2},
{"label":"\"", "x":11.75, "y":2},
{"x":12.75, "y":2, "w":2.25},
{"x":15, "y":2},
{"x":0, "y":3, "w":2.25},
{"x":2.25, "y":3},
{"x":3.25, "y":3},
{"x":4.25, "y":3},
{"x":5.25, "y":3},
{"x":6.25, "y":3},
{"x":7.25, "y":3},
{"x":8.25, "y":3},
{"x":9.25, "y":3},
{"x":10.25, "y":3},
{"x":11.25, "y":3},
{"x":12.25, "y":3, "w":1.75},
{"x":14, "y":3},
{"x":15, "y":3},
{"x":0, "y":4, "w":1.25},
{"x":1.25, "y":4, "w":1.25},
{"x":2.5, "y":4, "w":1.25},
{"x":3.75, "y":4, "w":6.25},
{"x":10, "y":4, "w":1.5},
{"x":11.5, "y":4, "w":1.5},
{"x":13, "y":4},
{"x":14, "y":4},
{"x":15, "y":4}
]
}
}
}

View File

@@ -0,0 +1,87 @@
/* Copyright 2021 eithanshavit
*
* 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
enum layer_names {
_MAIN,
_LOWER,
_RAISE,
};
#define LOWER MO(_LOWER)
#define RAISE MO(_RAISE)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_MAIN] = LAYOUT(
//┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐┌────────┬────────┬────────┐
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, KC_MINS, KC_EQL, KC_GRV,
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, KC_LBRC, KC_RBRC, KC_BSLS,
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_UP,
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
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_LEFT, KC_DOWN, KC_RIGHT,
//└────────┴────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┴────────┴────────┴────────┘└────────┴────────┴────────┘
KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_ENT, RAISE, LOWER, XXXXXXX
// └────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┘
),
[_LOWER] = LAYOUT(
//┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐┌────────┬────────┬────────┐
RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU,
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
//└────────┴────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┴────────┴────────┴────────┘└────────┴────────┴────────┘
_______, _______, _______, _______, _______, _______, _______, _______
// └────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┘
),
[_RAISE] = LAYOUT(
//┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐┌────────┬────────┬────────┐
_______, _______, _______, _______, _______, _______, _______, KC_PEQL, KC_PSLS, KC_PAST, KC_PMNS, _______, _______, _______, _______,
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
_______, _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, KC_PPLS, _______, _______, _______, _______,
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
_______, _______, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, _______, _______, _______,
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
_______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______, _______, _______, _______, _______,
//└────────┴────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┴────────┴────────┴────────┘└────────┴────────┴────────┘
_______, _______, _______, _______, _______, _______, KC_P0, KC_PDOT
// └────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┘
),
[3] = LAYOUT(
//┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐┌────────┬────────┬────────┐
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
//└────────┴────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┴────────┴────────┴────────┘└────────┴────────┴────────┘
_______, _______, _______, _______, _______, _______, _______, _______
// └────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┘
)
};

View File

@@ -0,0 +1,5 @@
# Default Breeze Layout + VIA support
![Breeze Layout Image](https://i.imgur.com/O8FJWD6.jpeg)
This is the default suggested layout for Breeze Split Keyboard, with VIA support.

View File

@@ -0,0 +1,10 @@
VIA_ENABLE = yes
# LTO: link time optimization makes the build take slightly longer
# but makes the resulting .hex file smaller, which allows you to
# fit more features into smaller MCUs:
LTO_ENABLE = yes
# Support for these features make the hex file larger, but we want 'em:
MOUSEKEY_ENABLE = yes # Allow mapping of mouse control keys
EXTRAKEY_ENABLE = yes # Allow audio & system control keys
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = yes # Support USB N-key roll over.

View File

@@ -0,0 +1,75 @@
/*
Copyright 2021 Spencer Deven <splitlogicdesign@gmail.com>
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 <http://www.gnu.org/licenses/>.
*/
#pragma once
#include "config_common.h"
/* USB Device descriptor parameter */
#define VENDOR_ID 0xF901
#define PRODUCT_ID 0xF902
#define DEVICE_VER 0x0001
#define MANUFACTURER Aleblazer
#define PRODUCT Zodiark
#define NO_ACTION_MACRO
#define SOFT_SERIAL_PIN D3
#define SERIAL_USE_MULTI_TRANSACTION
#define SELECT_SOFT_SERIAL_SPEED 1
/* key matrix size */
#define MATRIX_ROWS 10
#define MATRIX_COLS 7
#define DIODE_DIRECTION COL2ROW
#define ENCODERS_PAD_A { D2 }
#define ENCODERS_PAD_B { D4 }
#define ENCODERS_PAD_A_RIGHT { D4 }
#define ENCODERS_PAD_B_RIGHT { D2 }
#define ENCODER_RESOLUTION 3
/* key matrix pins */
#define MATRIX_ROW_PINS { C6, D7, E6, B4, F4 }
#define MATRIX_COL_PINS { F5, F6, F7, B1, B3, B2, B6 }
/* Set 0 if debouncing isn't needed */
#define DEBOUNCE 5
#define RGB_DI_PIN B5
#ifdef RGBLIGHT_ENABLE
#define RGBLED_NUM 68
#define RGBLIGHT_SPLIT
#define RGBLED_SPLIT { 34, 34 }
#define RGBLIGHT_LIMIT_VAL 170
#define RGBLIGHT_ANIMATIONS
#define RGBLIGHT_HUE_STEP 8
#define RGBLIGHT_SAT_STEP 8
#define RGBLIGHT_VAL_STEP 8
#endif
#ifdef RGB_MATRIX_ENABLE
#define DRIVER_LED_TOTAL 68
#define RGB_MATRIX_SPLIT { 34, 34 }
#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 // limits maximum brightness of LEDs to 150 out of 255. Higher may cause the controller to crash.
#define RGB_MATRIX_KEYPRESSES
#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
#define RGB_MATRIX_HUE_STEP 8
#define RGB_MATRIX_SAT_STEP 8
#define RGB_MATRIX_VAL_STEP 8
#define RGB_MATRIX_SPD_STEP 10
#endif

View File

@@ -0,0 +1,12 @@
{
"keyboard_name": "zodiark",
"url": "https://github.com/Aleblazer/qmk_firmware/tree/master/keyboards/zodiark",
"maintainer": "Aleblazer",
"width": 19,
"height": 8.48,
"layouts": {
"LAYOUT": {
"layout": [{"label":"L03", "x":3, "y":0}, {"label":"R03", "x":15, "y":0}, {"label":"L02", "x":2, "y":0.125}, {"label":"L04", "x":4, "y":0.125}, {"label":"R02", "x":14, "y":0.125}, {"label":"R04", "x":16, "y":0.125}, {"label":"L05", "x":5, "y":0.25}, {"label":"R01", "x":13, "y":0.25}, {"label":"L00", "x":0, "y":0.53}, {"label":"L01", "x":1, "y":0.53}, {"label":"R05", "x":17, "y":0.53}, {"label":"R06", "x":18, "y":0.53}, {"label":"L13", "x":3, "y":1}, {"label":"R13", "x":15, "y":1}, {"label":"L12", "x":2, "y":1.125}, {"label":"L14", "x":4, "y":1.125}, {"label":"R12", "x":14, "y":1.125}, {"label":"R14", "x":16, "y":1.125}, {"label":"L15", "x":5, "y":1.25}, {"label":"R11", "x":13, "y":1.25}, {"label":"L10", "x":0, "y":1.53}, {"label":"L11", "x":1, "y":1.53}, {"label":"R15", "x":17, "y":1.53}, {"label":"R16", "x":18, "y":1.53}, {"label":"L06", "x":6, "y":1.7000000000000002}, {"label":"R00", "x":12, "y":1.7000000000000002}, {"label":"L23", "x":3, "y":2.0}, {"label":"R23", "x":15, "y":2.0}, {"label":"L22", "x":2, "y":2.125}, {"label":"L24", "x":4, "y":2.125}, {"label":"R22", "x":14, "y":2.125}, {"label":"R24", "x":16, "y":2.125}, {"label":"L25", "x":5, "y":2.25}, {"label":"R21", "x":13, "y":2.25}, {"label":"L20", "x":0, "y":2.5300000000000002}, {"label":"L21", "x":1, "y":2.5300000000000002}, {"label":"R25", "x":17, "y":2.5300000000000002}, {"label":"R26", "x":18, "y":2.5300000000000002}, {"label":"L16", "x":6, "y":2.7}, {"label":"R10", "x":12, "y":2.7}, {"label":"L33", "x":3, "y":3.0000000000000004}, {"label":"R33", "x":15, "y":3.0000000000000004}, {"label":"L32", "x":2, "y":3.1250000000000004}, {"label":"L34", "x":4, "y":3.1250000000000004}, {"label":"R32", "x":14, "y":3.1250000000000004}, {"label":"R34", "x":16, "y":3.1250000000000004}, {"label":"L35", "x":5, "y":3.2500000000000004}, {"label":"R31", "x":13, "y":3.2500000000000004}, {"label":"L30", "x":0, "y":3.5300000000000002}, {"label":"L31", "x":1, "y":3.5300000000000002}, {"label":"R35", "x":17, "y":3.5300000000000002}, {"label":"R36", "x":18, "y":3.5300000000000002}, {"label":"L43", "x":3, "y":4.0}, {"label":"R43", "x":15, "y":4.0}, {"label":"L42", "x":2, "y":4.125}, {"label":"R44", "x":16, "y":4.125}, {"label":"L44", "x":4, "y":4.13}, {"label":"R42", "x":14, "y":4.13}, {"label":"L40", "x":0, "y":4.53}, {"label":"L41", "x":1, "y":4.53}, {"label":"R45", "x":17, "y":4.53}, {"label":"R46", "x":18, "y":4.53}, {"label":"L26", "x":-0.33, "y":5.13}, {"label":"L36", "x":0.6699999999999999, "y":5.13}, {"label":"L45", "x":-0.83, "y":6.13, "w":1.5}, {"label":"L46", "x":0.67, "y":6.13}, {"label":"R30", "x":-2.1, "y":6.48}, {"label":"R20", "x":-1.1, "y":6.48}, {"label":"R40", "x":-2.1, "y":7.48}, {"label":"R41", "x":-1.1, "y":7.48, "w":1.5}]
}
}
}

View File

@@ -0,0 +1,22 @@
/*
Copyright 2021 Spencer Deven <splitlogicdesign@gmail.com>
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 <http://www.gnu.org/licenses/>.
*/
#pragma once
#ifdef OLED_DRIVER_ENABLE
#define OLED_DISPLAY_128X64
#define OLED_TIMEOUT 400000
#endif

View File

@@ -0,0 +1,327 @@
/*
Copyright 2021 Spencer Deven <splitlogicdesign@gmail.com>
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 <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
enum sofle_layers {
/* _M_XYZ = Mac Os, _W_XYZ = Win/Linux */
_QWERTY,
_COLEMAK,
_LOWER,
_RAISE,
_ADJUST,
};
enum custom_keycodes {
KC_QWERTY = SAFE_RANGE,
KC_COLEMAK,
KC_LOWER,
KC_RAISE,
KC_ADJUST,
KC_PRVWD,
KC_NXTWD,
KC_LSTRT,
KC_LEND,
KC_DLINE
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_QWERTY] = LAYOUT(
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
KC_ADJUST, KC_A, KC_S, KC_D, KC_F, KC_G, KC_MINS, KC_EQL, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_GRV, KC_MUTE, RGB_TOG, KC_DEL,KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT ,
KC_LCTL, KC_LALT, KC_LGUI, LALT(KC_TAB), KC_LOWER, KC_SPC, KC_ENT, KC_ENT, KC_SPC, KC_RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
),
[_LOWER] = LAYOUT(
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
KC_PSLS, KC_P7, KC_P8, KC_P9, KC_NLCK, _______, _______, _______, _______, KC_PSLS, KC_P7, KC_P8, KC_P9, KC_F12,
KC_CAPS, KC_P4, KC_P5, KC_P6, KC_NLCK, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, KC_NLCK,
_______, KC_P1, KC_P2, KC_P3, _______, _______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______,
_______, KC_P0, KC_PDOT, KC_PENT, _______, _______, _______, _______, _______, _______, KC_P0, KC_PDOT, KC_PENT, _______
),
[_RAISE] = LAYOUT(
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
KC_PSLS, KC_P7, KC_P8, KC_P9, KC_NLCK, _______, _______, _______, _______, KC_PSLS, KC_P7, KC_P8, KC_P9, KC_F12,
KC_CAPS, KC_P4, KC_P5, KC_P6, KC_NLCK, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, KC_NLCK,
_______, KC_P1, KC_P2, KC_P3, _______, _______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______,
_______, KC_P0, KC_PDOT, KC_PENT, _______, _______, _______, _______, _______, _______, KC_P0, KC_PDOT, KC_PENT, _______
),
[_ADJUST] = LAYOUT(
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
_______, _______, _______, _______, _______, _______, _______, _______, _______, EEP_RST, _______, _______, _______, KC_F12,
_______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_MOD, RGB_SPI, RGB_HUI, RGB_SAI, RGB_VAI,
_______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_SPD, RGB_HUD, RGB_SAD, RGB_VAD
)
};
#ifdef OLED_DRIVER_ENABLE
static void render_logo(void) {
static const char PROGMEM qmk_logo[] = {
0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94,
0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4,
0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,0
};
oled_write_P(qmk_logo, false);
}
static void print_status_narrow(void) {
// Print current mode
oled_write_P(PSTR("\n\n"), false);
oled_write_ln_P(PSTR("MODE"), false);
oled_write_ln_P(PSTR(""), false);
if (keymap_config.swap_lctl_lgui) {
oled_write_ln_P(PSTR("MAC"), false);
} else {
oled_write_ln_P(PSTR("WIN"), false);
}
switch (get_highest_layer(default_layer_state)) {
case _QWERTY:
oled_write_ln_P(PSTR("Qwrt"), false);
break;
case _COLEMAK:
oled_write_ln_P(PSTR("Clmk"), false);
break;
default:
oled_write_P(PSTR("Undef"), false);
}
oled_write_P(PSTR("\n\n"), false);
// Print current layer
oled_write_ln_P(PSTR("LAYER"), false);
switch (get_highest_layer(layer_state)) {
case _COLEMAK:
case _QWERTY:
oled_write_P(PSTR("Base\n"), false);
break;
case _RAISE:
oled_write_P(PSTR("Raise"), false);
break;
case _LOWER:
oled_write_P(PSTR("Lower"), false);
break;
case _ADJUST:
oled_write_P(PSTR("Adj\n"), false);
break;
default:
oled_write_ln_P(PSTR("Undef"), false);
}
oled_write_P(PSTR("\n\n"), false);
led_t led_usb_state = host_keyboard_led_state();
oled_write_ln_P(PSTR("CPSLK"), led_usb_state.caps_lock);
}
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
if (is_keyboard_master()) {
return OLED_ROTATION_90;
}
return rotation;
}
void oled_task_user(void) {
if (is_keyboard_master()) {
print_status_narrow();
} else {
render_logo();
}
}
#endif
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case KC_QWERTY:
if (record->event.pressed) {
set_single_persistent_default_layer(_QWERTY);
}
return false;
case KC_COLEMAK:
if (record->event.pressed) {
set_single_persistent_default_layer(_COLEMAK);
}
return false;
case KC_LOWER:
if (record->event.pressed) {
layer_on(_LOWER);
update_tri_layer(_LOWER, _RAISE, _ADJUST);
} else {
layer_off(_LOWER);
update_tri_layer(_LOWER, _RAISE, _ADJUST);
}
return false;
case KC_RAISE:
if (record->event.pressed) {
layer_on(_RAISE);
update_tri_layer(_LOWER, _RAISE, _ADJUST);
} else {
layer_off(_RAISE);
update_tri_layer(_LOWER, _RAISE, _ADJUST);
}
return false;
case KC_ADJUST:
if (record->event.pressed) {
layer_on(_ADJUST);
} else {
layer_off(_ADJUST);
}
return false;
case KC_PRVWD:
if (record->event.pressed) {
if (keymap_config.swap_lctl_lgui) {
register_mods(mod_config(MOD_LALT));
register_code(KC_LEFT);
} else {
register_mods(mod_config(MOD_LCTL));
register_code(KC_LEFT);
}
} else {
if (keymap_config.swap_lctl_lgui) {
unregister_mods(mod_config(MOD_LALT));
unregister_code(KC_LEFT);
} else {
unregister_mods(mod_config(MOD_LCTL));
unregister_code(KC_LEFT);
}
}
break;
case KC_NXTWD:
if (record->event.pressed) {
if (keymap_config.swap_lctl_lgui) {
register_mods(mod_config(MOD_LALT));
register_code(KC_RIGHT);
} else {
register_mods(mod_config(MOD_LCTL));
register_code(KC_RIGHT);
}
} else {
if (keymap_config.swap_lctl_lgui) {
unregister_mods(mod_config(MOD_LALT));
unregister_code(KC_RIGHT);
} else {
unregister_mods(mod_config(MOD_LCTL));
unregister_code(KC_RIGHT);
}
}
break;
case KC_LSTRT:
if (record->event.pressed) {
if (keymap_config.swap_lctl_lgui) {
//CMD-arrow on Mac, but we have CTL and GUI swapped
register_mods(mod_config(MOD_LCTL));
register_code(KC_LEFT);
} else {
register_code(KC_HOME);
}
} else {
if (keymap_config.swap_lctl_lgui) {
unregister_mods(mod_config(MOD_LCTL));
unregister_code(KC_LEFT);
} else {
unregister_code(KC_HOME);
}
}
break;
case KC_LEND:
if (record->event.pressed) {
if (keymap_config.swap_lctl_lgui) {
//CMD-arrow on Mac, but we have CTL and GUI swapped
register_mods(mod_config(MOD_LCTL));
register_code(KC_RIGHT);
} else {
register_code(KC_END);
}
} else {
if (keymap_config.swap_lctl_lgui) {
unregister_mods(mod_config(MOD_LCTL));
unregister_code(KC_RIGHT);
} else {
unregister_code(KC_END);
}
}
break;
case KC_DLINE:
if (record->event.pressed) {
register_mods(mod_config(MOD_LCTL));
register_code(KC_BSPC);
} else {
unregister_mods(mod_config(MOD_LCTL));
unregister_code(KC_BSPC);
}
break;
case KC_COPY:
if (record->event.pressed) {
register_mods(mod_config(MOD_LCTL));
register_code(KC_C);
} else {
unregister_mods(mod_config(MOD_LCTL));
unregister_code(KC_C);
}
return false;
case KC_PASTE:
if (record->event.pressed) {
register_mods(mod_config(MOD_LCTL));
register_code(KC_V);
} else {
unregister_mods(mod_config(MOD_LCTL));
unregister_code(KC_V);
}
return false;
case KC_CUT:
if (record->event.pressed) {
register_mods(mod_config(MOD_LCTL));
register_code(KC_X);
} else {
unregister_mods(mod_config(MOD_LCTL));
unregister_code(KC_X);
}
return false;
break;
case KC_UNDO:
if (record->event.pressed) {
register_mods(mod_config(MOD_LCTL));
register_code(KC_Z);
} else {
unregister_mods(mod_config(MOD_LCTL));
unregister_code(KC_Z);
}
return false;
}
return true;
}
#ifdef ENCODER_ENABLE
void encoder_update_user(uint8_t index, bool clockwise) {
if (index == 0) {
if (clockwise) {
tap_code(KC_VOLU);
} else {
tap_code(KC_VOLD);
}
} else if (index == 1) {
if (clockwise) {
rgblight_step();
} else {
rgblight_step_reverse();
}
}
}
#endif

View File

@@ -0,0 +1 @@
RGBLIGHT_ENABLE = yes

View File

@@ -0,0 +1,22 @@
/*
Copyright 2021 Spencer Deven <splitlogicdesign@gmail.com>
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 <http://www.gnu.org/licenses/>.
*/
#pragma once
#ifdef OLED_DRIVER_ENABLE
#define OLED_DISPLAY_128X32
#define OLED_TIMEOUT 400000
#endif

View File

@@ -0,0 +1,330 @@
/*
Copyright 2021 Spencer Deven <splitlogicdesign@gmail.com>
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 <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
enum sofle_layers {
/* _M_XYZ = Mac Os, _W_XYZ = Win/Linux */
_QWERTY,
_COLEMAK,
_LOWER,
_RAISE,
_ADJUST,
};
enum custom_keycodes {
KC_QWERTY = SAFE_RANGE,
KC_COLEMAK,
KC_LOWER,
KC_RAISE,
KC_ADJUST,
KC_PRVWD,
KC_NXTWD,
KC_LSTRT,
KC_LEND,
KC_DLINE
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_QWERTY] = LAYOUT(
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
KC_ADJUST, KC_A, KC_S, KC_D, KC_F, KC_G, KC_MINS, KC_EQL, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_GRV, KC_MUTE, RGB_TOG, KC_DEL,KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT ,
KC_LCTL, KC_LALT, KC_LGUI, LALT(KC_TAB), KC_LOWER, KC_SPC, KC_ENT, KC_ENT, KC_SPC, KC_RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
),
[_LOWER] = LAYOUT(
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
KC_PSLS, KC_P7, KC_P8, KC_P9, KC_NLCK, _______, _______, _______, _______, KC_PSLS, KC_P7, KC_P8, KC_P9, KC_F12,
KC_CAPS, KC_P4, KC_P5, KC_P6, KC_NLCK, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, KC_NLCK,
_______, KC_P1, KC_P2, KC_P3, _______, _______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______,
_______, KC_P0, KC_PDOT, KC_PENT, _______, _______, _______, _______, _______, _______, KC_P0, KC_PDOT, KC_PENT, _______
),
[_RAISE] = LAYOUT(
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
KC_PSLS, KC_P7, KC_P8, KC_P9, KC_NLCK, _______, _______, _______, _______, KC_PSLS, KC_P7, KC_P8, KC_P9, KC_F12,
KC_CAPS, KC_P4, KC_P5, KC_P6, KC_NLCK, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, KC_NLCK,
_______, KC_P1, KC_P2, KC_P3, _______, _______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______,
_______, KC_P0, KC_PDOT, KC_PENT, _______, _______, _______, _______, _______, _______, KC_P0, KC_PDOT, KC_PENT, _______
),
[_ADJUST] = LAYOUT(
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
_______, _______, _______, _______, _______, _______, _______, _______, _______, EEP_RST, _______, _______, _______, KC_F12,
_______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_MOD, RGB_SPI, RGB_HUI, RGB_SAI, RGB_VAI,
_______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_SPD, RGB_HUD, RGB_SAD, RGB_VAD
)
};
#ifdef OLED_DRIVER_ENABLE
static void render_logo(void) {
static const char PROGMEM qmk_logo[] = {
0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94,
0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4,
0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,0
};
oled_write_P(qmk_logo, false);
}
static void print_status_narrow(void) {
// Print current mode
oled_write_P(PSTR("\n\n"), false);
oled_write_ln_P(PSTR("MODE"), false);
oled_write_ln_P(PSTR(""), false);
if (keymap_config.swap_lctl_lgui) {
oled_write_ln_P(PSTR("MAC"), false);
} else {
oled_write_ln_P(PSTR("WIN"), false);
}
switch (get_highest_layer(default_layer_state)) {
case _QWERTY:
oled_write_ln_P(PSTR("Qwrt"), false);
break;
case _COLEMAK:
oled_write_ln_P(PSTR("Clmk"), false);
break;
default:
oled_write_P(PSTR("Undef"), false);
}
oled_write_P(PSTR("\n\n"), false);
// Print current layer
oled_write_ln_P(PSTR("LAYER"), false);
switch (get_highest_layer(layer_state)) {
case _COLEMAK:
case _QWERTY:
oled_write_P(PSTR("Base\n"), false);
break;
case _RAISE:
oled_write_P(PSTR("Raise"), false);
break;
case _LOWER:
oled_write_P(PSTR("Lower"), false);
break;
case _ADJUST:
oled_write_P(PSTR("Adj\n"), false);
break;
default:
oled_write_ln_P(PSTR("Undef"), false);
}
oled_write_P(PSTR("\n\n"), false);
led_t led_usb_state = host_keyboard_led_state();
oled_write_ln_P(PSTR("CPSLK"), led_usb_state.caps_lock);
}
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
if (is_keyboard_master()) {
return OLED_ROTATION_90;
}
return rotation;
}
void oled_task_user(void) {
if (is_keyboard_master()) {
print_status_narrow();
} else {
render_logo();
}
}
#endif
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case KC_QWERTY:
if (record->event.pressed) {
set_single_persistent_default_layer(_QWERTY);
}
return false;
case KC_COLEMAK:
if (record->event.pressed) {
set_single_persistent_default_layer(_COLEMAK);
}
return false;
case KC_LOWER:
if (record->event.pressed) {
layer_on(_LOWER);
update_tri_layer(_LOWER, _RAISE, _ADJUST);
} else {
layer_off(_LOWER);
update_tri_layer(_LOWER, _RAISE, _ADJUST);
}
return false;
case KC_RAISE:
if (record->event.pressed) {
layer_on(_RAISE);
update_tri_layer(_LOWER, _RAISE, _ADJUST);
} else {
layer_off(_RAISE);
update_tri_layer(_LOWER, _RAISE, _ADJUST);
}
return false;
case KC_ADJUST:
if (record->event.pressed) {
layer_on(_ADJUST);
} else {
layer_off(_ADJUST);
}
return false;
case KC_PRVWD:
if (record->event.pressed) {
if (keymap_config.swap_lctl_lgui) {
register_mods(mod_config(MOD_LALT));
register_code(KC_LEFT);
} else {
register_mods(mod_config(MOD_LCTL));
register_code(KC_LEFT);
}
} else {
if (keymap_config.swap_lctl_lgui) {
unregister_mods(mod_config(MOD_LALT));
unregister_code(KC_LEFT);
} else {
unregister_mods(mod_config(MOD_LCTL));
unregister_code(KC_LEFT);
}
}
break;
case KC_NXTWD:
if (record->event.pressed) {
if (keymap_config.swap_lctl_lgui) {
register_mods(mod_config(MOD_LALT));
register_code(KC_RIGHT);
} else {
register_mods(mod_config(MOD_LCTL));
register_code(KC_RIGHT);
}
} else {
if (keymap_config.swap_lctl_lgui) {
unregister_mods(mod_config(MOD_LALT));
unregister_code(KC_RIGHT);
} else {
unregister_mods(mod_config(MOD_LCTL));
unregister_code(KC_RIGHT);
}
}
break;
case KC_LSTRT:
if (record->event.pressed) {
if (keymap_config.swap_lctl_lgui) {
//CMD-arrow on Mac, but we have CTL and GUI swapped
register_mods(mod_config(MOD_LCTL));
register_code(KC_LEFT);
} else {
register_code(KC_HOME);
}
} else {
if (keymap_config.swap_lctl_lgui) {
unregister_mods(mod_config(MOD_LCTL));
unregister_code(KC_LEFT);
} else {
unregister_code(KC_HOME);
}
}
break;
case KC_LEND:
if (record->event.pressed) {
if (keymap_config.swap_lctl_lgui) {
//CMD-arrow on Mac, but we have CTL and GUI swapped
register_mods(mod_config(MOD_LCTL));
register_code(KC_RIGHT);
} else {
register_code(KC_END);
}
} else {
if (keymap_config.swap_lctl_lgui) {
unregister_mods(mod_config(MOD_LCTL));
unregister_code(KC_RIGHT);
} else {
unregister_code(KC_END);
}
}
break;
case KC_DLINE:
if (record->event.pressed) {
register_mods(mod_config(MOD_LCTL));
register_code(KC_BSPC);
} else {
unregister_mods(mod_config(MOD_LCTL));
unregister_code(KC_BSPC);
}
break;
case KC_COPY:
if (record->event.pressed) {
register_mods(mod_config(MOD_LCTL));
register_code(KC_C);
} else {
unregister_mods(mod_config(MOD_LCTL));
unregister_code(KC_C);
}
return false;
case KC_PASTE:
if (record->event.pressed) {
register_mods(mod_config(MOD_LCTL));
register_code(KC_V);
} else {
unregister_mods(mod_config(MOD_LCTL));
unregister_code(KC_V);
}
return false;
case KC_CUT:
if (record->event.pressed) {
register_mods(mod_config(MOD_LCTL));
register_code(KC_X);
} else {
unregister_mods(mod_config(MOD_LCTL));
unregister_code(KC_X);
}
return false;
break;
case KC_UNDO:
if (record->event.pressed) {
register_mods(mod_config(MOD_LCTL));
register_code(KC_Z);
} else {
unregister_mods(mod_config(MOD_LCTL));
unregister_code(KC_Z);
}
return false;
}
return true;
}
#ifdef ENCODER_ENABLE
void encoder_update_user(uint8_t index, bool clockwise) {
if (index == 0) {
if (clockwise) {
tap_code(KC_VOLU);
} else {
tap_code(KC_VOLD);
}
} else if (index == 1) {
if (clockwise) {
rgblight_step();
} else {
rgblight_step_reverse();
}
}
}
#endif

View File

@@ -0,0 +1 @@
RGBLIGHT_ENABLE = yes

View File

@@ -0,0 +1,22 @@
/*
Copyright 2021 Spencer Deven <splitlogicdesign@gmail.com>
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 <http://www.gnu.org/licenses/>.
*/
#pragma once
#ifdef OLED_DRIVER_ENABLE
#define OLED_DISPLAY_128X64
#define OLED_TIMEOUT 400000
#endif

View File

@@ -0,0 +1,35 @@
/*
Copyright 2021 Spencer Deven <splitlogicdesign@gmail.com>
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 <http://www.gnu.org/licenses/>.
*/
//Setting up what encoder rotation does. If your encoder can be pressed as a button, that function can be set in Via.
#ifdef ENCODER_ENABLE
void encoder_update_user(uint8_t index, bool clockwise) {
if (index == 0) {
if (clockwise) {
tap_code(KC_VOLU);
} else {
tap_code(KC_VOLD);
}
} else if (index == 1) {
if (clockwise) {
tap_code(KC_PGDOWN);
} else {
tap_code(KC_PGUP);
}
}
}
#endif

View File

@@ -0,0 +1,52 @@
/*
Copyright 2021 Spencer Deven <splitlogicdesign@gmail.com>
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 <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
#include "oled.c"
#include "encoder.c"
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
MO(3), KC_A, KC_S, KC_D, KC_F, KC_G, KC_MINS, KC_EQL, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_GRV, KC_MUTE, RGB_TOG, KC_DEL,KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT ,
KC_LCTL, KC_LALT, KC_LGUI, KC_APP, MO(1), KC_SPC, KC_ENT, KC_ENT, KC_SPC, MO(2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
),
[1] = LAYOUT(
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
KC_PSLS, KC_P7, KC_P8, KC_P9, KC_NLCK, _______, _______, _______, _______, KC_PSLS, KC_P7, KC_P8, KC_P9, KC_F12,
KC_CAPS, KC_P4, KC_P5, KC_P6, KC_NLCK, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, KC_NLCK,
_______, KC_P1, KC_P2, KC_P3, _______, _______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______,
_______, KC_P0, KC_PDOT, KC_PENT, _______, _______, _______, _______, _______, _______, KC_P0, KC_PDOT, KC_PENT, _______
),
[2] = LAYOUT(
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
KC_PSLS, KC_P7, KC_P8, KC_P9, KC_NLCK, _______, _______, _______, _______, KC_PSLS, KC_P7, KC_P8, KC_P9, KC_F12,
KC_CAPS, KC_P4, KC_P5, KC_P6, KC_NLCK, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, KC_NLCK,
_______, KC_P1, KC_P2, KC_P3, _______, _______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______,
_______, KC_P0, KC_PDOT, KC_PENT, _______, _______, _______, _______, _______, _______, KC_P0, KC_PDOT, KC_PENT, _______
),
[3] = LAYOUT(
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
_______, _______, _______, _______, _______, _______, _______, _______, _______, EEP_RST, _______, _______, _______, KC_F12,
_______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_MOD, RGB_SPI, RGB_HUI, RGB_SAI, RGB_VAI,
_______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_SPD, RGB_HUD, RGB_SAD, RGB_VAD
)
};

View File

@@ -0,0 +1,78 @@
/*
Copyright 2021 Spencer Deven <splitlogicdesign@gmail.com>
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 <http://www.gnu.org/licenses/>.
*/
#ifdef OLED_DRIVER_ENABLE
static void render_logo(void) {
static const char PROGMEM qmk_logo[] = {
0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94,
0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4,
0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,0
};
oled_write_P(qmk_logo, false);
}
static void print_status_narrow(void) {
// Print current mode
oled_write_P(PSTR("\n\n"), false);
switch (get_highest_layer(layer_state)) {
case 0:
oled_write_ln_P(PSTR("Qwrt"), false);
break;
default:
oled_write_P(PSTR("Mod\n"), false);
break;
}
oled_write_P(PSTR("\n\n"), false);
// Print current layer
oled_write_ln_P(PSTR("LAYER"), false);
switch (get_highest_layer(layer_state)) {
case 0:
oled_write_P(PSTR("Base\n"), false);
break;
case 1:
oled_write_P(PSTR("Raise"), false);
break;
case 2:
oled_write_P(PSTR("Lower"), false);
break;
case 3:
oled_write_P(PSTR("Adjust"), false);
break;
default:
oled_write_ln_P(PSTR("Undef"), false);
}
oled_write_P(PSTR("\n\n"), false);
led_t led_usb_state = host_keyboard_led_state();
oled_write_ln_P(PSTR("CPSLK"), led_usb_state.caps_lock);
}
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
if (is_keyboard_master()) {
return OLED_ROTATION_90;
}
return rotation;
}
void oled_task_user(void) {
if (is_keyboard_master()) {
print_status_narrow();
} else {
render_logo();
}
}
#endif

View File

@@ -0,0 +1,2 @@
RGBLIGHT_ENABLE = yes
VIA_ENABLE = yes

View File

@@ -0,0 +1,23 @@
# Zodiark Keyboard
![Zodiark Split](https://i.imgur.com/49O8aowl.jpg)
A split keyboard with 5x7 including a thumbcluster, encoders on each side, per key RGB, and 2x I2C headers per side, supporiting 1.3"/.96" 128x64 OLEDs (the 1.3" is an SSH1106 OLED, refer to QMK documentation for limitations), .91" 128x32 OLEDs.
* Keyboard Maintainer: [Aleblazer](https://github.com/Aleblazer/), [Discord Link](https://discord.gg/BCSbXwskVt)
* Hardware Supported: Pro Micro and derivatives
* Hardware Availability: Pending Group Buy - [Discord Link](https://discord.gg/BCSbXwskVt)
Make example for this keyboard (after setting up your build environment):
make zodiark:default
Flashing example for this keyboard:
make zodiark:default:flash
Remove TRRS cable from halves, plug into one side, press reset button when asked. Repeat process on the other side.
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
Credit to Sofle and Josef Adamcik <josef.adamcik@gmail.com> for OLED and layer code.

View File

@@ -0,0 +1,27 @@
# MCU name
MCU = atmega32u4
# Bootloader selection
BOOTLOADER = caterina
# Build Options
# change yes to no to disable
#
BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
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
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
BLUETOOTH_ENABLE = no # Enable Bluetooth
AUDIO_ENABLE = no # Audio output
OLED_DRIVER_ENABLE = yes # Enable Support for SSD1306 or SH1106 OLED Displays; Communicating over I2C
ENCODER_ENABLE = yes
SPLIT_KEYBOARD = yes
LTO_ENABLE = yes
RGB_MATRIX_DRIVER = WS2812

View File

@@ -0,0 +1,54 @@
/*
Copyright 2021 Spencer Deven <splitlogicdesign@gmail.com>
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 <http://www.gnu.org/licenses/>.
*/
#include "zodiark.h"
#ifdef RGB_MATRIX_ENABLE
led_config_t g_led_config = { {
// Key Matrix to LED Index
// Left Hand
{ 5, 4, 3, 2, 1, 0, 12 },
{ 6, 7, 8, 9, 10, 11, 13 },
{ 19, 18, 17, 16, 15, 14, 26 },
{ 20, 21, 22, 23, 24, 25, NO_LED },
{ 33, 32, 31, 30, 29, 28, 27},
// Right Hand
{ 39, 38, 37, 36, 35, 34, 46 },
{ 40, 41, 42, 43, 44, 45, 47 },
{ 53, 52, 51, 50, 49, 48, 60 },
{ 54, 55, 56, 57, 58, 59, NO_LED },
{ 67, 66, 65, 64, 63, 62, 61 },
}, {
// LED Index to Physical Position
// Left Hand
{ 93, 0 }, { 74, 0 }, { 56, 0 }, { 37, 0 }, { 19, 0 }, { 0, 0 }, { 0, 16 },
{ 19, 16 }, { 37, 16 }, { 56, 16 }, { 74, 16 }, { 93, 16 }, { 112, 24 }, { 112, 40 },
{ 93, 32 }, { 74, 32 }, { 56, 32 }, { 37, 32 }, { 19, 32 }, { 0, 32 }, { 0, 48 },
{ 19, 48 }, { 37, 48 }, { 56, 48 }, { 74, 48 }, { 93, 48 }, { 112, 52 },
{ 112, 64 }, { 93, 64 }, { 74, 64 }, { 56, 64 }, { 37, 64 }, { 19, 64 }, { 0, 64 },
// Right Hand
{ 132, 0 }, { 150, 0 }, { 169, 0 }, { 187, 0 }, { 206, 0 }, { 224, 0 }, { 224, 16 },
{ 206, 16 }, { 187, 16 }, { 169, 16 }, { 150, 16 }, { 132, 16 }, { 113, 24 }, { 113, 40 },
{ 132, 32 }, { 150, 32 }, { 169, 32 }, { 187, 32 }, { 206, 32 }, { 224, 32 }, { 224, 48 },
{ 206, 48 }, { 187, 48 }, { 169, 48 }, { 150, 48 }, { 132, 48 }, { 113, 52 },
{ 113, 64 }, { 132, 64 }, { 150, 64 }, { 169, 64 }, { 187, 64 }, { 206, 64 }, { 224, 64 },
}, {
// LED Index to Flag
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4
} };
#endif

View File

@@ -0,0 +1,38 @@
/*
Copyright 2021 Spencer Deven <splitlogicdesign@gmail.com>
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 <http://www.gnu.org/licenses/>.
*/
#pragma once
#include "quantum.h"
#define LAYOUT( \
L00, L01, L02, L03, L04, L05, R01, R02, R03, R04, R05, R06, \
L10, L11, L12, L13, L14, L15, L06, R00, R11, R12, R13, R14, R15, R16, \
L20, L21, L22, L23, L24, L25, L16, R10, R21, R22, R23, R24, R25, R26, \
L30, L31, L32, L33, L34, L35, L26, L36, R30, R20, R31, R32, R33, R34, R35, R36, \
L40, L41, L42, L43, L44, L45, L46, R40, R41, R42, R43, R44, R45, R46 \
) \
{ \
{ L00, L01, L02, L03, L04, L05, L06 }, \
{ L10, L11, L12, L13, L14, L15, L16 }, \
{ L20, L21, L22, L23, L24, L25, L26 }, \
{ L30, L31, L32, L33, L34, L35, L36 }, \
{ L40, L41, L42, L43, L44, L45, L46 }, \
{ R06, R05, R04, R03, R02, R01, R00 }, \
{ R16, R15, R14, R13, R12, R11, R10 }, \
{ R26, R25, R24, R23, R22, R21, R20 }, \
{ R36, R35, R34, R33, R32, R31, R30 }, \
{ R46, R45, R44, R43, R42, R41, R40 } \
}

View File

@@ -0,0 +1,84 @@
{
"keyboard_name": "Alpine65",
"url": "",
"maintainer": "Gondolindrim",
"width": 16.25,
"height": 5.25,
"layouts": {
"LAYOUT": {
"layout": [
{"x":0, "y":0},
{"x":1, "y":0},
{"x":2, "y":0},
{"x":3, "y":0},
{"x":4, "y":0},
{"x":5, "y":0},
{"x":6, "y":0},
{"x":7, "y":0},
{"x":8, "y":0},
{"x":9, "y":0},
{"x":10, "y":0},
{"x":11, "y":0},
{"x":12, "y":0},
{"x":13, "y":0, "w":2},
{"x":0, "y":1, "w":1.5},
{"x":1.5, "y":1},
{"x":2.5, "y":1},
{"x":3.5, "y":1},
{"x":4.5, "y":1},
{"x":5.5, "y":1},
{"x":6.5, "y":1},
{"x":7.5, "y":1},
{"x":8.5, "y":1},
{"x":9.5, "y":1},
{"x":10.5, "y":1},
{"x":11.5, "y":1},
{"x":12.5, "y":1},
{"x":13.5, "y":1, "w":1.5},
{"x":15.25, "y":1.25},
{"x":0, "y":2, "w":1.75},
{"x":1.75, "y":2},
{"x":2.75, "y":2},
{"x":3.75, "y":2},
{"x":4.75, "y":2},
{"x":5.75, "y":2},
{"x":6.75, "y":2},
{"x":7.75, "y":2},
{"x":8.75, "y":2},
{"x":9.75, "y":2},
{"x":10.75, "y":2},
{"x":11.75, "y":2},
{"x":12.75, "y":2, "w":2.25},
{"x":15.25, "y":2.25},
{"x":0, "y":3, "w":2.25},
{"x":2.25, "y":3},
{"x":3.25, "y":3},
{"x":4.25, "y":3},
{"x":5.25, "y":3},
{"x":6.25, "y":3},
{"x":7.25, "y":3},
{"x":8.25, "y":3},
{"x":9.25, "y":3},
{"x":10.25, "y":3},
{"x":11.25, "y":3},
{"x":12.25, "y":3, "w":1.75},
{"x":14.25, "y":3.25},
{"x":15.25, "y":3.25},
{"x":0, "y":4, "w":1.25},
{"x":1.25, "y":4, "w":1.25},
{"x":2.5, "y":4, "w":1.25},
{"x":3.75, "y":4, "w":6.25},
{"x":10, "y":4},
{"x":11, "y":4},
{"x":12, "y":4},
{"x":13.25, "y":4.25},
{"x":14.25, "y":4.25},
{"x":15.25, "y":4.25}
]
}
}
}

View File

@@ -0,0 +1,20 @@
{
"keyboard_name": "Aplx6",
"url": "",
"maintainer": "Aplyard",
"width": 3,
"height": 2,
"layouts": {
"LAYOUT": {
"layout": [
{"x":0, "y":0},
{"x":1, "y":0},
{"x":2, "y":0},
{"x":0, "y":1},
{"x":1, "y":1},
{"x":2, "y":1}
]
}
}
}

View File

@@ -0,0 +1,52 @@
{
"keyboard_name": "Arch-36",
"url": "",
"maintainer": "obosob",
"width": 14,
"height": 5.1,
"layouts": {
"LAYOUT_split_3x5_3": {
"layout": [
{"x":0, "y":1},
{"x":1, "y":0.25},
{"x":2, "y":0},
{"x":3, "y":0.375},
{"x":4, "y":0.5},
{"x":9, "y":0.5},
{"x":10, "y":0.375},
{"x":11, "y":0},
{"x":12, "y":0.25},
{"x":13, "y":1},
{"x":0, "y":2},
{"x":1, "y":1.25},
{"x":2, "y":1},
{"x":3, "y":1.375},
{"x":4, "y":1.5},
{"x":9, "y":1.5},
{"x":10, "y":1.375},
{"x":11, "y":1},
{"x":12, "y":1.25},
{"x":13, "y":2},
{"x":0, "y":3},
{"x":1, "y":2.25},
{"x":2, "y":2},
{"x":3, "y":2.375},
{"x":4, "y":2.5},
{"x":9, "y":2.5},
{"x":10, "y":2.375},
{"x":11, "y":2},
{"x":12, "y":2.25},
{"x":13, "y":3},
{"x":3.5, "y":3.5},
{"x":4.5, "y":3.7},
{"x":5.5, "y":4.1},
{"x":7.5, "y":4.1},
{"x":8.5, "y":3.7},
{"x":9.5, "y":3.5}
]
}
}
}

View File

@@ -16,19 +16,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "ares.h"
void keyboard_pre_init_kb(void) {
led_init_ports();
keyboard_pre_init_user();
}
void led_init_ports(void) {
setPinOutput(D1);
}
bool led_update_kb(led_t led_state) {
if (led_update_user(led_state)) {
writePin(D1, led_state.caps_lock);
}
return true;
}

View File

@@ -37,6 +37,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define DIODE_DIRECTION COL2ROW
#define DEBOUNCE 5
#define LED_CAPS_LOCK_PIN D1
#define BACKLIGHT_PIN D4
#define BACKLIGHT_LEVELS 3

84
keyboards/arisu/info.json Normal file
View File

@@ -0,0 +1,84 @@
{
"keyboard_name": "Arisu",
"url": "https://github.com/FateNozomi/arisu-pcb",
"maintainer": "FateNozomi",
"width": 18.3,
"height": 5.25,
"layouts": {
"LAYOUT": {
"layout": [
{"x":0, "y":0},
{"x":1, "y":0},
{"x":2, "y":0},
{"x":3, "y":0},
{"x":4, "y":0},
{"x":5, "y":0},
{"x":6, "y":0},
{"x":9, "y":0},
{"x":10, "y":0},
{"x":11, "y":0},
{"x":12, "y":0},
{"x":13, "y":0},
{"x":14, "y":0},
{"x":15, "y":0},
{"x":16, "y":0},
{"x":17.3, "y":0},
{"x":0, "y":1, "w":1.5},
{"x":1.5, "y":1},
{"x":2.5, "y":1},
{"x":3.5, "y":1},
{"x":4.5, "y":1},
{"x":5.5, "y":1},
{"x":8.5, "y":1},
{"x":9.5, "y":1},
{"x":10.5, "y":1},
{"x":11.5, "y":1},
{"x":12.5, "y":1},
{"x":13.5, "y":1},
{"x":14.5, "y":1},
{"x":15.5, "y":1, "w":1.5},
{"x":17.3, "y":1},
{"x":0, "y":2, "w":1.75},
{"x":1.75, "y":2},
{"x":2.75, "y":2},
{"x":3.75, "y":2},
{"x":4.75, "y":2},
{"x":5.75, "y":2},
{"x":8.75, "y":2},
{"x":9.75, "y":2},
{"x":10.75, "y":2},
{"x":11.75, "y":2},
{"x":12.75, "y":2},
{"x":13.75, "y":2},
{"x":14.75, "y":2, "w":2.25},
{"x":17.3, "y":2},
{"x":0, "y":3, "w":2.25},
{"x":2.25, "y":3},
{"x":3.25, "y":3},
{"x":4.25, "y":3},
{"x":5.25, "y":3},
{"x":6.25, "y":3},
{"x":9.25, "y":3},
{"x":10.25, "y":3},
{"x":11.25, "y":3},
{"x":12.25, "y":3},
{"x":13.25, "y":3},
{"x":14.25, "y":3, "w":1.75},
{"x":16.3, "y":3.25},
{"x":0, "y":4, "w":1.5},
{"x":3.25, "y":4, "w":1.5},
{"x":4.75, "y":4, "w":2},
{"x":6.75, "y":4, "w":1.25},
{"x":8.75, "y":4, "w":2.75},
{"x":11.5, "y":4, "w":1.5},
{"x":15.3, "y":4.25},
{"x":16.3, "y":4.25},
{"x":17.3, "y":4.25}
]
}
}
}

View File

@@ -1,6 +1,5 @@
{
"keyboard_name": "AT101 BH PCB",
"keyboard_folder": "at101_bh",
"url": "https://deskthority.net/group-buys-f50/programmable-vintage-board-pcbs-omnikey-at101-and-z-150-t19325.html",
"maintainer": "qmk, blindassassin111",
"width": 22.5,

View File

@@ -0,0 +1,16 @@
/* Copyright 2021 Matthew Dias
*
* 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 "barleycorn_smd.h"

View File

@@ -0,0 +1,63 @@
/* Copyright 2021 Matthew Dias
*
* 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"
#define LAYOUT_all( \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K1D, K0E, K0F, K0G, K0H, \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K2C, K1E, K1F, K1G, K1H, \
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2E, K2F, K2G, K2H, \
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F, K3G, K3H, \
K40, K41, K42, K46, K4A, K4B, K4C, K4D, K4E, K4F, K4G, K4H \
) { \
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, K0H }, \
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, K1H }, \
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, K2H }, \
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F, K3G, K3H }, \
{ K40, K41, K42, XXX, XXX, XXX, K46, XXX, XXX, XXX, K4A, K4B, K4C, K4D, K4E, K4F, K4G, K4H } \
}
#define LAYOUT_ansi( \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K1D, K0E, K0F, K0G, K0H, \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K2C, K1E, K1F, K1G, K1H, \
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2E, K2F, K2G, K2H, \
K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F, K3G, K3H, \
K40, K41, K42, K46, K4A, K4B, K4C, K4D, K4E, K4F, K4G, K4H \
) { \
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, K0H }, \
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, K1H }, \
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, K2H }, \
{ K30, XXX, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F, K3G, K3H }, \
{ K40, K41, K42, XXX, XXX, XXX, K46, XXX, XXX, XXX, K4A, K4B, K4C, K4D, K4E, K4F, K4G, K4H } \
}
#define LAYOUT_iso( \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K1D, K0E, K0F, K0G, K0H, \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, K1F, K1G, K1H, \
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, K2H, \
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F, K3G, K3H, \
K40, K41, K42, K46, K4A, K4B, K4C, K4D, K4E, K4F, K4G, K4H \
) { \
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, K0H }, \
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, K1H }, \
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, K2H }, \
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F, K3G, K3H }, \
{ K40, K41, K42, XXX, XXX, XXX, K46, XXX, XXX, XXX, K4A, K4B, K4C, K4D, K4E, K4F, K4G, K4H } \
}

View File

@@ -0,0 +1,111 @@
/*
Copyright 2021 Matthew Dias
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"
#define VENDOR_ID 0x7033
#define PRODUCT_ID 0x4749
#define DEVICE_VER 0x0001
#define MANUFACTURER P3D Store
#define PRODUCT Barleycorn SMD
/* key matrix size */
#define MATRIX_ROWS 5
#define MATRIX_COLS 18
/*
* 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)
*
*/
/* A Custom matrix.c is used to poll the port expander C6 shows that the pins are hardwired there */
#define MATRIX_ROW_PINS { F5, F4, F1, F0, F6 }
#define MATRIX_COL_PINS { D4, D6, D7, B4, B5, B6, C6, C7, D5, D5, D5, D5, D5, D5, D5, D5, D5, D5 }
#define UNUSED_PINS
#define PORT_EXPANDER_ADDRESS 0x20
#define RGB_DI_PIN E6
#define RGBLED_NUM 15
#define RGBLIGHT_ANIMATIONS
#define RGBLIGHT_LED_MAP { 0, 1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 5 }
#define LED_CAPS_LOCK_PIN B2
#define LED_NUM_LOCK_PIN B3
/* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION COL2ROW
#define USB_MAX_POWER_CONSUMPTION 400
/* 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
/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
* This is userful for the Windows task manager shortcut (ctrl+shift+esc).
*/
// #define GRAVE_ESC_CTRL_OVERRIDE
/*
* Force NKRO
*
* Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
* state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
* makefile for this to work.)
*
* If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
* until the next keyboard reset.
*
* NKRO may prevent your keystrokes from being detected in the BIOS, but it is
* fully operational during normal computer usage.
*
* For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
* or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
* bootmagic, NKRO mode will always be enabled until it is toggled again during a
* power-up.
*
*/
//#define FORCE_NKRO
/*
* Feature disable options
* These options are also useful to firmware size reduction.
*/
/* disable debug print */
//#define NO_DEBUG
/* disable print */
//#define NO_PRINT
/* disable action features */
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
//#define NO_ACTION_MACRO
//#define NO_ACTION_FUNCTION

View File

@@ -0,0 +1,283 @@
{
"keyboard_name": "Barleycorn SMD",
"maintainer": "matthewdias",
"width": 19.5,
"height": 5,
"layouts": {
"LAYOUT_all": {
"layout": [
{ "label": "0,0", "x": 0, "y": 0 },
{ "label": "0,1", "x": 1, "y": 0 },
{ "label": "0,2", "x": 2, "y": 0 },
{ "label": "0,3", "x": 3, "y": 0 },
{ "label": "0,4", "x": 4, "y": 0 },
{ "label": "0,5", "x": 5, "y": 0 },
{ "label": "0,6", "x": 6, "y": 0 },
{ "label": "0,7", "x": 7, "y": 0 },
{ "label": "0,8", "x": 8, "y": 0 },
{ "label": "0,9", "x": 9, "y": 0 },
{ "label": "0,10", "x": 10, "y": 0 },
{ "label": "0,11", "x": 11, "y": 0 },
{ "label": "0,12", "x": 12, "y": 0 },
{ "label": "0,13", "x": 13, "y": 0 },
{ "label": "1,13", "x": 14, "y": 0 },
{ "label": "0,14", "x": 15.5, "y": 0 },
{ "label": "0,15", "x": 16.5, "y": 0 },
{ "label": "0,16", "x": 17.5, "y": 0 },
{ "label": "0,17", "x": 18.5, "y": 0 },
{ "label": "1,0", "x": 0, "y": 1, "w": 1.5 },
{ "label": "1,1", "x": 1.5, "y": 1 },
{ "label": "1,2", "x": 2.5, "y": 1 },
{ "label": "1,3", "x": 3.5, "y": 1 },
{ "label": "1,4", "x": 4.5, "y": 1 },
{ "label": "1,5", "x": 5.5, "y": 1 },
{ "label": "1,6", "x": 6.5, "y": 1 },
{ "label": "1,7", "x": 7.5, "y": 1 },
{ "label": "1,8", "x": 8.5, "y": 1 },
{ "label": "1,9", "x": 9.5, "y": 1 },
{ "label": "1,10", "x": 10.5, "y": 1 },
{ "label": "1,11", "x": 11.5, "y": 1 },
{ "label": "1,12", "x": 12.5, "y": 1 },
{ "label": "2,12", "x": 13.5, "y": 1, "w": 1.5 },
{ "label": "1,14", "x": 15.5, "y": 1 },
{ "label": "1,15", "x": 16.5, "y": 1 },
{ "label": "1,16", "x": 17.5, "y": 1 },
{ "label": "1,17", "x": 18.5, "y": 1 },
{ "label": "2,0", "x": 0, "y": 2, "w": 1.75 },
{ "label": "2,1", "x": 1.75, "y": 2 },
{ "label": "2,2", "x": 2.75, "y": 2 },
{ "label": "2,3", "x": 3.75, "y": 2 },
{ "label": "2,4", "x": 4.75, "y": 2 },
{ "label": "2,5", "x": 5.75, "y": 2 },
{ "label": "2,6", "x": 6.75, "y": 2 },
{ "label": "2,7", "x": 7.75, "y": 2 },
{ "label": "2,8", "x": 8.75, "y": 2 },
{ "label": "2,9", "x": 9.75, "y": 2 },
{ "label": "2,10", "x": 10.75, "y": 2 },
{ "label": "2,11", "x": 11.75, "y": 2 },
{ "label": "2,13", "x": 12.75, "y": 2, "w": 2.25 },
{ "label": "2,14", "x": 15.5, "y": 2 },
{ "label": "2,15", "x": 16.5, "y": 2 },
{ "label": "2,16", "x": 17.5, "y": 2 },
{ "label": "2,17", "x": 18.5, "y": 2 },
{ "label": "3,0", "x": 0, "y": 3, "w": 1.25 },
{ "label": "3,1", "x": 1.25, "y": 3 },
{ "label": "3,2", "x": 2.25, "y": 3 },
{ "label": "3,3", "x": 3.25, "y": 3 },
{ "label": "3,4", "x": 4.25, "y": 3 },
{ "label": "3,5", "x": 5.25, "y": 3 },
{ "label": "3,6", "x": 6.25, "y": 3 },
{ "label": "3,7", "x": 7.25, "y": 3 },
{ "label": "3,8", "x": 8.25, "y": 3 },
{ "label": "3,9", "x": 9.25, "y": 3 },
{ "label": "3,10", "x": 10.25, "y": 3 },
{ "label": "3,11", "x": 11.25, "y": 3 },
{ "label": "3,12", "x": 12.25, "y": 3, "w": 1.75 },
{ "label": "3,13", "x": 14.25, "y": 3.25 },
{ "label": "3,14", "x": 15.5, "y": 3 },
{ "label": "3,15", "x": 16.5, "y": 3 },
{ "label": "3,16", "x": 17.5, "y": 3 },
{ "label": "3,17", "x": 18.5, "y": 3 },
{ "label": "4,0", "x": 0, "y": 4, "w": 1.25 },
{ "label": "4,1", "x": 1.25, "y": 4, "w": 1.25 },
{ "label": "4,2", "x": 2.5, "y": 4, "w": 1.25 },
{ "label": "4,6", "x": 3.75, "y": 4, "w": 6.25 },
{ "label": "4,10", "x": 10, "y": 4, "w": 1.5 },
{ "label": "4,11", "x": 11.5, "y": 4, "w": 1.5 },
{ "label": "4,12", "x": 13.25, "y": 4.25 },
{ "label": "4,13", "x": 14.25, "y": 4.25 },
{ "label": "4,14", "x": 15.25, "y": 4.25 },
{ "label": "4,15", "x": 16.5, "y": 4 },
{ "label": "4,16", "x": 17.5, "y": 4 },
{ "label": "4,17", "x": 18.5, "y": 4 }
]
},
"LAYOUT_ansi": {
"layout": [
{ "label": "0,0", "x": 0, "y": 0 },
{ "label": "0,1", "x": 1, "y": 0 },
{ "label": "0,2", "x": 2, "y": 0 },
{ "label": "0,3", "x": 3, "y": 0 },
{ "label": "0,4", "x": 4, "y": 0 },
{ "label": "0,5", "x": 5, "y": 0 },
{ "label": "0,6", "x": 6, "y": 0 },
{ "label": "0,7", "x": 7, "y": 0 },
{ "label": "0,8", "x": 8, "y": 0 },
{ "label": "0,9", "x": 9, "y": 0 },
{ "label": "0,10", "x": 10, "y": 0 },
{ "label": "0,11", "x": 11, "y": 0 },
{ "label": "0,12", "x": 12, "y": 0 },
{ "label": "0,13", "x": 13, "y": 0 },
{ "label": "1,13", "x": 14, "y": 0 },
{ "label": "0,14", "x": 15.5, "y": 0 },
{ "label": "0,15", "x": 16.5, "y": 0 },
{ "label": "0,16", "x": 17.5, "y": 0 },
{ "label": "0,17", "x": 18.5, "y": 0 },
{ "label": "1,0", "x": 0, "y": 1, "w": 1.5 },
{ "label": "1,1", "x": 1.5, "y": 1 },
{ "label": "1,2", "x": 2.5, "y": 1 },
{ "label": "1,3", "x": 3.5, "y": 1 },
{ "label": "1,4", "x": 4.5, "y": 1 },
{ "label": "1,5", "x": 5.5, "y": 1 },
{ "label": "1,6", "x": 6.5, "y": 1 },
{ "label": "1,7", "x": 7.5, "y": 1 },
{ "label": "1,8", "x": 8.5, "y": 1 },
{ "label": "1,9", "x": 9.5, "y": 1 },
{ "label": "1,10", "x": 10.5, "y": 1 },
{ "label": "1,11", "x": 11.5, "y": 1 },
{ "label": "1,12", "x": 12.5, "y": 1 },
{ "label": "2,12", "x": 13.5, "y": 1, "w": 1.5 },
{ "label": "1,14", "x": 15.5, "y": 1 },
{ "label": "1,15", "x": 16.5, "y": 1 },
{ "label": "1,16", "x": 17.5, "y": 1 },
{ "label": "1,17", "x": 18.5, "y": 1 },
{ "label": "2,0", "x": 0, "y": 2, "w": 1.75 },
{ "label": "2,1", "x": 1.75, "y": 2 },
{ "label": "2,2", "x": 2.75, "y": 2 },
{ "label": "2,3", "x": 3.75, "y": 2 },
{ "label": "2,4", "x": 4.75, "y": 2 },
{ "label": "2,5", "x": 5.75, "y": 2 },
{ "label": "2,6", "x": 6.75, "y": 2 },
{ "label": "2,7", "x": 7.75, "y": 2 },
{ "label": "2,8", "x": 8.75, "y": 2 },
{ "label": "2,9", "x": 9.75, "y": 2 },
{ "label": "2,10", "x": 10.75, "y": 2 },
{ "label": "2,11", "x": 11.75, "y": 2 },
{ "label": "2,13", "x": 12.75, "y": 2, "w": 2.25 },
{ "label": "2,14", "x": 15.5, "y": 2 },
{ "label": "2,15", "x": 16.5, "y": 2 },
{ "label": "2,16", "x": 17.5, "y": 2 },
{ "label": "2,17", "x": 18.5, "y": 2 },
{ "label": "3,0", "x": 0, "y": 3, "w": 2.25 },
{ "label": "3,2", "x": 2.25, "y": 3 },
{ "label": "3,3", "x": 3.25, "y": 3 },
{ "label": "3,4", "x": 4.25, "y": 3 },
{ "label": "3,5", "x": 5.25, "y": 3 },
{ "label": "3,6", "x": 6.25, "y": 3 },
{ "label": "3,7", "x": 7.25, "y": 3 },
{ "label": "3,8", "x": 8.25, "y": 3 },
{ "label": "3,9", "x": 9.25, "y": 3 },
{ "label": "3,10", "x": 10.25, "y": 3 },
{ "label": "3,11", "x": 11.25, "y": 3 },
{ "label": "3,12", "x": 12.25, "y": 3, "w": 1.75 },
{ "label": "3,13", "x": 14.25, "y": 3.25 },
{ "label": "3,14", "x": 15.5, "y": 3 },
{ "label": "3,15", "x": 16.5, "y": 3 },
{ "label": "3,16", "x": 17.5, "y": 3 },
{ "label": "3,17", "x": 18.5, "y": 3 },
{ "label": "4,0", "x": 0, "y": 4, "w": 1.25 },
{ "label": "4,1", "x": 1.25, "y": 4, "w": 1.25 },
{ "label": "4,2", "x": 2.5, "y": 4, "w": 1.25 },
{ "label": "4,6", "x": 3.75, "y": 4, "w": 6.25 },
{ "label": "4,10", "x": 10, "y": 4, "w": 1.5 },
{ "label": "4,11", "x": 11.5, "y": 4, "w": 1.5 },
{ "label": "4,12", "x": 13.25, "y": 4.25 },
{ "label": "4,13", "x": 14.25, "y": 4.25 },
{ "label": "4,14", "x": 15.25, "y": 4.25 },
{ "label": "4,15", "x": 16.5, "y": 4 },
{ "label": "4,16", "x": 17.5, "y": 4 },
{ "label": "4,17", "x": 18.5, "y": 4 }
]
},
"LAYOUT_iso": {
"layout": [
{ "label": "0,0", "x": 0, "y": 0 },
{ "label": "0,1", "x": 1, "y": 0 },
{ "label": "0,2", "x": 2, "y": 0 },
{ "label": "0,3", "x": 3, "y": 0 },
{ "label": "0,4", "x": 4, "y": 0 },
{ "label": "0,5", "x": 5, "y": 0 },
{ "label": "0,6", "x": 6, "y": 0 },
{ "label": "0,7", "x": 7, "y": 0 },
{ "label": "0,8", "x": 8, "y": 0 },
{ "label": "0,9", "x": 9, "y": 0 },
{ "label": "0,10", "x": 10, "y": 0 },
{ "label": "0,11", "x": 11, "y": 0 },
{ "label": "0,12", "x": 12, "y": 0 },
{ "label": "0,13", "x": 13, "y": 0 },
{ "label": "1,13", "x": 14, "y": 0 },
{ "label": "0,14", "x": 15.5, "y": 0 },
{ "label": "0,15", "x": 16.5, "y": 0 },
{ "label": "0,16", "x": 17.5, "y": 0 },
{ "label": "0,17", "x": 18.5, "y": 0 },
{ "label": "1,0", "x": 0, "y": 1, "w": 1.5 },
{ "label": "1,1", "x": 1.5, "y": 1 },
{ "label": "1,2", "x": 2.5, "y": 1 },
{ "label": "1,3", "x": 3.5, "y": 1 },
{ "label": "1,4", "x": 4.5, "y": 1 },
{ "label": "1,5", "x": 5.5, "y": 1 },
{ "label": "1,6", "x": 6.5, "y": 1 },
{ "label": "1,7", "x": 7.5, "y": 1 },
{ "label": "1,8", "x": 8.5, "y": 1 },
{ "label": "1,9", "x": 9.5, "y": 1 },
{ "label": "1,10", "x": 10.5, "y": 1 },
{ "label": "1,11", "x": 11.5, "y": 1 },
{ "label": "1,12", "x": 12.5, "y": 1 },
{ "label": "1,14", "x": 15.5, "y": 1 },
{ "label": "1,15", "x": 16.5, "y": 1 },
{ "label": "1,16", "x": 17.5, "y": 1 },
{ "label": "1,17", "x": 18.5, "y": 1 },
{ "label": "2,0", "x": 0, "y": 2, "w": 1.75 },
{ "label": "2,1", "x": 1.75, "y": 2 },
{ "label": "2,2", "x": 2.75, "y": 2 },
{ "label": "2,3", "x": 3.75, "y": 2 },
{ "label": "2,4", "x": 4.75, "y": 2 },
{ "label": "2,5", "x": 5.75, "y": 2 },
{ "label": "2,6", "x": 6.75, "y": 2 },
{ "label": "2,7", "x": 7.75, "y": 2 },
{ "label": "2,8", "x": 8.75, "y": 2 },
{ "label": "2,9", "x": 9.75, "y": 2 },
{ "label": "2,10", "x": 10.75, "y": 2 },
{ "label": "2,11", "x": 11.75, "y": 2 },
{ "label": "2,12", "x": 12.75, "y": 2 },
{ "label": "2,13", "x": 13.75, "y": 1, "w": 1.25, "h": 2 },
{ "label": "2,14", "x": 15.5, "y": 2 },
{ "label": "2,15", "x": 16.5, "y": 2 },
{ "label": "2,16", "x": 17.5, "y": 2 },
{ "label": "2,17", "x": 18.5, "y": 2 },
{ "label": "3,0", "x": 0, "y": 3, "w": 1.25 },
{ "label": "3,1", "x": 1.25, "y": 3 },
{ "label": "3,2", "x": 2.25, "y": 3 },
{ "label": "3,3", "x": 3.25, "y": 3 },
{ "label": "3,4", "x": 4.25, "y": 3 },
{ "label": "3,5", "x": 5.25, "y": 3 },
{ "label": "3,6", "x": 6.25, "y": 3 },
{ "label": "3,7", "x": 7.25, "y": 3 },
{ "label": "3,8", "x": 8.25, "y": 3 },
{ "label": "3,9", "x": 9.25, "y": 3 },
{ "label": "3,10", "x": 10.25, "y": 3 },
{ "label": "3,11", "x": 11.25, "y": 3 },
{ "label": "3,12", "x": 12.25, "y": 3, "w": 1.75 },
{ "label": "3,13", "x": 14.25, "y": 3.25 },
{ "label": "3,14", "x": 15.5, "y": 3 },
{ "label": "3,15", "x": 16.5, "y": 3 },
{ "label": "3,16", "x": 17.5, "y": 3 },
{ "label": "3,17", "x": 18.5, "y": 3 },
{ "label": "4,0", "x": 0, "y": 4, "w": 1.25 },
{ "label": "4,1", "x": 1.25, "y": 4, "w": 1.25 },
{ "label": "4,2", "x": 2.5, "y": 4, "w": 1.25 },
{ "label": "4,6", "x": 3.75, "y": 4, "w": 6.25 },
{ "label": "4,10", "x": 10, "y": 4, "w": 1.5 },
{ "label": "4,11", "x": 11.5, "y": 4, "w": 1.5 },
{ "label": "4,12", "x": 13.25, "y": 4.25 },
{ "label": "4,13", "x": 14.25, "y": 4.25 },
{ "label": "4,14", "x": 15.25, "y": 4.25 },
{ "label": "4,15", "x": 16.5, "y": 4 },
{ "label": "4,16", "x": 17.5, "y": 4 },
{ "label": "4,17", "x": 18.5, "y": 4 }
]
}
}
}

View File

@@ -0,0 +1,34 @@
/* Copyright 2021 Matthew Dias
*
* 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
//This is the ANSI version of the PCB
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_ansi( /* Base */
KC_GESC, 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_DEL, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
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_P7, KC_P8, KC_P9, KC_PEQL,
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_P4, KC_P5, KC_P6, KC_PPLS,
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_P1, KC_P2, KC_P3, KC_BSPC,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT),
[1] = LAYOUT_ansi( /* FN */
KC_GRV, 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_UP, 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_LEFT, KC_DOWN, 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
};

View File

@@ -0,0 +1,11 @@
# The default keymap for Barleycorn
![Layer 0](https://i.imgur.com/cU9lzz3.png)
![Layer 1](https://i.imgur.com/0G3e1K3.png)
Default layer is normal ANSI and Fn layer is used for Volume control and arrow cluster.
Alternative ANSI layouts:
![Alt Keymap](https://i.imgur.com/6uAx8jZ.png)

View File

@@ -0,0 +1,34 @@
/* Copyright 2021 Matthew Dias
*
* 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
//This is the ISO version of the PCB
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_iso( /* Base */
KC_GESC, 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_DEL, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
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_P7, KC_P8, KC_P9, KC_PEQL,
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_P4, KC_P5, KC_P6, KC_PPLS,
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_BSPC,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT),
[1] = LAYOUT_iso( /* FN */
KC_GRV, 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_UP, 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_LEFT, KC_DOWN, 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, 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_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
};

View File

@@ -0,0 +1,11 @@
# The default keymap for ISO Barleycorn
![Layer 0](https://i.imgur.com/llZlVHt.png)
![Layer 1](https://i.imgur.com/hrYtMQk.png)
Default layer is normal ISO and Fn layer is used for Volume control and arrow cluster
Alternative ISO layouts:
![Alt Keymap](https://i.imgur.com/2cL0IGQ.png)

View File

@@ -0,0 +1,48 @@
/* Copyright 2021 Matthew Dias
*
* 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
// This keymaps is used for VIA, it reflects the default keymap.
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_all( /* Base */
KC_GESC, 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_DEL, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
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_P7, KC_P8, KC_P9, KC_PEQL,
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_P4, KC_P5, KC_P6, KC_PPLS,
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_BSPC,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT),
[1] = LAYOUT_all( /* FN */
KC_GRV, 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_UP, 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_LEFT, KC_DOWN, 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, 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_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
[2] = LAYOUT_all( /* Empty for dynamic keymaps */
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
[3] = LAYOUT_all( /* Empty for dynamic keymaps */
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
};

View File

@@ -0,0 +1 @@
# Compile with this keymap to use VIA

View File

@@ -0,0 +1 @@
VIA_ENABLE = yes

View File

@@ -0,0 +1,138 @@
/*
Copyright 2021 Matthew Dias
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 <stdint.h>
#include <stdbool.h>
#include "wait.h"
#include "quantum.h"
#include "i2c_master.h"
static const pin_t row_pins[MATRIX_ROWS] = MATRIX_ROW_PINS;
static const pin_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS;
static void unselect_rows(void) {
for(uint8_t x = 0; x < MATRIX_ROWS; x++) {
setPinInputHigh(row_pins[x]);
}
}
static void select_row(uint8_t row) {
setPinOutput(row_pins[row]);
writePinLow(row_pins[row]);
}
static void unselect_row(uint8_t row) {
setPinInputHigh(row_pins[row]);
}
static void init_pins(void) {
unselect_rows();
// Set I/O
uint8_t send_data[2] = { 0xFF, 0x03};
i2c_writeReg((PORT_EXPANDER_ADDRESS << 1), 0x00, &send_data[0], 2, 20);
// Set Pull-up
i2c_writeReg((PORT_EXPANDER_ADDRESS << 1), 0x0C, &send_data[0], 2, 20);
for (uint8_t x = 0; x < MATRIX_COLS; x++) {
if ( x < 8 ) {
setPinInputHigh(col_pins[x]);
}
}
}
void matrix_init_custom(void) {
// TODO: initialize hardware here
// Initialize I2C
i2c_init();
// initialize key pins
init_pins();
wait_ms(50);
}
static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) {
// Store last value of row prior to reading
matrix_row_t last_row_value = current_matrix[current_row];
// Clear data in matrix row
current_matrix[current_row] = 0;
// Select row and wait for row selecton to stabilize
select_row(current_row);
matrix_io_delay();
uint8_t port_expander_col_buffer[2];
i2c_readReg((PORT_EXPANDER_ADDRESS << 1), 0x12, &port_expander_col_buffer[0], 2, 20);
// For each col...
for(uint8_t col_index = 0; col_index < MATRIX_COLS; col_index++) {
uint8_t pin_state;
// Select the col pin to read (active low)
switch (col_index) {
case 8 :
pin_state = port_expander_col_buffer[0] & (1 << 0);
break;
case 9 :
pin_state = port_expander_col_buffer[0] & (1 << 1);
break;
case 10 :
pin_state = port_expander_col_buffer[0] & (1 << 2);
break;
case 11 :
pin_state = port_expander_col_buffer[0] & (1 << 3);
break;
case 12 :
pin_state = port_expander_col_buffer[0] & (1 << 4);
break;
case 13 :
pin_state = port_expander_col_buffer[0] & (1 << 5);
break;
case 14 :
pin_state = port_expander_col_buffer[0] & (1 << 6);
break;
case 15 :
pin_state = port_expander_col_buffer[0] & (1 << 7);
break;
case 16 :
pin_state = port_expander_col_buffer[1] & (1 << 0);
break;
case 17 :
pin_state = port_expander_col_buffer[1] & (1 << 1);
break;
default :
pin_state = readPin(col_pins[col_index]);
}
// Populate the matrix row with the state of the col pin
current_matrix[current_row] |= pin_state ? 0 : (MATRIX_ROW_SHIFTER << col_index);
}
// Unselect row
unselect_row(current_row);
return (last_row_value != current_matrix[current_row]);
}
bool matrix_scan_custom(matrix_row_t current_matrix[]) {
bool matrix_has_changed = false;
// Set row, read cols
for (uint8_t current_row = 0; current_row < MATRIX_ROWS; current_row++) {
matrix_has_changed |= read_cols_on_row(current_matrix, current_row);
}
return matrix_has_changed;
}

View File

@@ -0,0 +1,19 @@
# Barleycorn SMD
![image](https://user-images.githubusercontent.com/3302524/110901245-a5679b00-82c9-11eb-8f8f-17ed6bd97332.png)
An f-row less compact 1800 keyboard with SMD components. Based on Barleycorn by Yiancar.
- Keyboard Maintainer: matthewdias
- Hardware Supported: Barleycorn SMD
- Hardware Availability: https://p3dstore.com
Make example for this keyboard (after setting up your build environment):
make barleycorn_smd:default
Flashing example for this keyboard:
make barleycorn_smd:default:flash
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).

View File

@@ -0,0 +1,27 @@
# MCU name
MCU = atmega32u4
# Bootloader selection
BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
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
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
BLUETOOTH_ENABLE = no # Enable Bluetooth
AUDIO_ENABLE = no # Audio output
CUSTOM_MATRIX = lite
SRC += matrix.c
QUANTUM_LIB_SRC += i2c_master.c

View File

@@ -0,0 +1,17 @@
/* Copyright 2021 knaruo
*
* 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 "barracuda.h"

View File

@@ -0,0 +1,41 @@
/* Copyright 2021 knaruo
*
* 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 "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_ortho_3x11( \
L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, \
L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, \
L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24 \
) { \
{ L00, L01, L02, L03, L04, L05 }, \
{ L10, L11, L12, L13, L14, L15 }, \
{ L20, L21, L22, L23, L24, L25 }, \
{ KC_NO, R00, R01, R02, R03, R04 }, \
{ KC_NO, R10, R11, R12, R13, R14 }, \
{ KC_NO, R20, R21, R22, R23, R24 } \
}

View File

@@ -0,0 +1,59 @@
/* Copyright 2021 knaruo
*
* 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 0x6B6E
#define PRODUCT_ID 0x0001
#define DEVICE_VER 0x0001
#define MANUFACTURER knaruo
#define PRODUCT barracuda
/* key matrix size */
#define MATRIX_ROWS 6
#define MATRIX_COLS 6
/*
* 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 { C4, C5, C6, D1, D2, D3 }
#define MATRIX_COL_PINS { D4, D5, D6, B0, B1, B2 }
#define UNUSED_PINS
/* COL2ROW, ROW2COL */
#define DIODE_DIRECTION COL2ROW
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 5
/* 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
/* disable these deprecated features by default */
#define NO_ACTION_MACRO
#define NO_ACTION_FUNCTION

View File

@@ -0,0 +1,48 @@
{
"keyboard_name": "barracuda",
"url": "https://github.com/knaruo/barracuda",
"maintainer": "knaruo",
"width": 14,
"height": 3,
"layouts": {
"LAYOUT": {
"layout": [
{"x": 0, "y": 0},
{"x": 1, "y": 0},
{"x": 2, "y": 0},
{"x": 3, "y": 0},
{"x": 4, "y": 0},
{"x": 5, "y": 0},
{"x": 9, "y": 0},
{"x": 10, "y": 0},
{"x": 11, "y": 0},
{"x": 12, "y": 0},
{"x": 13, "y": 0},
{"x": 0, "y": 1},
{"x": 1, "y": 1},
{"x": 2, "y": 1},
{"x": 3, "y": 1},
{"x": 4, "y": 1},
{"x": 5, "y": 1},
{"x": 9, "y": 1},
{"x": 10, "y": 1},
{"x": 11, "y": 1},
{"x": 12, "y": 1},
{"x": 13, "y": 1},
{"x": 0, "y": 2},
{"x": 1, "y": 2},
{"x": 2, "y": 2},
{"x": 3, "y": 2},
{"x": 4, "y": 2},
{"x": 5, "y": 2},
{"x": 9, "y": 2},
{"x": 10, "y": 2},
{"x": 11, "y": 2},
{"x": 12, "y": 2},
{"x": 13, "y": 2}
]
}
}
}

View File

@@ -1,4 +1,4 @@
/* Copyright 2020-2021 Viktor Eikman
/* Copyright 2021 knaruo
*
* 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
@@ -16,8 +16,5 @@
#pragma once
#ifdef KEYBOARD_handwired_concertina_64key
#include "64key.h"
#endif
#include "quantum.h"
#define TAPPING_TERM 175 // milliseconds
#define IGNORE_MOD_TAP_INTERRUPT

View File

@@ -0,0 +1,63 @@
/* Copyright 2021 knaruo
*
* 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
#include "keymap_jp.h"
/* keymap layers */
enum _layers {
_BASE = 0,
_NUM,
_FN,
_RESERVED, // reserved for VIA
_END, // end of supported layers
};
/* Keycode alias */
#define KC_CTBS RCTL_T(KC_BSPC) // Backspace + Ctrl
#define KC_XWIN LWIN_T(KC_X)
#define KC_SPF1 LT(_NUM, KC_SPC) // Space + NUM layer
#define KC_DLF2 LT(_FN, KC_DEL) // Del + FN key layer
#define KC_SFEN RSFT_T(KC_ENT) // Enter + Shift
#define KC_CAD LALT(LCTL(KC_DEL)) // ctrl + alt + delete
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Base QWERTY key map */
[_BASE] = LAYOUT_ortho_3x11(
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, /*_____*/ KC_Y, KC_U, KC_I, KC_O, KC_P,
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, /*_____*/ KC_H, KC_J, KC_K, KC_L, KC_CTBS,
KC_LSFT, KC_Z, KC_XWIN, KC_C, KC_V, KC_SPF1, /*_____*/ KC_DLF2, KC_B, KC_N, KC_M, KC_SFEN
),
[_NUM] = LAYOUT_ortho_3x11(
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, /*_____*/ KC_6, KC_7, KC_8, KC_9, KC_0,
_______, KC_TAB, JP_MINS, JP_CIRC, JP_YEN, JP_AT, /*_____*/ JP_SCLN, JP_COLN, JP_LBRC, JP_RBRC, _______,
_______, _______, JP_ZKHK, KC_LALT, JP_COMM, _______, /*_____*/ _______, JP_DOT, JP_SLSH, JP_BSLS, _______
),
[_FN] = LAYOUT_ortho_3x11(
_______, 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_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_CAD,
_______, _______, _______, _______, _______, _______, /*_____*/ _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END
),
[_RESERVED] = LAYOUT_ortho_3x11(
_______, _______, _______, _______, _______, _______, /*_____*/ _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, /*_____*/ _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, /*_____*/ _______, _______, _______, _______, _______
),
};

View File

@@ -0,0 +1 @@
# The default keymap

View File

@@ -0,0 +1,20 @@
/* Copyright 2021 knaruo
*
* 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 TAPPING_TERM 175 // milliseconds
#define IGNORE_MOD_TAP_INTERRUPT

View File

@@ -0,0 +1,63 @@
/* Copyright 2021 knaruo
*
* 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
#include "keymap_jp.h"
/* keymap layers */
enum _layers {
_BASE = 0,
_NUM,
_FN,
_RESERVED, // reserved for VIA
_END, // end of supported layers
};
/* Keycode alias */
#define KC_CTBS RCTL_T(KC_BSPC) // Backspace + Ctrl
#define KC_XWIN LWIN_T(KC_X)
#define KC_SPF1 LT(_NUM, KC_SPC) // Space + NUM layer
#define KC_DLF2 LT(_FN, KC_DEL) // Del + FN key layer
#define KC_SFEN RSFT_T(KC_ENT) // Enter + Shift
#define KC_CAD LALT(LCTL(KC_DEL)) // ctrl + alt + delete
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Base QWERTY key map */
[_BASE] = LAYOUT_ortho_3x11(
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, /*_____*/ KC_Y, KC_U, KC_I, KC_O, KC_P,
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, /*_____*/ KC_H, KC_J, KC_K, KC_L, KC_CTBS,
KC_LSFT, KC_Z, KC_XWIN, KC_C, KC_V, KC_SPF1, /*_____*/ KC_DLF2, KC_B, KC_N, KC_M, KC_SFEN
),
[_NUM] = LAYOUT_ortho_3x11(
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, /*_____*/ KC_6, KC_7, KC_8, KC_9, KC_0,
_______, KC_TAB, JP_MINS, JP_CIRC, JP_YEN, JP_AT, /*_____*/ JP_SCLN, JP_COLN, JP_LBRC, JP_RBRC, _______,
_______, _______, JP_ZKHK, KC_LALT, JP_COMM, _______, /*_____*/ _______, JP_DOT, JP_SLSH, JP_BSLS, _______
),
[_FN] = LAYOUT_ortho_3x11(
_______, 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_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_CAD,
_______, _______, _______, _______, _______, _______, /*_____*/ _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END
),
[_RESERVED] = LAYOUT_ortho_3x11(
_______, _______, _______, _______, _______, _______, /*_____*/ _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, /*_____*/ _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, /*_____*/ _______, _______, _______, _______, _______
),
};

View File

@@ -0,0 +1 @@
# VIA enabled keymap

View File

@@ -0,0 +1 @@
VIA_ENABLE = yes

View File

@@ -0,0 +1,24 @@
# barracuda
![barracuda](https://imgur.com/pTyxOtv.jpg)
30% Ortholinear keyboard with low profile switches
* Keyboard Maintainer: [knaruo](https://github.com/knaruo)
* Hardware Supported: barracuda PCB, ATmega32U2
* Hardware Availability: [PCB and Plate](https://github.com/knaruo/barracuda)
Getting the board into bootloader mode:
To be able to flash firmware onto this board, you'll need to bring the micro controller into bootloader mode. Press the reset button (RSTSW1) on the bottom side of the PCB to enable the bootloader mode.
Make example for this keyboard (after setting up your build environment):
make barracuda:default
Flashing example for this keyboard:
make barracuda:default:flash
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).

View File

@@ -0,0 +1,24 @@
# MCU name
MCU = atmega32u2
# Bootloader selection
BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
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
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
BLUETOOTH_ENABLE = no # Enable Bluetooth
AUDIO_ENABLE = no # Audio output
LAYOUTS = ortho_3x11

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