Compare commits

...
200 Commits
Author SHA1 Message Date
Ryan 972f8ba69a Fix AT90USB64/128 bootloaders (#14064) 2021-08-19 17:11:20 +01:00
9ac0023a6a Add MNK50 (#14031)
* Add MNK50

* Update keyboards/mnk50/rules.mk

Co-authored-by: Drashna Jaelre <[email protected]>

* Update keyboards/mnk50/rules.mk

Co-authored-by: Ryan <[email protected]>

* Update keyboards/mnk50/readme.md

hihi thanks!

Co-authored-by: Ryan <[email protected]>

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

Co-authored-by: Ryan <[email protected]>

Co-authored-by: yiancar <[email protected]>
Co-authored-by: Drashna Jaelre <[email protected]>
Co-authored-by: Ryan <[email protected]>
2021-08-19 16:53:20 +01:00
Tran Kim TungandRyan 49be4860f7 [Keyboard] adds new keyboard version: dztech/dz60rgb_wkl/v2_1 (#14021)
* [Keyboard] adds new keyboard version: dztech/dz60rgb_wkl/v2_1

* Update keyboards/dztech/dz60rgb_wkl/readme.md

Remove external flash manual link

Co-authored-by: Ryan <[email protected]>

* dz60rgb_wkl/v2_1: remove NO_USB_STARTUP_CHECK

Co-authored-by: Ryan <[email protected]>

Co-authored-by: Ryan <[email protected]>
2021-08-19 16:51:23 +01:00
rate d6eee3e0f2 Added VIA keymap for pistachio_mp (#14015)
* Added VIA keymap for pistachio_mp

* Fixed typos
2021-08-19 16:41:49 +01:00
AquaCylinder 468661280b emi20 update (#14013)
* Update keymap & readme

-Keymap.c: Key combinations removed for resetting and added a new way to reset. Also removed unused timer code.

-config.h & rules.mk: Removed on kemap level (these were there for the key combo's)

-Readme.md: Changed the preview image and changed the description to reset the keyboard. Also added what connector type is used.

* Update readme.md

Better wording on how to get the keyboard in bootloader mode

* Update keymap.c

Switched + and - around, same with / and *.
2021-08-19 16:41:05 +01:00
James Young 068ab2800c Keebio Quefrency Configurator rework (#14060)
* add info.json for Quefrency rev1

* add info.json for Quefrency rev2

* add info.json for Quefrency rev3

* add info.json for Quefrency rev4

* remove "global" Quefrency info.json

* remove layout macro aliases from keyboard headers

These were moved into the info.json files.
2021-08-18 17:42:17 -07:00
James Young ac1309cd75 Feels Feels65 Refactor (#14032)
* rename layout macros

The existing layout macro names were not accurate to QMK's standard for the names that were given.

- rename LAYOUT_65_ansi_blocker to LAYOUT_65_ansi_blocker_split_bs
- rename LAYOUT_65_iso_blocker to LAYOUT_65_iso_blocker_split_bs

* correct info.json data

* add LAYOUT_65_iso_blocker

* add LAYOUT_65_ansi_blocker

* add Community Layout support

* update grid alignment on layout macros

* add LAYOUT_all

* refactor default and via keymaps

- use LAYOUT_all macro
- use _______ for KC_TRNS
- via keymap fixes
  - swap KC_BSPC for KC_DEL on Layer 1 (matches default keymap)
  - remove KC_PGUP from Layers 2 and 3 (makes both layers fully transparent)
2021-08-18 17:37:53 -07:00
James Young 6200907417 cest73 TKM Configurator Fixes (#14066)
* info.json: update human-friendly formatting

* correct info.json layout data

- adds missing objects for:
  - split Backspace
  - split Numpad Plus
  - split Numpad Enter
  - split Left Shift
  - ANSI Backslash
  - split Numpad 0
- deletes Mod1 object (not supported in source)
- correct key object sequence
2021-08-18 17:33:26 -07:00
Logan Butler 0daccebaf9 [Keyboard] Fixes to info.json and rules.mk for Southpad n(#14053)
Making info.json work better with the QMK Configurator and updating rules to work properly with the correct bootloader.
2021-08-18 10:34:43 -07:00
James Young b21e093057 Setta21 Configurator Fix (#14055)
* info.json: add line breaks for rows

* info.json: correct key sequence

* info.json: correct width dimension
2021-08-18 09:50:25 +01:00
AnthonyLandAnthony Lowery b51a187d77 [Keyboard] Use Bootmagic Lite on Montex (#14036)
Co-authored-by: Anthony Lowery <[email protected]>
2021-08-17 22:27:02 -07:00
Matthias LiffersandDrashna Jaelre 33587254a0 [Keyboard] Fix pins, add VIA support for Stream Cheap 2x4 (#14001)
Co-authored-by: Drashna Jaelre <[email protected]>
2021-08-17 17:33:28 -07:00
s-showandshela ab10ce4932 update feature_tap_dance.md translation (#13496)
* update feature_tap_dance.md translation

* Update docs/ja/feature_tap_dance.md

Co-authored-by: shela <[email protected]>

* update based on comment.

Co-authored-by: shela <[email protected]>
2021-08-18 01:13:09 +09:00
yuleiandRyan a8f893ed2c [Keyboard] add n6 keyboard (#13768)
Co-authored-by: Ryan <[email protected]>
2021-08-17 09:06:26 -07:00
Charly Delay 837571ef7f [Keyboard] bastardkb/skeletyl: fix LED configuration (#14030) 2021-08-17 08:44:19 -07:00
James Young cab1347387 ryanbaekr rb86: rename LAYOUT_numpad_6x17 to LAYOUT (#14011)
This keyboard isn't a numpad.
2021-08-16 13:50:30 -07:00
James Young 08b2d08593 MisonoWorks Chocolate Bar Configurator fixes (#14009)
* info.json: apply human-friendly formatting

* info.json: correct key sequence

Places the arrow keys in the proper place in sequence.

* correct maintainer's GitHub link in readme

User changed their GitHub username; previous URL was Error 404.
2021-08-16 13:16:17 -07:00
James Young d9bb42e37b Linworks Fave87 Layout Macro Refactor (#14008)
* correct LAYOUT_tkl_ansi data

Number row was positioned 0.25u too low.

* correct LAYOUT_tkl_ansi macro

- remove position K027 (right half of Split Backspace)
- remove position K096 (right portion of Split Right Shift)

* correct LAYOUT_tkl_iso macro

- remove position K027 (right half of Split Backspace)
- remove position K096 (right portion of Split Right Shift)

* enable Community Layout support

* add LAYOUT_tkl_ansi_split_bs_rshift and LAYOUT_tkl_iso_split_bs_rshift
2021-08-16 13:11:09 -07:00
James Young 0c6155ec42 Pimentoso TouhouPad Layout Macro refactor (#14010)
* physically arrange layout macro, phase 1

Break the keymap up into rows.

* physically arrange layout macro, phase 2

Moves the Escape and Enter keys to the top row.

* refactor default keymap

- use QMK short-form keycodes
- grid align keycodes

* physically arrange layout macro, phase 3

Moves the X key (Bomb) to the bottom row.

* physically arrange layout macro, phase 4

Physically arrange the Escape and Enter keys.

* physically arrange layout macro, phase 5

Physically arrange the arrow keys.

* physically arrange layout macro, phase 6

Physically align the X (Bomb) key.

* align escape characters in layout macro

* info.json: apply human-friendly formatting
2021-08-16 03:17:25 -07:00
James Young b512afc347 Fix line endings in keyboards/absinthe/keymaps/via/rules.mk (#14028) 2021-08-15 23:44:03 -07:00
James Young 3c3c5965f1 Gorthage Truck Refactor (#14006)
* info.json: apply human-friendly formatting

* info.json: make key labels more friendly to `qmk info -l`

* correct LAYOUT_3u key sequence

* correct LAYOUT_7u key sequence

* correct LAYOUT_10u key sequence

* refactor default keymap

- use QMK short-form keycodes
- update grid alignment
- use four-space indent
- touch up with `qmk cformat`

* refactor 10u keymap

- use QMK short-form keycodes
- add encoder_update_user() function
- update grid alignment
- use four-space indent

* refactor 7u keymap

- use QMK short-form keycodes
- add encoder_update_user() function
- update grid alignment
- use four-space indent

* refactor gorthage_truck.h

- update grid alignments
- use XXX for KC_NO
- insert omitted KC_NO instances

* correct keyboard metadata in info.json

- use GitHub username for maintainer
- correct keyboard dimensions

* add encoder_update_kb() function to gorthage_truck.c

Gives QMK Configurator compile jobs encoder functionality.

* update maintainer field in info.json

As requested by jpuerto96 (s8erdude).
2021-08-15 19:41:02 -07:00
Ryan 4c93c350a6 AL1 refactor (#13679) 2021-08-15 15:19:01 +10:00
Ryan b1d8efeb59 LFKeyboards: Replace KC_FNx with F(x) (#13999) 2021-08-15 15:18:41 +10:00
Ramon Imbao 209fd753cb [Keyboard] Add TKL-FF PCB (#14003) 2021-08-14 08:07:55 -07:00
1e4f0d9dcf [Keyboard] add Stealth macropad (#13986)
Co-authored-by: Drashna Jaelre <[email protected]>
Co-authored-by: Ryan <[email protected]>
2021-08-14 07:58:44 -07:00
Ryan fce12f0075 Rework keymap_extras docs (#13949) 2021-08-15 00:18:20 +10:00
James Young de29364827 Ducky One2mini Layout Macro fixes (#14002) 2021-08-14 23:19:50 +10:00
James Young 47b76f556b Function96 V2 Configurator fixes (#13996)
* info.json: apply human-friendly formatting

* correct key sequence for LAYOUT_iso

* correct key sequence for LAYOUT_iso_splitspace

* add layout data for LAYOUT_all
2021-08-14 02:10:03 -07:00
James Young 90583a1668 Orthocode Layout Macro rework (#13995)
* move rotary encoder to top row of layout macro

Makes the layout macro and keycodes resemble the assembled keyboard.

* update info.json data

- convert tabs to spaces
- use human-friendly formatting
- fill in key object labels
- adjust object sequence for layout macro changes
2021-08-14 02:02:24 -07:00
James Young e2c6dadfbf Noxary 378 Layout Macro rework (#13998)
* physically arrange layout macro

* add info.json
2021-08-14 01:48:25 -07:00
ed350a1aa6 add falcon keyboard (#13674)
* added falcon keyboard

* Update keyboards/matrix/falcon/rules.mk

Co-authored-by: Drashna Jaelre <[email protected]>

* Update keyboards/matrix/falcon/rules.mk

Co-authored-by: Drashna Jaelre <[email protected]>

* Apply suggestions from code review

Co-authored-by: Drashna Jaelre <[email protected]>

* Apply suggestions from code review

Co-authored-by: Ryan <[email protected]>

* added description for the bootloader

* Apply suggestions from code review

Co-authored-by: Ryan <[email protected]>

Co-authored-by: Drashna Jaelre <[email protected]>
Co-authored-by: Ryan <[email protected]>
2021-08-14 16:35:32 +10:00
Ramon ImbaoandDrashna Jaelre 088d6abf54 [Keyboard] Add Irene Keyboard (#13991)
Co-authored-by: Drashna Jaelre <[email protected]>
2021-08-13 21:54:38 -07:00
Drashna Jaelre 2881517097 Fix Line endings in Absinthe VIA keymap (#13997) 2021-08-14 13:57:41 +10:00
ade989962a [Keymap] clean up userspace, add XD75 / Keyboardio Atreus (#13121)
Co-authored-by: Ryan <[email protected]>
Co-authored-by: Drashna Jaelre <[email protected]>
2021-08-13 18:14:21 -07:00
James Young 424b9ff709 Crin Refactor (#13982)
* rename LAYOUT_default to LAYOUT_all

* apply human-friendly formatting to info.json

* correct keyboard dimensions

* correct data for LAYOUT_tsangan

* add labels to LAYOUT_ansi data

* add labels to LAYOUT_all data

* add labels to LAYOUT_iso data

* crin.h: update grid alignment of matrix identifiers

* crin.h: add matrix diagram

* physically position matrix identifiers for LAYOUT_all

- move k2d to top row (right half of split Backspace)
- move k41 to fourth row (right half of split Left Shift [KC_NUBS])

* physically position matrix identifiers for LAYOUT_iso

- move k1d to top row ([KC_NUHS])
- add k41 to fourth row ([KC_NUBS], previously missing)

* refactor keymaps

- grid-align keycodes
- use four-space indent

* correct data for LAYOUT_iso

- move Enter key to home row

* rename LAYOUT_tsangan to LAYOUT_ansi_tsangan

* add LAYOUT_iso_tsangan

* update readme.md

- add `make` command for building
- add "Flashing example..."
- touch-up bootloader jump instructions (previous Markdown didn't render ideally on GitHub)

* extend keymap functionality

- add Grave Accent, Function keys, Print Screen, Scroll Lock and Pause keycodes to keymaps
- add RESET keycode (Fn+R)
- use KC_RGHT for Right arrow

* touch-up bootloader instructions on readme

- note that Bootmagic Lite jump erases persistent settings
- note that Fn+R is RESET keycode by default
2021-08-13 17:01:05 -07:00
Evelien-Lillian DekkersandDrashna Jaelre af98005b02 [Keyboard] Add Gud70 (#12575)
Co-authored-by: Drashna Jaelre <[email protected]>
2021-08-13 12:53:02 -07:00
alittlepeaceandDrashna Jaelre 9b922d55dd [Keyboard] Adding VIA to Absinthe (#13031)
Co-authored-by: Drashna Jaelre <[email protected]>
2021-08-13 12:35:56 -07:00
Sergey Omelchenko 74c9c3e9c2 [Keyboard] Macropad v2 polling rate fix (#13129) 2021-08-13 12:34:47 -07:00
4db9aa65b2 [Keyboard] Add eniigmakeyboards/ek60 (#13140)
* add eniigmakeyboards/ek60

* Update keyboards/eniigmakeyboards/ek60/rules.mk

Updated layouts

Co-authored-by: Drashna Jaelre <[email protected]>

* Update keymap.c

Added GPL2+ header

* Update keymap.c

Added GPL2+

* Update rules.mk

Added ISO layout here

* Update readme.md

Added instructions for resetting bootloader

* Update keyboards/eniigmakeyboards/ek60/rules.mk

Co-authored-by: Ryan <[email protected]>

Co-authored-by: adamws <[email protected]>
Co-authored-by: Drashna Jaelre <[email protected]>
Co-authored-by: Ryan <[email protected]>
2021-08-13 12:34:27 -07:00
NightlyBoards 504d443ee3 [Keyboard] Add n9 macropad (#13168) 2021-08-13 12:32:33 -07:00
DonutCablesandRyan 0f0ebde0aa [Keyboard] Updates to ScrabblePad (#13177)
Co-authored-by: Ryan <[email protected]>
2021-08-13 12:30:38 -07:00
steve ulrich 0972789e76 [Keymap] adds sulrich crkbd (corne) personal keymap (#13186) 2021-08-13 12:29:51 -07:00
Joel Elkins 2aeacf9db7 [Keymap] Updates to jdelkins userspace and keymaps (#13216)
- Remove disused dz60/jdelkins_ss keymap
- Manage configured features for firmware size
- Improve build configuration for the secrets feature
- Various keymap tweaks
- Clean up formatting in various places
2021-08-13 12:28:37 -07:00
Christian Sandven ac3b9333d8 [Keyboard] Add optional colemak layout to keymap (#13217) 2021-08-13 12:28:05 -07:00
npspearsandRyan 3366c5628c [Keyboard] add support for alternate ortho UD40 PCB (#13491)
Co-authored-by: Ryan <[email protected]>
2021-08-13 12:26:49 -07:00
Manna Harbour 1b5d7616d3 [Keyboard] Add split_3x5_3 layout support to boardsource/microdox (#13323) 2021-08-13 12:26:22 -07:00
Hugues Morisset d5eb673426 [Keyboard] Interlace matrix scan for performance on Moonlander (#13625) 2021-08-13 11:52:27 -07:00
20589fb050 [Keybord] Add LS_60 keyboard (#13851)
Co-authored-by: Drashna Jaelre <[email protected]>
Co-authored-by: Ryan <[email protected]>
2021-08-13 11:47:57 -07:00
d52e9321e9 [Keyboard] Add cest73/tkm keyboard (#13939)
Co-authored-by: Joel Challis <[email protected]>
Co-authored-by: Ryan <[email protected]>
Co-authored-by: cest <cest@localhost>
2021-08-13 11:46:29 -07:00
8bits4ever 325009587a [converter/a1200] Added support for ATmega32u4 (#13974) 2021-08-13 11:40:50 -07:00
Path Nirvana 670603590e [Keymap] adding new keymap for the idobo keyboard with backlight (#13969) 2021-08-13 11:31:12 -07:00
2c9957eb7e [Keyboard] Add dtisaac01 keyboard (#13967)
Co-authored-by: Drashna Jaelre <[email protected]>
Co-authored-by: Ryan <[email protected]>
2021-08-13 11:30:43 -07:00
f00e56eb0b [Keyboard] Add Southpad Keyboard (#13964)
Co-authored-by: Drashna Jaelre <[email protected]>
Co-authored-by: Ryan <[email protected]>
2021-08-13 11:29:59 -07:00
miniboisandDrashna Jaelre 8392729d74 [Keyboard] Add the mini_elixivy keyboard (#13960)
Co-authored-by: Drashna Jaelre <[email protected]>
2021-08-13 11:22:28 -07:00
0014c32375 [Keyboard] Added Frooastboard (#13970)
Co-authored-by: Drashna Jaelre <[email protected]>
Co-authored-by: Ryan <[email protected]>
2021-08-13 11:21:32 -07:00
0967d4c8a9 [Keyboard] Add Basketweave VIA keymap (#13972)
Co-authored-by: Drashna Jaelre <[email protected]>
Co-authored-by: Ryan <[email protected]>
Co-authored-by: Vince Vorholter <[email protected]>
2021-08-13 11:21:09 -07:00
Alabahuy 0b90877b4b [Keyboard] add rart75m with via support (#13975) 2021-08-13 11:18:02 -07:00
Zach White 4742a3a48f use sudo to install modules if needed (#13984) 2021-08-13 10:38:05 -07:00
Felix Sargent 0c175d63cf Update 20210529.md (#13170)
This was confusing to me when I updated, so I want to make it more clear for those that come after.
2021-08-13 06:14:57 +10:00
Drashna Jaelre fd4759dcfa [Keyboard] Fix keymaps for Ocean Gin v2 (#13976) 2021-08-13 04:03:50 +10:00
Vino Rodrigues 80015f7fb0 Update config.h for kbdfans/kbd67/mkiirgb/v3 (#13978)
QMK Configurator does not compile - needs a value on RGB_DISABLE_WHEN_USB_SUSPENDED
2021-08-12 09:04:06 -07:00
Jarrett DrouillardandRyan 2218879d68 [Keymap] add kuatsure planck keymap (#10625)
Co-authored-by: Ryan <[email protected]>
2021-08-12 08:56:25 -07:00
Luis GodinezandRyan a2d5468df3 [Keyboard] Add Launch Pad keymaps (#12490)
Co-authored-by: Ryan <[email protected]>
2021-08-12 08:51:56 -07:00
David HoelscherandRay 541e749aa8 [Keyboard] Update to customMK Genesis (#12511)
Co-authored-by: Ray <[email protected]>
2021-08-12 08:51:34 -07:00
74aff52bff [Keyboard] Add Spacey keyboard firmware (#12599)
Co-authored-by: Drashna Jaelre <[email protected]>
Co-authored-by: Ryan <[email protected]>
Co-authored-by: tfjones24 <[email protected]>
2021-08-12 08:50:12 -07:00
Paul James 7ee2b0f1ee [Keyboard] Add Tripel keyboard (#12635) 2021-08-12 08:49:51 -07:00
Christian SandvenandRyan 022e2748af [Keyboard] Keyprez rhino (#13035)
Co-authored-by: Ryan <[email protected]>
2021-08-12 08:38:37 -07:00
Miles Flavel 8b9c5a9c33 [Keyboard] Fix incorrect RGBLED_NUM value for kbd67 (#13166) 2021-08-12 08:25:09 -07:00
356561c438 [Keyboard] Add Skeletyl keyboard (#13495)
Co-authored-by: Albert Y <[email protected]>
Co-authored-by: Drashna Jaelre <[email protected]>
Co-authored-by: Ryan <[email protected]>
2021-08-12 07:45:42 -07:00
Jacob Jerrell 30843f8329 [Keymap] JJerrell - Add Userspace and ZSA Keyboard Keymaps (#13548) 2021-08-12 07:44:15 -07:00
sato-takashiandDrashna Jaelre 1e9d91d4ef [Keyboard] Add EndZone34 (#13847)
Co-authored-by: Drashna Jaelre <[email protected]>
2021-08-12 07:43:01 -07:00
James Young b61613ccb4 Cospad Configurator touch-up (#13971) 2021-08-12 07:24:58 -07:00
ac92f4b721 [Keyboard] Add Edda Keyboard (#13953)
Co-authored-by: Joel Challis <[email protected]>
Co-authored-by: Ryan <[email protected]>
2021-08-12 06:59:07 -07:00
David Dansby 6a5c07680c [Keymap] Add lily58 datadavd layout (#13560) 2021-08-11 20:40:17 -07:00
2bc2a51618 [Keyboard] add Gin V2 keyboard (#13943)
Co-authored-by: Drashna Jaelre <[email protected]>
Co-authored-by: Ryan <[email protected]>
2021-08-11 19:44:59 -07:00
Rifaa SubektiandRyan af81e3e63d [Keyboard] add Wang V2 keyboard (#13948)
Co-authored-by: Ryan <[email protected]>
2021-08-11 19:44:15 -07:00
Vicktor HutamaandDrashna Jaelre 02ac0f89c4 [Keyboard] Add Rune Vaengr Keyboard (#13945)
* initial commit

* fixed layout

* enabled NKRO

* removed qmkbest

* changed the pins and bootloader to the mcu version

* updated readme

* Apply suggestions from code review

thank you @drashna

Co-authored-by: Drashna Jaelre <[email protected]>

Co-authored-by: Drashna Jaelre <[email protected]>
2021-08-11 00:24:34 -07:00
jmaynardandJay Maynard 710d37b3eb [Keyboard] Improvements to m122_3270 (#13947)
Co-authored-by: Jay Maynard <[email protected]>
2021-08-11 00:21:40 -07:00
James Young 71ce2b0d79 Poker87C and Poker87D Refactor (#13961) 2021-08-11 00:20:10 -07:00
James Young 3161f10b1f Update USB Device strings for VIA identification (#13962) 2021-08-11 00:19:55 -07:00
Kyle Xiao af3627db25 [Userspace] Add custom tap dancing function (#13963) 2021-08-11 00:19:19 -07:00
Fernando Rodrigues 83a1c4763a [Keyboard] Added split plus layout to Cospad (#13938) 2021-08-10 19:11:19 -07:00
jpuerto96andRyan 04b9286605 [Keyboard] Gorthage Truck - Rotary Encoder Switch Position (#13942)
Co-authored-by: Ryan <[email protected]>
2021-08-10 19:09:59 -07:00
Ananya Kirtiandzvecr 8d4fcd678a Hp69 - Update led logic (#13940)
Co-authored-by: zvecr <[email protected]>
2021-08-11 10:30:56 +10:00
Eric S. Raymond 817fcfdc9a Fix shell port bug in computation of QMK_FIRMWARE_DIR (#13950)
Previous code would fail if cd echoes the tathet directory to stdout,
which is pretty common.  Redirecting its output to /dev/null
solves the problem.
2021-08-11 00:56:08 +01:00
Zach White ed84a4e7e3 Improve the qmk lint readme check (#13941)
* improve lint readme check

* improve if
2021-08-10 07:48:22 -07:00
Zach WhiteandJames Young 9a0118c603 Architecture documentation for Configurator and API (#13935)
* Architecture documentation for the configurator and api

* Apply suggestions from code review

Co-authored-by: James Young <[email protected]>

Co-authored-by: James Young <[email protected]>
2021-08-10 07:47:53 -07:00
Stefan Subich aeff347a07 Update feature_wpm.md (#13936)
Fix example markdown code formatting
2021-08-10 10:14:14 +01:00
Ryan d3932a104c Add padding to LUFA-MS .BIN files (#13922) 2021-08-10 18:03:04 +10:00
rate 076c8cc45f [Keyboard] Added pistachio_pro (#13466)
* Added pistachio_pro

* Apply suggestions from code review

* Apply suggestions from code review
2021-08-09 22:23:25 -07:00
Ryuki 8ef58e3291 adding my keymap "vayashiko" (#13049)
* adding my keymap

* changed some bugs

* removed include keymap.h
2021-08-09 21:07:14 -07:00
Brandon Lewis 760caaa9af Ristretto - Update bootloader (#13933)
* updated bootloader for 32u4 mcu

Should be atmel-dfu instead of caterina as the mcu is integrated instead of on a pro-micro/elite-c
2021-08-09 14:14:33 -07:00
Daniil Yastremskiy 26ea090190 Limit RGB max brightness on KPrepublic BM-series keyboards (#13132) 2021-08-09 11:32:35 -07:00
Pierre Chevalier 23becac3a6 Support all the 0.2 Ferris variants (#12653)
* Support all the 0.2 Ferris variants

For the Compact, the High and the Mini, create a new directory so each
keyboard may have the correct USB descriptor and a readme with more
specific information about it.

For the Bling, also add support for the underglow functionality.

Change the "MANUFACTURER" string to "Cuddly Keyboards Ltd.", the
name of the company I incorporated to sell keyboards, and change the
default descriptor from "Ferris the keeb" to "Ferris 0.2" which is more
descriptive.
I didn't update the 0.1 variants as I don't intend to sell these kits
with "Cuddly Keyboards". The firmware is mostly there to support
existing users.

Update the "hardware availability" to point to my new website:
cuddlykeyboards.com.

* Add RGB mode toggle to my keymap and to the default keymap

* Improve wording in the readme
2021-08-09 11:23:15 -07:00
Stick 5a59363e28 [User] changes to nstickney's keymaps (#11456)
0) Built a Bastyl, gave away the ErgoDoxEZ
1) UNICODEMAP
2) Iris left is now Elite-C
3) New QMK flashing instructions
2021-08-09 10:34:36 -07:00
Edvard Sire 8936d0ae4b [Keymap] new keymap for nui_mini (#13924) 2021-08-09 10:06:25 -07:00
9a1a35f681 [Keymap] Add kbd67 mkiirgb keymap (#13884)
Co-authored-by: Spaceman <[email protected]>
Co-authored-by: Drashna Jaelre <[email protected]>
2021-08-09 10:04:40 -07:00
Michele Ferri be72a64cf6 [Keyboard] Add TouhouPad (#13915)
* Touhoupad rev 2

* cleanup for PR

* fixes after review
2021-08-09 10:04:00 -07:00
Zach White e6c171bdd6 Fix generate api (#13930)
* Add missing returncode to exit()

* fix the aozora/hotswap vendor id
2021-08-09 08:28:51 -07:00
Zach White 5eb0e406fd make json imports more robust (#13928) 2021-08-09 08:27:02 -07:00
Chris 79d5b27993 [Keymap] rootiest for planck/rev6/ (#13294)
* squashed commits to master

* Fix in case of missing user_song_list
Substitutes missing songs with safe versions
Also updated and added detail to keymap readme

* Adjust Readme to match qmk contrib conventions

* Update keyboards/planck/keymaps/rootiest/config.h

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

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

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

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

* Fixed license header to GPLv2+

* Fix Volume key delay
Use a static number instead of removed MEDIA_KEY_DELAY

* Use TAP_CODE_DELAY

* added license to config.h

* Clean up formatting
- Fixed markdown in readme
- Removed extra commented line from config.h

* Update keyboards/planck/keymaps/rootiest/config.h
2021-08-09 02:25:43 -07:00
59b5c884ff [Keyboard] Undead 60M (#13735)
Co-authored-by: Drashna Jaelre <[email protected]>
Co-authored-by: Ryan <[email protected]>
2021-08-08 23:17:46 -07:00
Phooood 7c2f48e55d [Keyboard] Add Aozora (hotswap) keyboard (#13919)
* Initial Commit

* added header to hotswap.c

* added keymap-specific reamdme.md

* minor adjustments

* Requested corrections to readme's
2021-08-08 20:31:33 -07:00
ac2090bf4e [Keyboard] Add kbdfans kbd67 mkii rgb v3 (#13714)
Co-authored-by: Drashna Jaelre <[email protected]>
Co-authored-by: Ryan <[email protected]>
2021-08-07 21:45:43 -07:00
bfa7449041 [Keyboard] Add Pancake v2 (#13839)
Co-authored-by: Drashna Jaelre <[email protected]>
Co-authored-by: Ryan <[email protected]>
2021-08-07 21:42:04 -07:00
Ananya KirtiandDrashna Jaelre b046bffcb8 [Keyboard] Added CapsLED and ScrollLock LEDs (#13837)
Co-authored-by: Drashna Jaelre <[email protected]>
2021-08-07 21:41:15 -07:00
8bits4everandRyan bc2b73f997 [Keyboard] a1200 converter minor changes (#13848)
Co-authored-by: Ryan <[email protected]>
2021-08-07 21:15:23 -07:00
jpuerto96andRyan 41d854048c [Keyboard] Gorthage Truck - New PCB (#13909)
Co-authored-by: Ryan <[email protected]>
2021-08-07 21:12:55 -07:00
Pascal PfeilandDrashna Jaelre 27d0844efb [Keyboard] Clean up lfkpad and add keymap (#13881)
Co-authored-by: Drashna Jaelre <[email protected]>
2021-08-07 20:37:13 -07:00
peott-fr 34689e348f [Keyboard] Adding my Nyquist keymap (#13858) 2021-08-07 20:24:24 -07:00
kb-elmo 07e2c11e55 [Keyboard] fixes for KBD67 rev2 (#13906) 2021-08-07 07:57:14 -07:00
kb-elmo 85c32da989 [Keyboard] Added 67mk_E PCB (#13869)
* added 67mk_E PCB

* add layouts
2021-08-06 23:52:39 -07:00
bomb a9b0750f7b [Keyboard] Modify key drive pins for mojo68 (#13863) 2021-08-06 23:52:18 -07:00
Alex Ong 8a9688bc64 [Keyboard] Use new matrix_output_select_delay api (#13861)
* Use new matrix_output_select_delay api

* Updated delay to 15 after more spamming
2021-08-06 23:51:38 -07:00
Cian JohnstonandJoel Challis 9d88786b6f [Keyboard] add handwired/oem_ansi_fullsize (#13857)
* Add new keyboard oem_ansi_fullsize

* clang-fmt

* Update keyboards/handwired/oem_ansi_fullsize/rules.mk

Co-authored-by: Joel Challis <[email protected]>

* Update keyboards/handwired/oem_ansi_fullsize/readme.md

Co-authored-by: Joel Challis <[email protected]>

* update info.json using qmk c2json

* update info.json

* move diagram to readme

* add matrix cols/rows to info.json

* fixup! add matrix cols/rows to info.json

* rename layout, fix block comment

* s/ansi_fullsize/fullsize_ansi/g

Co-authored-by: Joel Challis <[email protected]>
2021-08-06 23:51:03 -07:00
Jack Kenney e4342f8630 [Keymap] JackKenney's keymap for GMMK Pro (#13853) 2021-08-06 23:49:25 -07:00
Drashna Jaelre 9c03d41f6a [Keyboard] Fix oled_task_user for chocolatebar (#13911) 2021-08-06 23:06:39 -07:00
James Young 95fed3bfcf clean up CRLF instances (#13910) 2021-08-07 15:59:03 +10:00
MoritzandJoel Challis a3cb3e139a [Keyboard] Add Fave87 (#13873)
Co-authored-by: Joel Challis <[email protected]>
2021-08-06 22:48:17 -07:00
d917bfb277 [Keyboard] Add MisonoWorks Chocolate Bar keyboard (#13798)
Co-authored-by: Ryan <[email protected]>
Co-authored-by: Drashna Jaelre <[email protected]>
Co-authored-by: Joel Challis <[email protected]>
Co-authored-by: autumnisacutie <[email protected]>
2021-08-06 21:48:19 -07:00
744019c032 [Keyboard] Add Hex4B PCB (#13435)
Co-authored-by: Ryan <[email protected]>
Co-authored-by: vuhopkep <[email protected]>
2021-08-06 17:02:46 -07:00
yfuku 6721825df5 [Keyboard] Add owl8 keyboard (#13380)
* add owl8

* use DIRECT_PINS

* fix encoder

* Changed to use action_exec.
2021-08-06 17:01:52 -07:00
Gigahawk bdf86c4cbd Add replacement screw specifications to GMMK Pro readme (#13903) 2021-08-06 04:54:43 -07:00
Joel Challis c588d232cb Avoid name conflicts with usb_hid Arduino code (#13870)
* Avoid name conflicts with usb_hid Arduino code

* Fix tests
2021-08-06 15:53:38 +10:00
James Young b9a1b61f6a Flehrad Tradestation Refactor (#13897)
* add license headers

Apache 2.0 per the included `license` file.

* info.json: use human-friendly formatting

* refactor keymaps

- split `default` keymap into `default` and `tradestation` keymaps (one for each layout)
- remove boilerplate functions
- apply four-space indent

* partial clean up of rules.mk

- update section header comment blocks
2021-08-05 22:18:17 -07:00
James Young 28b59c30d2 MetaMechs Timber Wolf Configurator Fixes (#13895)
* info.json: use human-friendly formatting

* info.json: fix key sequences for ISO layouts

All the ISO layouts had the Enter key out-of-sequence, causing key-assignment mismatches in QMK Configurator.
2021-08-05 21:28:26 -07:00
James YoungandRyan f4c55db8dd cKeys Handwire 101 Refactor (#13879)
* update info.json

- use human-friendly formatting
- remove `key_count` key

* rename LAYOUT to LAYOUT_ortho_4x4

* refactor default keymap

- add license header
- qmk cformat pass
- keycode grid alignment

* remove empty config.h file from default keymap

* update Manufacturer and Product strings

* tidy up handwire_101.c

- add license header
- remove boilerplate functions

* tidy up handwire_101.h

- add license header
- remove instructive comment

* minor rules.mk tidy-up

- remove Bootloader selection sample comments

* rewrite SEND_STRING() statements per fauxpark

Co-authored-by: Ryan <[email protected]>

Co-authored-by: Ryan <[email protected]>
2021-08-04 22:32:27 +01:00
James Young 4445455c1f BM65ISO: refactor layout macro (#13860) 2021-08-04 22:24:54 +10:00
8e8803459f Updated Ducky 2 one mini support (#11112)
* Initial Ducky One 2 Mini keyboard and keymap

* Keymap macro issue, together with general polish suggestions

* Separate default keymap into proper default, iso and ansi versions

* info.json updates (Configurator support). DEBOUNCE define adjust.

* Unused keymap defines removed.

* update requested ducky one mini2 board changes

* ducky: don't trigger app key with left shift

* ducky: make default mouse key behavior more linear

* ducky: add GRAVE_ESC_GUI_OVERRIDE to allow for win+esc to work

* ducky: playpause on fn space

* ducky: disable RGB_MATRIX until driver is merged

* ducky: clang-format matrix and one2mini.c

* ducky: update requested changes

Remove WFI_IDLE since it's already in the rules.mk CORTEX_ENABLE_WFI_IDLE=TRUE

* ducky: update requested changes

* ducky: move winkey grave esc to default keymap

* ducky: remove dipswitch from keymap and use DIP_SWITCH_MATRIX_GRID instead

* ducky: info.json lint

* ducky: enable DIP_SWITCH_ENABLE rule

* ducky: update readme

* ducky: fix backslash on default keymap

* ducky: remove unused USB_LED_CAPSLOCK_INDEX 28

* ducky: move mbi5042 led driver to ducky keyboard

* ducky: cosmetics

* ducky: requested changes

* ducky: refactor matrix.c again so we can better compare it to other boards

* ducky: remove bootmagic_lite as the boards bootloader trigger is actually handled in its own bootloader

* ducky: remove custom matrix

* ducky: update for chibios-contrib changes

* ducky: debug new USB driver

* ducky: debug usb issues

* ducky: update chibios version

* ducky: remove halconf.h

* ducky: update rules.mk

* ducky: update chconf.h

* Matching submodules.

* Restructure to explicitly define which board is in use, remove RGB driver pending followup PR.

* Revert "Matching submodules."

This reverts commit 2fbb34e0c63ea67ee09d2e2d525723c01431d1cd.

Co-authored-by: GitWellBack <[email protected]>
Co-authored-by: Nick Brassel <[email protected]>
2021-08-04 20:35:17 +10:00
James Young ae20574f84 barracuda: update info.json layout macro reference (#13874)
* barracuda: update info.json layout macro reference

- change LAYOUT to LAYOUT_ortho_3x11

* remove Community Layouts rule

ortho_3x11 isn't a valid Community Layout.
2021-08-04 03:09:25 +01:00
Drashna JaelreandRyan a0f2be18a4 Add bootloader section to keyboard template (#13774)
* Add bootloader section to keyboard template

* Apply suggestions from code review

Co-authored-by: Ryan <[email protected]>

Co-authored-by: Ryan <[email protected]>
2021-08-04 01:23:18 +01:00
Changsu Park 9c69db4700 Updated settings.json file to fit VSC's docs (#13829)
This change fixes the warning caused by deprecated way of configuring terminal profiles.

The warning caused by old settings.json is the following:
This is deprecated, the new recommended way to configure your default shell is by creating a terminal profile in `#terminal.integrated.profiles.windows#` and setting its profile name as the default in `#terminal.integrated.defaultProfile.windows#`. This will currently take priority over the new profiles settings but that will change in the future.

Refer to the link below for more information:
https://code.visualstudio.com/docs/editor/integrated-terminal#_configuration
2021-08-04 01:22:40 +01:00
James Young 8802d28aad boardsource/holiday/spooky: update info.json layout macro reference (#13875)
- change LAYOUT to LAYOUT_ortho_2x3
2021-08-04 00:29:41 +01:00
Ryan Baker d1cbea685e rb86 (#13824)
* rb86

* adjudicate comments
2021-08-04 08:54:12 +10:00
Joakim Tufvegren 2b097d670a Fix overflows in WPM calculations (#13128)
* Fix overflow in WPM calculations.

First, the "fresh" WPM calculation could end up being up to 12000 (with
default `WPM_ESTIMATED_WORD_SIZE`) if keys were pressed more or less
simultaneously. This value has now been clamped down to 255, in effect
clamping WPM to its max value of 255.

Second, with `WPM_ALLOW_COUNT_REGRESSION` enabled, it was possible to
regress the WPM below 0 (i.e. to 255) by just repeatedly pressing
backspace.

* Fix WPM being limited to 235 due to float/int logic.
2021-08-04 07:40:08 +10:00
James Young f2fc23d1b1 aves65: complete layout data (#13868)
add layout data for:
- LAYOUT_all
- LAYOUT_65_iso
- LAYOUT_65_iso_split_bs
- LAYOUT_65_iso_blocker_split_bs
- LAYOUT_65_ansi
- LAYOUT_65_ansi_split_bs
- LAYOUT_65_ansi_blocker
- LAYOUT_65_ansi_blocker_split_bs
2021-08-03 10:20:53 -07:00
James Young e9a3e20813 4pplet/eagle_viper_rep/rev_a: fix missing key object (#13867)
Adds a key object for the KC_NUHS key to the info.json data.
2021-08-03 10:03:25 -07:00
Jonathan Rascher 853344235a [Keymap] Minor cleanup of bcat keymaps and userspace (#13224) 2021-08-03 09:39:43 -07:00
James Young 4d42fb2031 40percentclub/nori: fix matrix reference in LAYOUT_ortho_4x8 (#13866)
* 40percentclub/nori: fix matrix reference in LAYOUT_ortho_4x8

* remove ortho_4x8 from Community Layouts rule

ortho_4x8 isn't a valid option here.
2021-08-03 00:04:07 -07:00
James Young 2d78a43556 capsunlocked/cu7: fix missing key object (#13862)
Adds a key object for the encoder keypress.
2021-08-03 13:17:06 +10:00
plarso fd9d531bd9 [Docs] Remove extra word it bootmagic page (#13855) 2021-08-02 18:01:38 -07:00
James Young be9031d01d 0xCB Static: fix qmk info and Configurator issues (#13856) 2021-08-02 17:52:46 -07:00
JTM c2f227d2a8 Function96 V2: Fixed info.json file (#13322)
Fixes the info.json data for the LAYOUT_default and LAYOUT_ansi_splitspace macros.
2021-08-02 01:24:25 -07:00
xyzz 720c676403 flash_stm32: don't unlock flash if already unlocked (#13841)
On stm32f4 after reboot from DFU it was observed that the flash is
already unlocked. In that case, attempting to unlock it again causes a
data abort.
2021-08-02 14:27:57 +10:00
James Young 4b630c46fe Duck Eagle/Viper V2 Refactor (#13828) 2021-07-31 13:12:49 -07:00
James Young 851d995a7d Merro60 Layout Macro Refactor (#13827) 2021-07-31 12:17:55 -07:00
James Young 1305b6d82e Momoka Ergo: layout macro/Configurator fix (#13825)
* momoka_ergo.h: use modified QMK 3-character notation

Renames the matrix position arguments to use QMK's K<row><column> notation, but using L or R for the left and right halves, respectively.

* physically arrange layout macro

Arrange the layout macro and keycodes to resemble the assembled keyboard.

* info.json: rebuild LAYOUT data

Fixes mispositioned keys in QMK Configurator.
2021-07-31 12:16:51 -07:00
slashbunny 3f5482bbb7 Update endgame keymap to work with suspend changes (#13805)
Updates the Massdrop CTRL keyboard engame keymap to work after the
changes to USB suspend in #12697

Fixes #13782
2021-07-31 16:28:09 +01:00
James Young 954806c80f DP60 layout macro renames (#13811)
* info.json: apply human-friendly formatting

* rename LAYOUT_60_wkl to LAYOUT_60_ansi_tsangan_split_rshift

* rename LAYOUT_60_wkl_split_bs to LAYOUT_60_tsangan_hhkb

* info.json: remove `key_count` keys
2021-07-31 14:25:47 +01:00
James Young 4604b58769 Charue Sunsetter: layout macro fixes (#13809)
* remove K214 from LAYOUT_1065_ansi macro

Position K214 is only used by the ISO layout (as KC_NUHS); it doesn't get used here. Removing it so the layout macro matches the info.json layout data.

Also updates info.json to use human-friendly formatting.

* add layout macros

Adds:

- LAYOUT_1065_ansi_split_bs macro
- LAYOUT_1065_iso macro
- LAYOUT_1065_iso_split_bs macro
- `default_iso` keymap

* add LAYOUT_all macro

Adds LAYOUT_all macro and a `default_all` keymap.

This PCB is unusual in that the ANSI Backslash and ANSI Enter do not share their matrix positions with the Non-US Backslash or ISO Enter keys at all. This layout macro supports both the ANSI and ISO positions in one macro/keymap.
2021-07-31 14:23:27 +01:00
James Young 56f84774d7 Rartland: add 65_ansi and 65_iso layouts (#13807)
* add 65_ansi and 65_iso layouts

... with Community Layout support

* add block comment of layouts to rartland.h
2021-07-31 14:22:12 +01:00
peott-fr d191ccfdc5 [Keymap] Add peott-fr Kinesis keymap (#13812) 2021-07-31 06:14:56 -07:00
Jay Greco 56200de2eb [Keyboard] Reduce nibble oled_status keymap size (#13813) 2021-07-31 06:11:11 -07:00
Drashna Jaelre e755c5fe1f [Keyboard] Fix RGBKB Pan Rev1 Encoder RGB handling (#13781) 2021-07-31 06:09:47 -07:00
MakotoKurauchi fb6c66a14b change DIP_SWITCH_ENABLE to off (#13815) 2021-07-31 18:51:32 +09:00
James Young ec2f6026b9 Neito: correct key sequence in info.json (#13808) 2021-07-31 02:47:00 -07:00
Nick Brassel a4c050b5ae Fix up paths for bioi boards - parallel compilation failures due to file collisions. (#13806) 2021-07-31 10:34:14 +10:00
Nick Brassel b459f314ec Explicitly state that VIA should not be enabled in the default keymap. (#13803) 2021-07-31 09:21:45 +10:00
Joel Challis addb389a5e Move ergosaurus via keymap to correct location (#13802) 2021-07-31 00:15:11 +01:00
Ryan 7bfe53ee2f Fix onekey console keymap (#13797) 2021-07-30 22:00:14 +01:00
James Young aece9ad5fa Xelus Dharma: add info.json file (#13796) 2021-07-30 11:44:50 -07:00
James Young e180524c10 txuu: rename LAYOUT to LAYOUT_65_ansi_blocker_split_bs (#13794)
Renames the layout macro to be more conformant to the rest of QMK.
2021-07-30 11:17:48 -07:00
James Young 57ad8db60e Tiger910: fix Left Control key size in info.json (#13793) 2021-07-30 11:17:30 -07:00
James Young 4758ea2188 Stratos: fix layout macro reference in info.json (#13792)
- change LAYOUT_60_ansi_tsangan_hhkb to LAYOUT_60_tsangan_hhkb
2021-07-30 11:16:59 -07:00
James Young 069f479af4 Ristretto: fix Configurator layout data (#13791) 2021-07-30 11:16:37 -07:00
James Young 6af2d3a32c X-Bows Ranger: rename LAYOUT to LAYOUT_tkl_ansi (#13795) 2021-07-30 11:16:18 -07:00
Ryan d1db008745 Onekey cleanup (#13786) 2021-07-30 18:10:05 +01:00
Matthew Dias cfca970718 [Keyboard] Add portal 66 (#13767) 2021-07-30 10:01:43 -07:00
1e2408af91 [Keyboard] Add Commodore Amiga 1200 Membrane Converter (#13705)
Co-authored-by: Drashna Jaelre <[email protected]>
Co-authored-by: Ryan <[email protected]>
2021-07-30 09:53:55 -07:00
James Young 77735b0a56 Pearl Boards Pandora: correct layout macro reference in info.json (#13787) 2021-07-30 08:12:36 -07:00
James Young 6823e03b01 Ocean Sus Board: rename layout macro (#13785)
- rename LAYOUT_ortho_3x4 to LAYOUT_ortho_4x3
  - ... because ortho layouts in QMK are named by <rows>x<columns> instead of <columns>x<rows>
2021-07-30 08:11:37 -07:00
James Young f2d34f38be Nack: rename layout macro to LAYOUT_ortho_4x13 (#13784) 2021-07-30 08:10:59 -07:00
Ryan 8b39a3c484 qmk docs: Add flag to open in browser (#13788)
* `qmk docs`: Add flag to open in browser

* Add docs
2021-07-30 14:47:34 +01:00
James Young d93089d8ea MNK1800s: fix Configurator key sequence (#13783) 2021-07-30 17:17:11 +10:00
James Young e1ce0d2836 Clawsome Luggage Rack: correct keymap directory name (#13780)
Rename `keyboards/clawsome/luggage_rack/keymap/` to `keyboards/clawsome/luggage_rack/keymaps/`.
2021-07-30 00:07:10 -07:00
officeresoandRyan 6fd9b2feba [Docs] Added information on soldering diodes in parallel (#13117)
Co-authored-by: Ryan <[email protected]>
2021-07-29 22:56:27 -07:00
Álvaro A. VolpatoandGondolindrim a1f7d86ef5 [Keyboard] Initial Noxary 378 support (#13156)
Co-authored-by: Gondolindrim <[email protected]>
2021-07-29 22:54:06 -07:00
03212ced24 [Keymap] jonavin gmmk pro keymap add RGB functionality (#13591)
Co-authored-by: Drashna Jaelre <[email protected]>
Co-authored-by: Jonavin <=>
2021-07-29 22:38:38 -07:00
James Young 7e1d28006f CherryB Studio CB1800: fix key sequence in info.json (#13779)
This commit fixes the position in sequence of the arrow keys.
2021-07-29 22:37:41 -07:00
Jonavin 219ce2b58a [Keymap] jonavin quefrency keymap (#13751)
add winkeylock and rgb functions
Co-authored-by: Jonavin <=>
2021-07-29 22:36:21 -07:00
James Young 104cdef329 Cannonkeys Balance: Configurator fixes (#13778) 2021-07-29 22:26:47 -07:00
Trent Hoh 327e5a08d9 [Keyboard] Added YMD40v2 VIA (#13770)
VIA support for YMD40v2
2021-07-29 22:24:21 -07:00
fvolpe83 86c0a6d3d7 [Keymap] Update keymaps for fvolpe83 (#13739)
changed folder name to match github username, changed caps from LT(1,KC_CAPS) to MO(1) and updated readme
2021-07-29 22:16:51 -07:00
James Young fab1af4154 AnomalyKB a65i Configurator fixes (#13775) 2021-07-29 22:11:57 -07:00
Ramon ImbaoandDrashna Jaelre 987e8e3529 [Keyboard] Add Mona v1.1 (#13721)
Co-authored-by: Drashna Jaelre <[email protected]>
2021-07-29 22:08:05 -07:00
James Young 8ca6d835b9 Atomic Refactor (#13761)
* info.json: human-friendly formatting

- one key per line
- line breaks between physical rows
- four-space indent

* info.json: add data for LAYOUT_grid

* fix keymap paths

This commit corrects the paths for three keymaps that were in the wrong directory.

* refactor and bugfix abienz keymap

- remove extra commas
- use QMK-native aliases for KC_TRNS and KC_NO
- add include for Colemak keycode support
- use four-space indent

* refactor and bugfix michelle keymap

- remove inline comments for keymap layout
- remove extra commas
- use QMK-native aliases for KC_TRNS and KC_NO
- use four-space indent

* refactor and bugfix twolayer keymap

- remove extra commas
- refactor action_get_macro() keycode to QMK-native keycode
- use QMK-native aliases for KC_TRNS
- use four-space indent
- adjust grid alignment

* rename LAYOUT_grid to LAYOUT_ortho_5x15

* refactor config.h file

- use #pragma once include guard
- update MANUFACTURER and PRODUCT strings to be consistent with other OLKB boards
- remove Magic config (all settings are default)

* refactor atomic.c

- add license header
- use GPIO control functions

* refactor atomic.h

- add license header
- use #pragma once include guard
- remove redundant file includes

* refactor rules.mk

- remove Bootloader selection comments
- unify Build Option header comment to QMK template
- unify Build Option rules and inline comments

* alias LAYOUT_grid to LAYOUT_ortho_5x15
2021-07-29 12:14:26 -07:00
James Young c0149dc376 Alu84 Refactor (#13760)
* info.json: human-friendly formatting

* use QMK 3-character notation for layout macro/data

* alu84.h: use #pragma once include guard

* clean up alu84.c

Remove unnecessary includes and functions.

* refactor config.h

- use #pragma once include guard
- enable Backlight Breathing
- align comments to QMK AVR template

* refactor default keymap

- add license header
- use layer_names enum
- refactor keymap to be more generic
- remove unnecessary and empty functions

* refactor turbomech keymap.c

- edit license header
- refactor keymap for readability (use QMK-native keycode aliases)
- remove unnecessary and empty functions

* refactor turbomech config.h

- use #pragma once include guard
- align to QMK template

* refactor turbomech rules.mk

Edit the file to make it conform to QMK template.

* align rules.mk to QMK template

* touch-up default keymap

* touch-up alu84.h

* rename LAYOUT to LAYOUT_75_ansi

Also enables Community Layout Support

* modernize readme.md

- update description
- convert keyboard data to list
- add flashing and bootloader instructions
- update Docs links

* alias LAYOUT to LAYOUT_75_ansi

* change readme image URL per fauxpark

* touch up turbomech keymap rules.mk per fauxpark

* rules.mk: convert tab to spaces
2021-07-29 11:09:16 -07:00
James Young a78fdbb1f6 Draytronics Elise Configurator fixes (#13763) 2021-07-29 10:45:22 -07:00
5a0985aa4a [Keyboard] Add Treasure TYPE-9 Series II (#13725)
Co-authored-by: Ryan <[email protected]>
Co-authored-by: Drashna Jaelre <[email protected]>
2021-07-29 09:50:05 -07:00
Alabahuy aa0b7079a4 [Keyboard] add sus board (#13701) 2021-07-29 09:12:29 -07:00
Takeshi NishioandTakeshi Nishio 441fd2ca5b [Keyboard] Match Vendor ID to my other keyboard, "unison". (#13699)
Co-authored-by: Takeshi Nishio <[email protected]>
2021-07-29 09:11:40 -07:00
Uy Bui 6bdecb16c0 [Keyboard] we27 update info.json (#13678) 2021-07-29 09:03:21 -07:00
768072e824 [Keyboard] Add Mojo68 for Melgeek (#13578)
Co-authored-by: Drashna Jaelre <[email protected]>
Co-authored-by: Ryan <[email protected]>
2021-07-29 08:50:28 -07:00
ae268596ce [Keyboard] Add Emi20 (#13603)
Co-authored-by: Drashna Jaelre <[email protected]>
Co-authored-by: Ryan <[email protected]>
2021-07-29 08:49:51 -07:00
ad6acb3a03 [Keyboard] add cherryb studio cb1800 keyboard (#13639)
Co-authored-by: Drashna Jaelre <[email protected]>
Co-authored-by: Ryan <[email protected]>
2021-07-29 08:48:39 -07:00
X-Bows TechandRyan 8fa674727d [Keyboard] Add X-Bows Ranger Keyboard (#13660)
Co-authored-by: Ryan <[email protected]>
2021-07-29 08:47:51 -07:00
JonavinandJonavin 8d611f6873 [Keymap] Jonavin keymap Mercutio add win key lockout function (#13670)
Co-authored-by: Jonavin <=>
2021-07-29 08:47:14 -07:00
dc2dfe2a6c [Keyboard] Add halfcliff keyboard (#13515)
Co-authored-by: Drashna Jaelre <[email protected]>
Co-authored-by: Ryan <[email protected]>
2021-07-29 08:42:28 -07:00
ESCA47andRyan 3a48cd64cb [Keyboard] Add GetawayVan (#13412)
Co-authored-by: Ryan <[email protected]>
2021-07-29 08:28:33 -07:00
f3d7901950 [Keyboard] Added Orthocode keyboard (#13487)
Co-authored-by: Drashna Jaelre <[email protected]>
Co-authored-by: Ryan <[email protected]>
2021-07-29 08:23:27 -07:00
1135 changed files with 50387 additions and 7943 deletions

No files matched your search

+35
View File
@@ -82,6 +82,22 @@ Example code before change:
void encoder_update_kb(uint8_t index, bool clockwise) { void encoder_update_kb(uint8_t index, bool clockwise) {
encoder_update_user(index, clockwise); encoder_update_user(index, clockwise);
} }
void encoder_update_user(uint8_t index, bool clockwise) {
if (index == 0) { /* First encoder */
if (clockwise) {
tap_code(KC_PGDN);
} else {
tap_code(KC_PGUP);
}
} else if (index == 1) { /* Second encoder */
if (clockwise) {
tap_code(KC_DOWN);
} else {
tap_code(KC_UP);
}
}
}
``` ```
Example code after change: Example code after change:
@@ -90,6 +106,25 @@ Example code after change:
bool encoder_update_kb(uint8_t index, bool clockwise) { bool encoder_update_kb(uint8_t index, bool clockwise) {
return encoder_update_user(index, clockwise); return encoder_update_user(index, clockwise);
} }
bool encoder_update_user(uint8_t index, bool clockwise) {
if (index == 0) { /* First encoder */
if (clockwise) {
tap_code(KC_PGDN);
} else {
tap_code(KC_PGUP);
}
} else if (index == 1) { /* Second encoder */
if (clockwise) {
tap_code(KC_DOWN);
} else {
tap_code(KC_UP);
}
}
return true;
// If you return true, this will allow the keyboard level code to run, as well.
//Returning false will override the keyboard level code. Depending on how the keyboard level function is set up.
}
``` ```
## Core Changes :id=core-changes ## Core Changes :id=core-changes
+1
View File
@@ -19,6 +19,7 @@
* [Overview](newbs_building_firmware_configurator.md) * [Overview](newbs_building_firmware_configurator.md)
* [Step by Step](configurator_step_by_step.md) * [Step by Step](configurator_step_by_step.md)
* [Troubleshooting](configurator_troubleshooting.md) * [Troubleshooting](configurator_troubleshooting.md)
* [Architecture](configurator_architecture.md)
* QMK API * QMK API
* [Overview](api_overview.md) * [Overview](api_overview.md)
* [API Documentation](api_docs.md) * [API Documentation](api_docs.md)
+2 -1
View File
@@ -349,11 +349,12 @@ qmk cformat -b branch_name
## `qmk docs` ## `qmk docs`
This command starts a local HTTP server which you can use for browsing or improving the docs. Default port is 8936. This command starts a local HTTP server which you can use for browsing or improving the docs. Default port is 8936.
Use the `-b`/`--browser` flag to automatically open the local webserver in your default browser.
**Usage**: **Usage**:
``` ```
qmk docs [-p PORT] qmk docs [-b] [-p PORT]
``` ```
## `qmk generate-docs` ## `qmk generate-docs`
+61
View File
@@ -0,0 +1,61 @@
# QMK Configurator Architecture
This page describes the web architecture behind QMK Configurator at a high level. If you are interested in the architecture of the QMK Configurator code itself you should start at the [qmk_configurator](https://github.com/qmk/qmk_configurator) repository.
# Overview
![QMK Configurator Architecture Diagram](configurator_diagram.svg)
# Detailed Description
QMK Configurator is a [Single Page Application](https://en.wikipedia.org/wiki/Single-page_application) that allows users to create custom keymaps for their QMK-compatible keyboard. They can export JSON representation of their keymaps and compile firmware binaries that can be flashed to their keyboard using a tool like [QMK Toolbox](https://github.com/qmk/qmk_toolbox).
Configurator gets metadata about keyboards from the Keyboard Metadata store and submits compile requests to the QMK API. The results of those compile requests will be made available on [Digital Ocean Spaces](https://www.digitalocean.com/products/spaces/), an S3-compatible data store.
## Configurator Frontend
Address: <https://config.qmk.fm>
The [Configurator Frontend](https://config.qmk.fm) is compiled into a set of static files that are served by Github Pages. This action happens every time a commit is pushed to the [qmk_configurator `master`](https://github.com/qmk/qmk_configurator) branch. You can view the status of these jobs on the [qmk_configurator actions tab](https://github.com/qmk/qmk_configurator/actions/workflows/build.yml).
## Keyboard Metadata
Address: <https://keyboards.qmk.fm>
The Keyboard Metadata is generated every time a keyboard in [qmk_firmware](https://github.com/qmk/qmk_firmware) changes. The resulting JSON files are uploaded to Spaces and used by Configurator to generate UI for each keyboard. You can view the status of this job on the [qmk_firmware actions tab](https://github.com/qmk/qmk_firmware/actions/workflows/api.yml). If you are a QMK Collaborator you can manually run this job using the `workflow_dispatch` event trigger.
## QMK API
Address: <http://api.qmk.fm>
The QMK API accepts `keymap.json` files for compilation. These are the same files you can use directly with `qmk compile` and `qmk flash`. When a `keymap.json` is submitted the browser will poll the status of the job periodically (every 2 seconds or longer, preferably) until the job has completed. The final status JSON will contain pointers to source and binary downloads for the keymap.
QMK API always presents the source and binary downloads side-by-side to comply with the GPL.
There are 3 non-error status responses from the API-
1. Compile Job Queued
2. Compile Job Running
3. Compile Job Finished
### Compile Job Queued
This status indicates that the job has not yet been picked up by a [QMK Compiler](#qmk-compiler) node. Configurator shows this status as "Waiting for an oven".
### Compile Job Running
This status indicates that the job has started compiling. Configurator shows this status as "Baking".
### Compile Job Finished
This status indicates that the job has completed. There will be keys in the status JSON for source and binary downloads.
## Redis/RQ
QMK API uses RQ to distribute jobs to the available [QMK Compiler](#qmk-compiler) nodes. When a `keymap.json` is received it's put into the RQ queue, where a `qmk_compiler` node will pick it up from.
## QMK Compiler
[QMK Compiler](https://github.com/qmk/qmk_compiler) is what actually performs the compilation of the `keymap.json`. It does so by checking out the requested `qmk_firmware` branch, running `qmk compile keymap.json`, and then uploading the resulting source and binary to Digital Ocean Spaces.
When users download their source/binary, API will redirect them to the authenticated Spaces download URL.
+1
View File
@@ -0,0 +1 @@
<mxfile host="Electron" modified="2021-08-09T19:46:29.036Z" agent="5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/14.6.13 Chrome/89.0.4389.128 Electron/12.0.7 Safari/537.36" etag="PQ2r34UrZa0TfW4Fw0EV" version="14.6.13" type="device"><diagram id="NEtccoSKIy4HskWlhJpu" name="Page-1">5VvbcqM4EP2a1O4+hOLqy2Ni5zKX1CTxzszOU0oG2dZEIBZEYu/XbwuEDQg7csZ2vFlXjQca0RLdR+eohXPiDML5VYLi2Q0LMD2xzWB+4gxPbNvqezb8JywLaTFtr7BMExJI28owIv/gsqG0ZiTAaa0hZ4xyEteNPosi7POaDSUJe643mzBa7zVGU6wYRj6iqvU7CfissPY8c2W/xmQ6K3u2THklRGVjaUhnKGDPFZNzceIMEsZ4cRTOB5iK6JVxKe67XHN1ObAER1znhgfT76Zzxxp3Z49j5+7zjw/z+NSS+XlCNJNPLEfLF2UIcAARkacs4TM2ZRGiFyvrecKyKMCiHxPOVm0+MxaD0QLjT8z5QqYXZZyBacZDKq/iKDgTyYLTiEW4sFwSSqXLAKWz3L9orD64jEXKssTHG57WlQBCyRTzTVGRDsWTV3qQcb3CLMQ8WUCDBFPEyVMdK0hCbrpst8oKHMjEbJEk9+UckTDHcTWm0jQk4RR6pWQM3z4l8QNKuDhkYZxxnKRw/J0ljymHJ2HRg2X35vDPiKPp2kA/4YTj+cbIyKunjmv0zMpHeljSQXH6XJla0jSrzKrStvPIei9Hdgm9HNoZpyTCgyXZmPWYI0qmERz7EDGcgIGiMaa3LCUittULIoQEaOZzo8GYcc7CSoMz6ZKLqXQOJBKLgYXzqSBc4xmPKcy11JgSPsvG0GLCIn6JQkJFiK8xfcLCjbwgJyDM+uJ8wChL8ud0ivSILnjCHnHblQlMyIp9kn/ADkMJCK55G14OL4YXmybrFhhyOzXQtKEGdMVwVeBUzDvHTjmKjdS54jWfojQlfpP3YCR/CRwZXnn6o3ptOJcgK84W8gwma8JVz7lZ0qZVI9Ff401PkzddTdqsJM5rme6lTZtdZQ+3jMCTLXFjlRkqyaZJI8Vzy7uqytl01Gk4chqOisAojnJYLR/7F5BWTpkV0gZUTDjgbnOUxTEorqCosxO7QyGG5+MEjqbiaDBLoPsTGzo2L0mCJ2yuNhri9FHQi21+iehCAfHzjHA8ilEOkWegnTqGm0QVkiDIVwU5950j/3Garw9Kdsjd7YYZlmurkhlUYrDNFoB19qUnltPCCUW40xhFZcBnnIvl65noTChxNCFT4+/w0ZiEZXOwV+9Qk9bmd0SiKYTeNm+F9AM2RKTX3tno4iN6QiM/IbFYHXz7eqHeOJI8AeM2YbTQDL4fiuFnCeIs0RvmNUt54eWqUK1iwOnaZ28Asr7cfC0894E/q2PYehDs7w2CGqtFdbndqklVRaoI1BpN2tEaXVdryql2JGKzTKiEgvdasXHchqNDi01XAz/vpiK0tOHW0YTbYUpC6/1ULj9TuH0XlWZ93riOuhjotsz/rmf09pWkjpKkuvI/4sWYoSRIG+K/ks9PsgV4ucEcBYgjXV2ekCR8hoiq7a+uoeGZX+RN3PQ1BsdiwXB2+wG+h629rFR7SKDaRPSLj4VIm7n2ptsuG2voPKRIu7Zt9N9apHtbiXRr7VirASVHVgtAc4cFoDZNekclypZnWK5p9Tp9y+v1up1y73nRQMbWBWHdz3LP90ASbav14HuW6L4m9spsHotE95Us3d18Kkm2mS5KSZziik76lGXBy+XNLpTTq8O5Y6rKadkts3Rv27JlZ2uFE8VkrWTeX4z+nGS0DLSeWILDTYp3jyJ/Bqsf2xRrFXP4Bb6+3fy2tegdUuc6pqenct29pVFjkfryDulhtzDLWXskCnbarCtd75WadaoUlpqqBelBi0qzWDRINwzZanTkOObmkTVv8Pq1G+CgGMNuRVSl53csonZXV0R7RyWitrobIasPMMoCRGF4WY807b+PnD+OS3idXh347fuHrdrbt8qWu4+5WpzU1RcE81QocLTwHcMPIiMoUsJEPtI8+obPWqRZRlNK7+kLoqskejut3UWCeg1msh3L6PYrn54qsf2WbO3thYOjrpTeTGK1Oea4ikSQ/EaSX7t1qwiZfeC9W6ft9dO71TSn/D3YS3hz7KPSNEct3+/vlDyVciS2/FLOEnwYSWpskXS7ai3YOSjB2WqwcEDEm+9cjEwRuqaGfGTineJdhrOW3c/2AjApnO6/BNxBkpqVXrfz1pWes91Lx73KkPZ+UTkP31qHyiw26zFt2fEacGiWiPtWHXWNXvwuIIwpETNmDbPhuZhhAcvG+RWrJj3Wm2x99Vt+QXLYrS9XXdAVu4YDCCehIpztbHefRVH+a07dX22sc/efoLy+/daU5+pswh+I8vRXQt3joDyZVbeW015ztaxLgHU3/eZbnT3Tn6uuULYGwoF/z+lo7wYdF16AHes00GuuO/V3Qxui2bP0ULP1bqjTYK5yS2Gvm5vu/6sQ1IVzKa67KwTXEJK3GVu6KLWd14H0ZRjB6eovj4rmqz/gci7+BQ==</diagram></mxfile>
+3
View File
@@ -0,0 +1,3 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="1261px" height="991px" viewBox="-0.5 -0.5 1261 991" style="background-color: rgb(255, 255, 255);"><defs/><g><path d="M 885.2 40 L 1060 40" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><image x="804.7" y="-0.5" width="80" height="80" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHcAAAB8CAYAAABT/i9JAAAgAElEQVR4Xu19CbhdZXnuu/Y8n3k+OUPmhAyQQMJMQCZxqFpBvU7VKk6otQIq4BBBLVQF7a2ot/a2trW3j09br+3F1lZAJBBIQkLInJOcedjD2WfPwxrv8/3/+tdee+eckIRDCMcsnnCmvdfee73r/Yb3+77/l3D+OKMr0NbZ8xmfz/95p9PVkEonP5SMTf7zGZ3oVXyS9Cqee8GdurV10RKP3/tIMBS+0e3xegzDAP3TNA3pmcQTU+PD1wPQz5UPfh7cU0Cis6fvM35/6PPBcF0PXTACVNd19lWWy8hnZiBJBnKZ9NJ0On3sFE55Vh5yHtw5LnNbb29/wO3/fjBcd6PX5/MYugGdmGqCmkknIZcKcLlcYIDDQHomeR7cs3LbnuGL9PYvuSMQjNwVqqvvkSBxQA0dBG6pXER2ZpqB6XA5icKMvfSPvk+nzoN7hpf91Xtab29vv8cf/n64rv5Gnz9QxVLd0JFOJlAqFuBymyy1g0qcZdgayJwH99UD6XTP3L985R3BYPiu+vqmHkmqZmmxWEAqGWcG1+kklnIA6T9AgivYjIBHwkx8gjMYBO7MebN8uiDM5+N7e1f0B8OB74XrG28KBAMeXTdNq66zIGl6OoZSPgeX2819qQkcM71OP3zNfWjoXgU5n4YrN4TxwUOWWc6kz4M7n1id8rmWr1x9RzBSf2dDY0uvwyGBg0qAGigW8piOT7FzMZYyU8v/SZIL4dZeRDpWQPLVM4YSzvmZKbgZuAfNxwLZ8+CeMh6v+IG9K1b0hwOR7zU2Nt0UCIYqLDV0aJqORGwC+VwOHo+HvZYAlL66A/Vo6V2Ftv41cDg9KJZkZDIZ6Dx2QoHAzQ9h/LgJLgxk06nzZvkVo/YyJ1i5dv0ddZGGOxubW3slh8QiXcHSfD6H+NQEIJEvdVVFvJLkQF3HEnQsXofG1m4oGt0EGlRVR0kuI5PNmcETZ64nP4QxE1z6QzZzHtxXBdsVK9b1ByKB7zU1td4UDIc9PCel3FSHrumYmhhDPp+Bxy1YWvGnHn8EnUvXo2vxGji9PsZqTdVs4GoolRXkcjnOXBBzJ+HJD2Ps+AGL8edFjHmG9oILN3yqvr7xrpbW9l7J4aiw1CDFKIPo5Djzky6nqyo4oui4qXMpelduQFP7IqgalxFVk6nse12HqumMucVSGYVCocLc1CS8BO4xE1ycV6jmBdoV69b1RwJ1jzS3tt0citR5hMggWDoxNoxsJgOP12ulKcKf+gIRBmjv8rVwewMWeKqucoBVjTGXg0xgc/9cKJVQKpUrPtcEd/TYfitNymXPy49nDPCFGzZ/qr6p8a7Wts5eh5OzVChImVQKk+OjjKXXfOh+/Oaf/hKeUtxMU4C23mVYesElaOvuhaYbjI0MQAaiyVrxO12DRt/rOjSFMziXL0BRVM5cGCikphhzCVyhUOWymfMB1emgu27duv5AXdMjbe0dN4cZSyu+VFNVjA4PIZtJw+PzWcHRRW//LJ79xU8QCRhYdsElWLZ6A9xeP2MisdAeKHHTq3K2EqCqDk3nQRQBr+k6FFVDPl9gj+HRsoFiagqewjDGBji49F/+PLinBu2GzZd9qqGp5c6Oju4+J7HUVolJzyQxOjrMzCEJ99zkckaR8NDRuwyrL7wUnT39jKUc0IqJJbAoyJJNs0vfMxNMTNU0BiYPqkyfq2nI5nLs7OK1BLijA/vMmwrI584zd050N27c2BOINP5FW0fXTXX1DV6RvtBXYung8WPIpNPw2ljK5EDDgD8QxqqLLsXqdRvgDQQ5A22+U2GMNEEUv9cMzk4RGdvYave5ZI6LxRK7gbgbAIrpKXgLwyBwhVnO57LnzXItupsvu/pTTa0td3Z0L+pzOpxmaY3nptOJBEaHB7meSyy1q0eQsKh/OdZtuhy9vUu5L2UAqqZZ5X6zApQAU/yO/m76VxNwzlx+IxBzFV1DuVyGLJv+VoBLPrc4jNGjHFzmh8+Dy6HduPGKnkhj5C/auxfd1FDfyFlq1ksVVcXxo0eQTs3A6/NXqUeMpcEA1l9yJdZvuIQxlgdGnJVkfjViJDO5ZJJV5mPZ36tSHf547mvNnNZkNmO4Qv6W+95CscTlSlN6JL9LZtlXHMbI0ZcsX1/I536/mXv5Vdd9orm19e6unt4+l7OapYlEHEPHjgGSyVJbaY1qq71Ll+OSy67C4iXL2I0gIlpimshPK0ALQCnFqfhP5nuFiRZ+mBhKQJsstm4QAldRbSmQKO9xs+wrDGNk4CXLLP9egrvxiit6muoav9+5qOfmhoZmL+WjPOrVISsKBg4fQkqw1AKUqb3wBf245LKrccmmyxAMmixljDM4I8kEM8bZgiZbIMQZa/paK4etAC9ukEpqxNUp4a/LZQWKRia5Aixn7iT8xRGMHN1rBXPF3yfmXnXd9Z9obWu7e1Hv4j5SiOySYCw6hcFjA9TTUIl4TX8KQ8fiZStw5TXXYfnyFeziMT9oRb3cT3Jwud9UFDNgIp8pclcC3jLJFXYL9Ymdj8w3Oze/STioHGD6yoQLK5/m0iMLqKrA5RWkYiG/sM3yFVdc3xNuCn+/p6fv5sbmFq9oJBMsPXRgP2aSSfj8gSr1iEe8flx+1RZcfsWViETCDEBZsI5FtjxQ4nmq6StZ4MN9JmdfdZQs5EPL32oGT4PMKLk6guapEGezCkVWURbCRRVzDZTSU4y5w0f2WiXCBQ/uO9793rGGxqau1rYOKzedmpjAwNEjoKoLtaqIthSRQixZtgw33HgjVq9aRaS1BUAUDNnVJGKaWakxWSdECZbSMNZSMGQKEJZgMVt0LExvJdAiUO1gC9baAynx3jm4wwxc8TmKxcLCZu77PvyxeG//4uax0WHEo1FMT0/D5w9a2Y+4EJSrXnXNNbj22mvQ3NDIGMejWm5KeZAk2MhlQvY7FslW/KiIaK2giokWFSGCsZydi7OegWfLf4VvFWaeiRfEWkWDLCuWImX2wDGzTO6FwA3YwKXPVVro4L73Qx+N9/QtbiY0H/+vX3Pzazv6+vpww0034sK1a+GiDkK6WEziMwE10w8R1VI6Q6kRD5ooiCKpUKQ6Zgpk/syrOmbka/pny4eKn0VkzEAUNw/dUDxI48qUipKssL/XBlLiZwZuaRhDh1+0UrVUsbC0vJD7lt/zwY/Ee/r6GbhP/ua/q8D90r33oG9RdxXYdLE4YwkwzlpZ5TVY+j2XDSklqWay8LuCpZXASQBuD4wq0qMIwKwcl4HKH0vn1Ml/qypjrV2REoGUJT+mpxA0wRXWKFUqLmxw3/3+D8cXmeA+9cTjVeA+/N3vIBDgooQ4GAs1jQVOQh0SOSsPkipiv/V7M4iqmG0TGDNStgsT9BzdZL+9aCAKBdxPc/B1M/ImRUrTeVRczVyhYYOb5dIwhg+/aBXr06ni0nJ5AU8c3Pa+D8YX9XLmPv3bJyv+1jDw8MPfrQKXfJeIcJlPNVMYlp7Y81NmqvlNYEXLTOgXZtgWITOgeF22okqZ1R5xA9mKCKKNhqVBZI7LMmOyKERw9p4INIkYwfIwhg7tMaNlYMGDe+t7PxDv7ulj4G576in4AzyYIgY8UgOuAJD5VMZgEUjZgDHLcNznmt0RigbF9JeceVxmtAdglRJe5SawgLSlSyyNMvNbRVFs5riatSKQEoEVMVeAK8xyOp1aWi6XF+6s0Dvf/f54V08vA/fZbU/PCS4rxZkRseVXmVBfqavatWAC154GCVZyEcIwdWAOFPPXImUywWMmV3RWWDcK5bRmMUGjVhqhIdea4xOBrgWXAM4sdHDf/q73xrsXcXCfe/YZBq64sx955GHLLFdYWmEcz2lNFpPqRP6WRcgiIOK/48BWQKkKuMwAjD2PtGJR7WHacSXFYmKFGUyRby/LZVYsEMwUpb3aQEqY6LLF3N1WpSqTTi9s5r7ttv8R7+ruYeDueG67BS4B/D0TXJH6UDAlCuaWAFFlmm0yo5WbVoQGqwjAmtkoZeJF+EogZhbgrZaaSquq1QBH1kJRGbhz+dfZgC6lowiVhzF4aLdVFcpkFji4b33nuy1wd+143oyWeZRJ4Pr9/irBgphFqY9dThTlOqvSY9ZVrSBJiBmW6eV1V2Hm7W0yXDfm6RSPlrnIIfwvPZbMMd1oFaGCfz9bIMVbWw2UGbhDDFx6LP1vwYP7lne8K97ZvYgxd/eunQxcYZa/971H4PN5udIkhH+rX6kmmLKxzfKvTPcV5pgrViw3NWVHDj4PzERfVJV2bPZH2W+SsixDUXlOWwHUDnSl+8ICnylUUYTlIQwerJjlbCazsM3ym99+W7yjq5uB++LuXSwVEm2lBK7b4zEBsBUBqoA20x2rTYYLGcJ3iuqQAFAUCuzFBMHSSiHBrOmaUTI7HxUlFBlU0mP9WWaz+VyKFE+NKkATcwnc4wcrZjmbXeDg3vIH77TA3btnN/zEXLOU9/DDj7C5HCFYCKmQpzBmMGX6Tt7+woMpxjQKhsyynuWfRRXIVLaEbmw9h4EpqkmC8Sprx5FZELine truncated

After

Width:  |  Height:  |  Size: 39 KiB

+1 -1
View File
@@ -146,7 +146,7 @@ And to trigger the bootloader, you hold this key down when plugging the keyboard
## Split Keyboards ## Split Keyboards
When handedness is predetermined via an option like `SPLIT_HAND_PIN`, you might need to configure a different key between halves. This To do so, add these entries to your `config.h` file: When handedness is predetermined via an option like `SPLIT_HAND_PIN`, you might need to configure a different key between halves. To do so, add these entries to your `config.h` file:
```c ```c
#define BOOTMAGIC_LITE_ROW_RIGHT 4 #define BOOTMAGIC_LITE_ROW_RIGHT 4
+2
View File
@@ -45,6 +45,7 @@ bool wpm_keycode_user(uint16_t keycode) {
Additionally, if `WPM_ALLOW_COUNT_REGRESSION` is defined, there is the `uint8_t wpm_regress_count(uint16_t keycode)` function that allows you to decrease the WPM. This is useful if you want to be able to penalize certain keycodes (or even combinations). Additionally, if `WPM_ALLOW_COUNT_REGRESSION` is defined, there is the `uint8_t wpm_regress_count(uint16_t keycode)` function that allows you to decrease the WPM. This is useful if you want to be able to penalize certain keycodes (or even combinations).
```c
__attribute__((weak)) uint8_t wpm_regress_count(uint16_t keycode) { __attribute__((weak)) uint8_t wpm_regress_count(uint16_t keycode) {
bool weak_modded = (keycode >= QK_LCTL && keycode < QK_LSFT) || (keycode >= QK_RCTL && keycode < QK_RSFT); bool weak_modded = (keycode >= QK_LCTL && keycode < QK_LSFT) || (keycode >= QK_RCTL && keycode < QK_RSFT);
@@ -60,3 +61,4 @@ __attribute__((weak)) uint8_t wpm_regress_count(uint16_t keycode) {
return 1; return 1;
} }
} }
```
+1 -1
View File
@@ -113,7 +113,7 @@ Don't hold the iron on the solder/joint longer than necessary. Heat will be cond
#### Soldering the Diodes #### Soldering the Diodes
Starting at the top-left switch, place the diode (with tweezers if you have them) on the switch so that the diode itself is vertically aligned, and the black line is facing toward you. The input lead of the diode should be touching the left contact on the switch, and the bent, output end should be facing to the right and resting on the switch there, like this: Starting at the top-left switch, place the diode (with tweezers if you have them) on the switch so that the diode itself is vertically aligned, and the black line is facing toward you. Make sure the diodes are soldered in parallel (diode outputs shouldn't connect to diode inputs). The input lead of the diode should be touching the left contact on the switch, and the bent, output end should be facing to the right and resting on the switch there, like this:
![soldering-diodes-01.png](https://raw.githubusercontent.com/noroadsleft/qmk_images/master/docs/hand_wire/soldering-diodes-01.png) ![soldering-diodes-01.png](https://raw.githubusercontent.com/noroadsleft/qmk_images/master/docs/hand_wire/soldering-diodes-01.png)
+88 -82
View File
@@ -1,8 +1,8 @@
# タップダンス: 1つのキーが3つ、5つまたは100の異なる動作をします # タップダンス: 1つのキーが3つ、5つまたは100の異なる動作をします
<!--- <!---
original document: 0.10.33:docs/feature_tap_dance.md original document: 0.13.15:docs/feature_tap_dance.md
git diff 0.10.33 HEAD -- docs/feature_tap_dance.md | cat git diff 0.13.15 HEAD -- docs/feature_tap_dance.md | cat
--> -->
## イントロダクション :id=introduction ## イントロダクション :id=introduction
@@ -22,7 +22,7 @@
`TAPPING_TERM` の時間は、あなたのタップダンスのキーのタップとタップの間の時間として許可された最大の時間で、ミリ秒単位で計測されます。例えば、もし、あなたがこの上にある `#define` ステートメントを使い、1回タップすると `Space` が送信され、2回タップすると `Enter` が送信されるタップダンスキーをセットアップした場合、175ミリ秒以内に2回キーをタップすれば `ENT` だけが送信されるでしょう。もし、1回タップしてから175ミリ秒以上待ってからもう一度タップすると、`SPC SPC` が送信されます。 `TAPPING_TERM` の時間は、あなたのタップダンスのキーのタップとタップの間の時間として許可された最大の時間で、ミリ秒単位で計測されます。例えば、もし、あなたがこの上にある `#define` ステートメントを使い、1回タップすると `Space` が送信され、2回タップすると `Enter` が送信されるタップダンスキーをセットアップした場合、175ミリ秒以内に2回キーをタップすれば `ENT` だけが送信されるでしょう。もし、1回タップしてから175ミリ秒以上待ってからもう一度タップすると、`SPC SPC` が送信されます。
次に、いくつかのタップダンスのキーを定義するためには、`TD()` マクロを使うのが最も簡単です。これは数字を受け取り、この数字は後で `tap_dance-actions` 配列のインデックスとして使われます。 次に、いくつかのタップダンスのキーを定義するためには、`TD()` マクロを使うのが最も簡単です。これは数字を受け取り、この数字は後で `tap_dance_actions` 配列のインデックスとして使われます。
その後、`tap_dance_actions` 配列を使って、タップダンスキーを押した時のアクションを定義します。現在は、5つの可能なオプションがあります: その後、`tap_dance_actions` 配列を使って、タップダンスキーを押した時のアクションを定義します。現在は、5つの可能なオプションがあります:
@@ -85,7 +85,7 @@ qk_tap_dance_action_t tap_dance_actions[] = {
[TD_ESC_CAPS] = ACTION_TAP_DANCE_DOUBLE(KC_ESC, KC_CAPS), [TD_ESC_CAPS] = ACTION_TAP_DANCE_DOUBLE(KC_ESC, KC_CAPS),
}; };
// キーコードの代わりにタップダンスキーを追加します // キーマップにキーコードの代わりにタップダンスの項目を追加します
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// ... // ...
TD(TD_ESC_CAPS) TD(TD_ESC_CAPS)
@@ -215,20 +215,22 @@ qk_tap_dance_action_t tap_dance_actions[] = {
`keymap.c` ファイルの先頭、つまりキーマップの前に、以下のコードを追加します。 `keymap.c` ファイルの先頭、つまりキーマップの前に、以下のコードを追加します。
```c ```c
typedef enum {
TD_NONE,
TD_UNKNOWN,
TD_SINGLE_TAP,
TD_SINGLE_HOLD,
TD_DOUBLE_TAP,
TD_DOUBLE_HOLD,
TD_DOUBLE_SINGLE_TAP, // Send two single taps
TD_TRIPLE_TAP,
TD_TRIPLE_HOLD
} td_state_t;
typedef struct { typedef struct {
bool is_press_action; bool is_press_action;
uint8_t state; td_state_t state;
} tap; } td_tap_t;
enum {
SINGLE_TAP = 1,
SINGLE_HOLD,
DOUBLE_TAP,
DOUBLE_HOLD,
DOUBLE_SINGLE_TAP, // シングルタップを2回送信
TRIPLE_TAP,
TRIPLE_HOLD
};
// タップダンスの列挙型 // タップダンスの列挙型
enum { enum {
@@ -236,7 +238,7 @@ enum {
SOME_OTHER_DANCE SOME_OTHER_DANCE
}; };
uint8_t cur_dance(qk_tap_dance_state_t *state); td_state_t cur_dance(qk_tap_dance_state_t *state);
// xタップダンスのための関数。キーマップで利用できるようにするため、ここに置きます。 // xタップダンスのための関数。キーマップで利用できるようにするため、ここに置きます。
void x_finished(qk_tap_dance_state_t *state, void *user_data); void x_finished(qk_tap_dance_state_t *state, void *user_data);
@@ -273,63 +275,63 @@ void x_reset(qk_tap_dance_state_t *state, void *user_data);
* 一般的な単語で2回続けて使われる文字でないこと。例えば 'pepper' 中の 'p'。もしタップダンス機能が * 一般的な単語で2回続けて使われる文字でないこと。例えば 'pepper' 中の 'p'。もしタップダンス機能が
* 文字 'p' に存在する場合、'pepper' という単語は入力するのが非常にいらだたしいものになるでしょう。 * 文字 'p' に存在する場合、'pepper' という単語は入力するのが非常にいらだたしいものになるでしょう。
* *
* 3つ目の点については、'DOUBLE_SINGLE_TAP' が存在しますが、これは完全にはテストされていません * 3つ目の点については、'TD_DOUBLE_SINGLE_TAP' が存在しますが、これは完全にはテストされていません
* *
*/ */
uint8_t cur_dance(qk_tap_dance_state_t *state) { td_state_t cur_dance(qk_tap_dance_state_t *state) {
if (state->count == 1) { if (state->count == 1) {
if (state->interrupted || !state->pressed) return SINGLE_TAP; if (state->interrupted || !state->pressed) return TD_SINGLE_TAP;
// キーは割り込まれていませんが、まだ押し続けられています。'HOLD' を送信することを意味します。 // キーは割り込まれていませんが、まだ押し続けられています。'HOLD' を送信することを意味します。
else return SINGLE_HOLD; else return TD_SINGLE_HOLD;
} else if (state->count == 2) { } else if (state->count == 2) {
// DOUBLE_SINGLE_TAP は "pepper" と入力することと、'pp' と入力したときに実際に // TD_DOUBLE_SINGLE_TAP は "pepper" と入力することと、'pp' と入力したときに実際に
// ダブルタップしたい場合とを区別するためのものです。 // ダブルタップしたい場合とを区別するためのものです。
// この戻り値の推奨されるユースケースは、'ダブルタップ' 動作やマクロではなく、 // この戻り値の推奨されるユースケースは、'ダブルタップ' 動作やマクロではなく、
// そのキーの2つのキー入力を送信したい場合です。 // そのキーの2つのキー入力を送信したい場合です。
if (state->interrupted) return DOUBLE_SINGLE_TAP; if (state->interrupted) return TD_DOUBLE_SINGLE_TAP;
else if (state->pressed) return DOUBLE_HOLD; else if (state->pressed) return TD_DOUBLE_HOLD;
else return DOUBLE_TAP; else return TD_DOUBLE_TAP;
} }
// 誰も同じ文字を3回入力しようとしていないと仮定します(少なくとも高速には)。 // 誰も同じ文字を3回入力しようとしていないと仮定します(少なくとも高速には)。
// タップダンスキーが 'KC_W' で、"www." と高速に入力したい場合、ここに例外を追加して // タップダンスキーが 'KC_W' で、"www." と高速に入力したい場合、ここに例外を追加して
// 'TRIPLE_SINGLE_TAP' を返し、'DOUBLE_SINGLE_TAP' のようにその列挙型を定義する必要があります。 // 'TD_TRIPLE_SINGLE_TAP' を返し、'TD_DOUBLE_SINGLE_TAP' のようにその列挙型を定義する必要があります。
if (state->count == 3) { if (state->count == 3) {
if (state->interrupted || !state->pressed) return TRIPLE_TAP; if (state->interrupted || !state->pressed) return TD_TRIPLE_TAP;
else return TRIPLE_HOLD; else return TD_TRIPLE_HOLD;
} else return 8; // マジックナンバー。いつかこのメソッドはより多くの押下に対して機能するよう拡張されるでしょう } else return TD_UNKNOWN;
} }
//'x' タップダンスの 'tap' のインスタンスを生成します。 //'x' タップダンスの 'td_tap_t' のインスタンスを生成します。
static tap xtap_state = { static td_tap_t xtap_state = {
.is_press_action = true, .is_press_action = true,
.state = 0 .state = TD_NONE
}; };
void x_finished(qk_tap_dance_state_t *state, void *user_data) { void x_finished(qk_tap_dance_state_t *state, void *user_data) {
xtap_state.state = cur_dance(state); xtap_state.state = cur_dance(state);
switch (xtap_state.state) { switch (xtap_state.state) {
case SINGLE_TAP: register_code(KC_X); break; case TD_SINGLE_TAP: register_code(KC_X); break;
case SINGLE_HOLD: register_code(KC_LCTRL); break; case TD_SINGLE_HOLD: register_code(KC_LCTRL); break;
case DOUBLE_TAP: register_code(KC_ESC); break; case TD_DOUBLE_TAP: register_code(KC_ESC); break;
case DOUBLE_HOLD: register_code(KC_LALT); break; case TD_DOUBLE_HOLD: register_code(KC_LALT); break;
// 最後の case は高速入力用です。キーが `f` であると仮定します: // 最後の case は高速入力用です。キーが `f` であると仮定します:
// 例えば、`buffer` という単語を入力するとき、`Esc` ではなく `ff` を送信するようにします。 // 例えば、`buffer` という単語を入力するとき、`Esc` ではなく `ff` を送信するようにします。
// 高速入力時に `ff` と入力するには、次の文字は `TAPPING_TERM` 以内に入力する必要があります。 // 高速入力時に `ff` と入力するには、次の文字は `TAPPING_TERM` 以内に入力する必要があります。
// `TAPPING_TERM` はデフォルトでは 200ms です。 // `TAPPING_TERM` はデフォルトでは 200ms です。
case DOUBLE_SINGLE_TAP: tap_code(KC_X); register_code(KC_X); case TD_DOUBLE_SINGLE_TAP: tap_code(KC_X); register_code(KC_X);
} }
} }
void x_reset(qk_tap_dance_state_t *state, void *user_data) { void x_reset(qk_tap_dance_state_t *state, void *user_data) {
switch (xtap_state.state) { switch (xtap_state.state) {
case SINGLE_TAP: unregister_code(KC_X); break; case TD_SINGLE_TAP: unregister_code(KC_X); break;
case SINGLE_HOLD: unregister_code(KC_LCTRL); break; case TD_SINGLE_HOLD: unregister_code(KC_LCTRL); break;
case DOUBLE_TAP: unregister_code(KC_ESC); break; case TD_DOUBLE_TAP: unregister_code(KC_ESC); break;
case DOUBLE_HOLD: unregister_code(KC_LALT); case TD_DOUBLE_HOLD: unregister_code(KC_LALT);
case DOUBLE_SINGLE_TAP: unregister_code(KC_X); case TD_DOUBLE_SINGLE_TAP: unregister_code(KC_X);
} }
xtap_state.state = 0; xtap_state.state = TD_NONE;
} }
qk_tap_dance_action_t tap_dance_actions[] = { qk_tap_dance_action_t tap_dance_actions[] = {
@@ -357,9 +359,11 @@ enum td_keycodes {
// 必要な数のタップダンス状態を含むタイプを定義します // 必要な数のタップダンス状態を含むタイプを定義します
typedef enum { typedef enum {
SINGLE_TAP, TD_NONE,
SINGLE_HOLD, TD_UNKNOWN,
DOUBLE_SINGLE_TAP TD_SINGLE_TAP,
TD_SINGLE_HOLD,
TD_DOUBLE_SINGLE_TAP
} td_state_t; } td_state_t;
// タップダンスの状態の型のグローバルインスタンスを作ります // タップダンスの状態の型のグローバルインスタンスを作ります
@@ -368,7 +372,7 @@ static td_state_t td_state;
// タップダンス関数を宣言します: // タップダンス関数を宣言します:
// 現在のタップダンスの状態を特定するための関数 // 現在のタップダンスの状態を特定するための関数
uint8_t cur_dance(qk_tap_dance_state_t *state); td_state_t cur_dance(qk_tap_dance_state_t *state);
// それぞれのタップダンスキーコードに適用する `finished` と `reset` 関数 // それぞれのタップダンスキーコードに適用する `finished` と `reset` 関数
void altlp_finished(qk_tap_dance_state_t *state, void *user_data); void altlp_finished(qk_tap_dance_state_t *state, void *user_data);
@@ -379,14 +383,14 @@ void altlp_reset(qk_tap_dance_state_t *state, void *user_data);
```c ```c
// 返却するタップダンス状態を特定します // 返却するタップダンス状態を特定します
uint8_t cur_dance(qk_tap_dance_state_t *state) { td_state_t cur_dance(qk_tap_dance_state_t *state) {
if (state->count == 1) { if (state->count == 1) {
if (state->interrupted || !state->pressed) return SINGLE_TAP; if (state->interrupted || !state->pressed) return TD_SINGLE_TAP;
else return SINGLE_HOLD; else return TD_SINGLE_HOLD;
} }
if (state->count == 2) return DOUBLE_SINGLE_TAP; if (state->count == 2) return TD_DOUBLE_SINGLE_TAP;
else return 3; // 上記で返却する最大の状態の値より大きい任意の数 else return TD_UNKNOWN; // 上記で返却する最大の状態の値より大きい任意の数
} }
// 定義する各タップダンスキーコードのとりうる状態を制御します: // 定義する各タップダンスキーコードのとりうる状態を制御します:
@@ -394,13 +398,13 @@ uint8_t cur_dance(qk_tap_dance_state_t *state) {
void altlp_finished(qk_tap_dance_state_t *state, void *user_data) { void altlp_finished(qk_tap_dance_state_t *state, void *user_data) {
td_state = cur_dance(state); td_state = cur_dance(state);
switch (td_state) { switch (td_state) {
case SINGLE_TAP: case TD_SINGLE_TAP:
register_code16(KC_LPRN); register_code16(KC_LPRN);
break; break;
case SINGLE_HOLD: case TD_SINGLE_HOLD:
register_mods(MOD_BIT(KC_LALT)); // レイヤータップキーの場合、ここでは `layer_on(_MY_LAYER)` を使います register_mods(MOD_BIT(KC_LALT)); // レイヤータップキーの場合、ここでは `layer_on(_MY_LAYER)` を使います
break; break;
case DOUBLE_SINGLE_TAP: // タップ時間内に2つの括弧 `((` の入れ子を可能にします case TD_DOUBLE_SINGLE_TAP: // タップ時間内に2つの括弧 `((` の入れ子を可能にします
tap_code16(KC_LPRN); tap_code16(KC_LPRN);
register_code16(KC_LPRN); register_code16(KC_LPRN);
} }
@@ -408,13 +412,13 @@ void altlp_finished(qk_tap_dance_state_t *state, void *user_data) {
void altlp_reset(qk_tap_dance_state_t *state, void *user_data) { void altlp_reset(qk_tap_dance_state_t *state, void *user_data) {
switch (td_state) { switch (td_state) {
case SINGLE_TAP: case TD_SINGLE_TAP:
unregister_code16(KC_LPRN); unregister_code16(KC_LPRN);
break; break;
case SINGLE_HOLD: case TD_SINGLE_HOLD:
unregister_mods(MOD_BIT(KC_LALT)); // レイヤータップキーの場合、ここでは `layer_off(_MY_LAYER)` を使います unregister_mods(MOD_BIT(KC_LALT)); // レイヤータップキーの場合、ここでは `layer_off(_MY_LAYER)` を使います
break; break;
case DOUBLE_SINGLE_TAP: case TD_DOUBLE_SINGLE_TAP:
unregister_code16(KC_LPRN); unregister_code16(KC_LPRN);
} }
} }
@@ -431,20 +435,22 @@ qk_tap_dance_action_t tap_dance_actions[] = {
タップダンスは、MO(layer) と TG(layer) 機能を模倣することにも使用できます。この例では、1回タップすると `KC_QUOT` 、1回押してそのまま押し続けたら `MO(_MY_LAYER)` 、2回タップしたときは `TG(_MY_LAYER)` として機能するキーを設定します。 タップダンスは、MO(layer) と TG(layer) 機能を模倣することにも使用できます。この例では、1回タップすると `KC_QUOT` 、1回押してそのまま押し続けたら `MO(_MY_LAYER)` 、2回タップしたときは `TG(_MY_LAYER)` として機能するキーを設定します。
最初のステップは、あなたの `keymap.c` ファイルの最初のあたりに以下のコードを追加します。 最初のステップは、あなたの `keymap.c` ファイルの最初のあたりに以下のコードを追加することです。
```c ```c
// 必要な数のタップダンス状態のタイプを定義します
typedef enum {
TD_NONE,
TD_UNKNOWN,
TD_SINGLE_TAP,
TD_SINGLE_HOLD,
TD_DOUBLE_TAP
} td_state_t;
typedef struct { typedef struct {
bool is_press_action; bool is_press_action;
uint8_t state; td_state_t state;
} tap; } td_tap_t;
// 必要な数のタップダンス状態のタイプを定義します
enum {
SINGLE_TAP = 1,
SINGLE_HOLD,
DOUBLE_TAP
};
enum { enum {
QUOT_LAYR, // カスタムタップダンスキー。他のタップダンスキーはこの列挙型に追加します QUOT_LAYR, // カスタムタップダンスキー。他のタップダンスキーはこの列挙型に追加します
@@ -453,7 +459,7 @@ enum {
// タップダンスキーで使われる関数を宣言します // タップダンスキーで使われる関数を宣言します
// 全てのタップダンスに関連する関数 // 全てのタップダンスに関連する関数
uint8_t cur_dance(qk_tap_dance_state_t *state); td_state_t cur_dance(qk_tap_dance_state_t *state);
// 個別のタップダンスに関連する関数 // 個別のタップダンスに関連する関数
void ql_finished(qk_tap_dance_state_t *state, void *user_data); void ql_finished(qk_tap_dance_state_t *state, void *user_data);
@@ -464,31 +470,31 @@ void ql_reset(qk_tap_dance_state_t *state, void *user_data);
```c ```c
// 現在のタップダンスの状態を決定します // 現在のタップダンスの状態を決定します
uint8_t cur_dance(qk_tap_dance_state_t *state) { td_state_t cur_dance(qk_tap_dance_state_t *state) {
if (state->count == 1) { if (state->count == 1) {
if (!state->pressed) return SINGLE_TAP; if (!state->pressed) return TD_SINGLE_TAP;
else return SINGLE_HOLD; else return TD_SINGLE_HOLD;
} else if (state->count == 2) return DOUBLE_TAP; } else if (state->count == 2) return TD_DOUBLE_TAP;
else return 8; else return TD_UNKNOWN;
} }
// この例のタップダンスキーに関連付けられた "tap" 構造体を初期化します // この例のタップダンスキーに関連付けられた "tap" 構造体を初期化します
static tap ql_tap_state = { static td_tap_t ql_tap_state = {
.is_press_action = true, .is_press_action = true,
.state = 0 .state = TD_NONE
}; };
// タップダンスキーの動作をコントロールする関数 // タップダンスキーの動作をコントロールする関数
void ql_finished(qk_tap_dance_state_t *state, void *user_data) { void ql_finished(qk_tap_dance_state_t *state, void *user_data) {
ql_tap_state.state = cur_dance(state); ql_tap_state.state = cur_dance(state);
switch (ql_tap_state.state) { switch (ql_tap_state.state) {
case SINGLE_TAP: case TD_SINGLE_TAP:
tap_code(KC_QUOT); tap_code(KC_QUOT);
break; break;
case SINGLE_HOLD: case TD_SINGLE_HOLD:
layer_on(_MY_LAYER); layer_on(_MY_LAYER);
break; break;
case DOUBLE_TAP: case TD_DOUBLE_TAP:
// レイヤーが既にセットされているか確認します // レイヤーが既にセットされているか確認します
if (layer_state_is(_MY_LAYER)) { if (layer_state_is(_MY_LAYER)) {
// レイヤーが既にセットされていたら、オフにします。 // レイヤーが既にセットされていたら、オフにします。
@@ -503,10 +509,10 @@ void ql_finished(qk_tap_dance_state_t *state, void *user_data) {
void ql_reset(qk_tap_dance_state_t *state, void *user_data) { void ql_reset(qk_tap_dance_state_t *state, void *user_data) {
// キーを押し続けていて今離したら、レイヤーをオフに切り替えます。 // キーを押し続けていて今離したら、レイヤーをオフに切り替えます。
if (ql_tap_state.state == SINGLE_HOLD) { if (ql_tap_state.state == TD_SINGLE_HOLD) {
layer_off(_MY_LAYER); layer_off(_MY_LAYER);
} }
ql_tap_state.state = 0; ql_tap_state.state = TD_NONE;
} }
// タップダンスキーを機能に関連付けます // タップダンスキーを機能に関連付けます
@@ -519,7 +525,7 @@ qk_tap_dance_action_t tap_dance_actions[] = {
`cur_dance()` と `ql_tap_state` の使い方は、上の例と似ています。 `cur_dance()` と `ql_tap_state` の使い方は、上の例と似ています。
`ql_finished` 関数における `case:SINGLE_TAP` は、上の例と似ています。`SINGLE_HOLD` の case では、`ql_reset()` と連動してタップダンスキーを押している間 `_MY_LAYER` に切り替わり、キーを離した時に `_MY_LAYER` から離れます。これは、`MO(_MY_LAYER)` に似ています。`DOUBLE_TAP` の case では、`_MY_LAYER` がアクティブレイヤーかどうかを確認することによって動きます。そして、その結果に基づいてレイヤーのオン・オフをトグルします。これは `TG(_MY_LAYER)` に似ています。 `ql_finished` 関数における `case: TD_SINGLE_TAP` は、上の例と似ています。`TD_SINGLE_HOLD` の case では、`ql_reset()` と連動してタップダンスキーを押している間 `_MY_LAYER` に切り替わり、キーを離した時に `_MY_LAYER` から離れます。これは、`MO(_MY_LAYER)` に似ています。`TD_DOUBLE_TAP` の case では、`_MY_LAYER` がアクティブレイヤーかどうかを確認することによって動きます。そして、その結果に基づいてレイヤーのオン・オフをトグルします。これは `TG(_MY_LAYER)` に似ています。
`tap_dance_actions[]` は、上の例に似ています。 `ACTION_TAP_DANCE_FN_ADVANCED()` の代わりに `ACTION_TAP_DANCE_FN_ADVANCED_TIME()` を使ったことに注意してください。 `tap_dance_actions[]` は、上の例に似ています。 `ACTION_TAP_DANCE_FN_ADVANCED()` の代わりに `ACTION_TAP_DANCE_FN_ADVANCED_TIME()` を使ったことに注意してください。
この理由は、私は、非タップダンスキーを使うにあたり `TAPPING_TERM` が短い(175ミリ秒以内)方が好きなのですが、タップダンスのアクションを確実に完了させるには短すぎるとわかったからです——そのため、ここでは時間を275ミリ秒に増やしています。 この理由は、私は、非タップダンスキーを使うにあたり `TAPPING_TERM` が短い(175ミリ秒以内)方が好きなのですが、タップダンスのアクションを確実に完了させるには短すぎるとわかったからです——そのため、ここでは時間を275ミリ秒に増やしています。
+10 -7
View File
@@ -65,14 +65,17 @@ Now, we will set up the MSYS2 window to show up in VSCode as the integrated term
```json ```json
{ {
"terminal.integrated.shell.windows": "C:\\msys64\\usr\\bin\\bash.exe", "terminal.integrated.profiles.windows": {
"terminal.integrated.env.windows": { "QMK_MSYS": {
"MSYSTEM": "MINGW64", "path": "C:/QMK_MSYS/usr/bin/bash.exe",
"CHERE_INVOKING": "1" "env": {
"MSYSTEM": "MINGW64",
"CHERE_INVOKING": "1"
},
"args": ["--login"]
}
}, },
"terminal.integrated.shellArgs.windows": [
"--login"
],
"terminal.integrated.cursorStyle": "line" "terminal.integrated.cursorStyle": "line"
} }
``` ```
+1
View File
@@ -93,6 +93,7 @@ https://github.com/qmk/qmk_firmware/pulls?q=is%3Apr+is%3Aclosed+label%3Akeyboard
- default (and via) keymaps should be "pristine" - default (and via) keymaps should be "pristine"
- bare minimum to be used as a "clean slate" for another user to develop their own user-specific keymap - bare minimum to be used as a "clean slate" for another user to develop their own user-specific keymap
- standard layouts preferred in these keymaps, if possible - standard layouts preferred in these keymaps, if possible
- default keymap should not enable VIA -- the VIA integration documentation requires a keymap called `via`
- submitters can have a personal (or bells-and-whistles) keymap showcasing capabilities in the same PR but it shouldn't be embedded in the 'default' keymap - submitters can have a personal (or bells-and-whistles) keymap showcasing capabilities in the same PR but it shouldn't be embedded in the 'default' keymap
- submitters can also have a "manufacturer-matching" keymap that mirrors existing functionality of the commercial product, if porting an existing board - submitters can also have a "manufacturer-matching" keymap that mirrors existing functionality of the commercial product, if porting an existing board
- Do not include VIA json files in the PR. These do not belong in the QMK repository as they are not used by QMK firmware -- they belong in the [VIA Keyboard Repo](https://github.com/the-via/keyboards) - Do not include VIA json files in the PR. These do not belong in the QMK repository as they are not used by QMK firmware -- they belong in the [VIA Keyboard Repo](https://github.com/the-via/keyboards)
+81 -76
View File
@@ -1,86 +1,91 @@
# Language-specific Keycodes # Language-specific Keycodes
Keyboards are able to support a wide range of languages. However, they do not send the actual characters produced by pressing their keys - instead, they send numerical codes. In the USB HID spec, these are called "usages", although they are more often referred to as "scancodes" or "keycodes" when in the context of keyboards. Keyboards are able to support a wide range of languages. However, this support is not actually achieved within the keyboard itself - instead, it sends numerical codes, which the operating system maps to the appropriate characters depending on the user's configured keyboard layout. By default (and per the HID spec), this is the US ANSI layout. For example, when a Swedish person presses the key with the `å` character printed on it, the keyboard is *actually* sending the keycode for `[`.
Less than 256 usages are defined in the HID Keyboard/Keypad usage page, and some of those do nothing on modern operating systems. So, how is this language support achieved?
In a nutshell, the operating system maps the usages it receives to the appropriate character based on the user's configured keyboard layout. For example, when a Swedish person presses the key with the `å` character printed on it, the keyboard is *actually* sending the keycode for `[`. Obviously, this can get confusing, so QMK provides language-specific keycode aliases for many keyboard layouts. These won't do much on their own - you still have to set the matching keyboard layout in your OS settings. Think of them more as keycap labels for your keymap.
Obviously, this could get confusing, so QMK provides language-specific keycode aliases for many keyboard layouts. These won't do much on their own - you still have to set the matching keyboard layout in your OS settings. Think of them more as keycap labels for your keymap. Simply `#include` one of the keycode headers below at the top of your `keymap.c`, and assign the keycodes defined in the header in place of the `KC_` prefixed ones.
To use these, simply `#include` the corresponding [header file](https://github.com/qmk/qmk_firmware/tree/master/quantum/keymap_extras) in your `keymap.c`, and add the keycodes defined in them in place of the `KC_` prefixed ones:
|Layout |Header |
|---------------------------|--------------------------------|
|Canadian Multilingual (CSA)|`keymap_canadian_multilingual.h`|
|Croatian |`keymap_croatian.h` |
|Czech |`keymap_czech.h` |
|Danish |`keymap_danish.h` |
|Dutch (Belgium) |`keymap_belgian.h` |
|English (Ireland) |`keymap_irish.h` |
|English (UK) |`keymap_uk.h` |
|English (US Extended) |`keymap_us_extended.h` |
|English (US International) |`keymap_us_international.h` |
|English (US International, Linux)|`keymap_us_international_linux.h`|
|Estonian |`keymap_estonian.h` |
|Finnish |`keymap_finnish.h` |
|French |`keymap_french.h` |
|French (AFNOR) |`keymap_french_afnor.h` |
|French (BÉPO) |`keymap_bepo.h` |
|French (Belgium) |`keymap_belgian.h` |
|French (Switzerland) |`keymap_fr_ch.h` |
|French (macOS, ISO) |`keymap_french_osx.h` |
|German |`keymap_german.h` |
|German (Switzerland) |`keymap_german_ch.h` |
|German (macOS) |`keymap_german_osx.h` |
|German (Neo2)* |`keymap_neo2.h` |
|Greek* |`keymap_greek.h` |
|Hebrew* |`keymap_hebrew.h` |
|Hungarian |`keymap_hungarian.h` |
|Icelandic |`keymap_icelandic.h` |
|Italian |`keymap_italian.h` |
|Italian (macOS, ANSI) |`keymap_italian_osx_ansi.h` |
|Italian (macOS, ISO) |`keymap_italian_osx_iso.h` |
|Japanese |`keymap_jp.h` |
|Korean |`keymap_korean.h` |
|Latvian |`keymap_latvian.h` |
|Lithuanian (ĄŽERTY) |`keymap_lithuanian_azerty.h` |
|Lithuanian (QWERTY) |`keymap_lithuanian_qwerty.h` |
|Norwegian |`keymap_norwegian.h` |
|Polish |`keymap_polish.h` |
|Portuguese |`keymap_portuguese.h` |
|Portuguese (macOS, ISO) |`keymap_portuguese_osx_iso.h` |
|Portuguese (Brazil) |`keymap_br_abnt2.h` |
|Romanian |`keymap_romanian.h` |
|Russian* |`keymap_russian.h` |
|Serbian* |`keymap_serbian.h` |
|Serbian (Latin) |`keymap_serbian_latin.h` |
|Slovak |`keymap_slovak.h` |
|Slovenian |`keymap_slovenian.h` |
|Spanish |`keymap_spanish.h` |
|Spanish (Dvorak) |`keymap_spanish_dvorak.h` |
|Swedish |`keymap_swedish.h` |
|Turkish (F) |`keymap_turkish_f.h` |
|Turkish (Q) |`keymap_turkish_q.h` |
There are also a few which are not quite language-specific, but useful if you are not using a QWERTY layout:
|Layout |Header |
|-------------------|------------------------|
|Colemak |`keymap_colemak.h` |
|Dvorak |`keymap_dvorak.h` |
|Dvorak (French) |`keymap_dvorak_fr.h` |
|Dvorak (Programmer)|`keymap_dvp.h` |
|Norman |`keymap_norman.h` |
|Plover* |`keymap_plover.h` |
|Plover (Dvorak)* |`keymap_plover_dvorak.h`|
|Steno* |`keymap_steno.h` |
|Workman |`keymap_workman.h` |
|Workman (ZXCVM) |`keymap_workman_zxcvm.h`|
## Sendstring Support ## Sendstring Support
By default, `SEND_STRING()` assumes a US ANSI keyboard layout is set. If you are using a different layout, you can also `#include "sendstring_*.h"` (as above) in your keymap to override the lookup tables used for mapping ASCII characters to keycodes. By default, `SEND_STRING()` assumes a US ANSI keyboard layout is set. If you are using a different layout, you can include one of the Sendstring LUT headers below in your `keymap.c` to override the lookup tables used for mapping ASCII characters to keycodes. You do not need to include the corresponding `keymap_*.h` header, as it is implicit when including the Sendstring header.
An important thing to note here is that `SEND_STRING()` only operates on [ASCII text](https://en.wikipedia.org/wiki/ASCII#Character_set). This means that you cannot pass it a string containing Unicode characters - this unfortunately includes accented characters that may be present in your desired layout. An important thing to note here is that `SEND_STRING()` only operates on [ASCII text](https://en.wikipedia.org/wiki/ASCII#Character_set). This means that you cannot pass it a string containing Unicode characters - this unfortunately includes accented characters that may be present in your desired layout.
Many layouts make certain characters, such as Grave or Tilde, available only as [dead keys](https://en.wikipedia.org/wiki/Dead_key), so you must add a space immediately after it in the string you want to send, to prevent it from potentially combining with the next character. Many layouts make certain characters, such as Grave or Tilde, available only as [dead keys](https://en.wikipedia.org/wiki/Dead_key), so you must add a space immediately after it in the string you want to send, to prevent it from potentially combining with the next character.
Certain other layouts have no Sendstring header as they do not use a Latin-derived alphabet (for example Greek and Russian), and thus there is no way to input most of the ASCII character set. These are marked above with a `*`. Certain other layouts have no Sendstring header as they do not use a Latin-derived alphabet (for example Greek and Russian), and thus there is no way to input most of the ASCII character set.
## Header Files
These headers are located in [`quantum/keymap_extras/`](https://github.com/qmk/qmk_firmware/tree/master/quantum/keymap_extras).
|Layout |Keycodes Header |Sendstring LUT Header |
|---------------------------------|---------------------------------|------------------------------------|
|Canadian Multilingual (CSA) |`keymap_canadian_multilingual.h` |`sendstring_canadian_multilingual.h`|
|Croatian |`keymap_croatian.h` |`sendstring_croatian.h` |
|Czech |`keymap_czech.h` |`sendstring_czech.h` |
|Danish |`keymap_danish.h` |`sendstring_danish.h` |
|Dutch (Belgium) |`keymap_belgian.h` |`sendstring_belgian.h` |
|English (Ireland) |`keymap_irish.h` | |
|English (UK) |`keymap_uk.h` |`sendstring_uk.h` |
|English (US Extended) |`keymap_us_extended.h` | |
|English (US International) |`keymap_us_international.h` |`sendstring_us_international.h` |
|English (US International, Linux)|`keymap_us_international_linux.h`| |
|Estonian |`keymap_estonian.h` |`sendstring_estonian.h` |
|Finnish |`keymap_finnish.h` |`sendstring_finnish.h` |
|French |`keymap_french.h` |`sendstring_french.h` |
|French (AFNOR) |`keymap_french_afnor.h` |`sendstring_french_afnor.h` |
|French (BÉPO) |`keymap_bepo.h` |`sendstring_bepo.h` |
|French (Belgium) |`keymap_belgian.h` |`sendstring_belgian.h` |
|French (Switzerland) |`keymap_fr_ch.h` |`sendstring_fr_ch.h` |
|French (macOS, ISO) |`keymap_french_osx.h` |`sendstring_french_osx.h` |
|German |`keymap_german.h` |`sendstring_german.h` |
|German (Switzerland) |`keymap_german_ch.h` |`sendstring_german_ch.h` |
|German (macOS) |`keymap_german_osx.h` |`sendstring_german_osx.h` |
|German (Neo2) |`keymap_neo2.h` | |
|Greek |`keymap_greek.h` | |
|Hebrew |`keymap_hebrew.h` | |
|Hungarian |`keymap_hungarian.h` |`sendstring_hungarian.h` |
|Icelandic |`keymap_icelandic.h` |`sendstring_icelandic.h` |
|Italian |`keymap_italian.h` |`sendstring_italian.h` |
|Italian (macOS, ANSI) |`keymap_italian_osx_ansi.h` |`sendstring_italian_osx_ansi.h` |
|Italian (macOS, ISO) |`keymap_italian_osx_iso.h` |`sendstring_italian_osx_iso.h` |
|Japanese |`keymap_jp.h` |`sendstring_jis.h` |
|Korean |`keymap_korean.h` | |
|Latvian |`keymap_latvian.h` |`sendstring_latvian.h` |
|Lithuanian (ĄŽERTY) |`keymap_lithuanian_azerty.h` |`sendstring_lithuanian_azerty.h` |
|Lithuanian (QWERTY) |`keymap_lithuanian_qwerty.h` |`sendstring_lithuanian_qwerty.h` |
|Norwegian |`keymap_norwegian.h` |`sendstring_norwegian.h` |
|Polish |`keymap_polish.h` | |
|Portuguese |`keymap_portuguese.h` |`sendstring_portuguese.h` |
|Portuguese (macOS, ISO) |`keymap_portuguese_osx_iso.h` |`sendstring_portuguese_osx_iso.h` |
|Portuguese (Brazil) |`keymap_br_abnt2.h` |`sendstring_br_abnt2.h` |
|Romanian |`keymap_romanian.h` |`sendstring_romanian.h` |
|Russian |`keymap_russian.h` | |
|Serbian |`keymap_serbian.h` | |
|Serbian (Latin) |`keymap_serbian_latin.h` |`sendstring_serbian_latin.h` |
|Slovak |`keymap_slovak.h` |`sendstring_slovak.h` |
|Slovenian |`keymap_slovenian.h` |`sendstring_slovenian.h` |
|Spanish |`keymap_spanish.h` |`sendstring_spanish.h` |
|Spanish (Dvorak) |`keymap_spanish_dvorak.h` |`sendstring_spanish_dvorak.h` |
|Swedish |`keymap_swedish.h` |`sendstring_swedish.h` |
|Swedish (macOS, ANSI) |`keymap_swedish_osx_ansi.h` | |
|Swedish (macOS, ISO) |`keymap_swedish_osx_iso.h` | |
|Swedish Pro (macOS, ANSI) |`keymap_swedish_pro_osx_ansi.h` | |
|Swedish Pro (macOS, ISO) |`keymap_swedish_pro_osx_iso.h` | |
|Turkish (F) |`keymap_turkish_f.h` |`sendstring_turkish_f.h` |
|Turkish (Q) |`keymap_turkish_q.h` |`sendstring_turkish_q.h` |
There are also a few which are not quite language-specific, but useful if you are not using a QWERTY layout:
|Layout |Keycodes Header |Sendstring LUT Header |
|-------------------|------------------------|----------------------------|
|Colemak |`keymap_colemak.h` |`sendstring_colemak.h` |
|Dvorak |`keymap_dvorak.h` |`sendstring_dvorak.h` |
|Dvorak (French) |`keymap_dvorak_fr.h` |`sendstring_dvorak_fr.h` |
|Dvorak (Programmer)|`keymap_dvp.h` |`sendstring_dvp.h` |
|Norman |`keymap_norman.h` |`sendstring_norman.h` |
|Plover |`keymap_plover.h` | |
|Plover (Dvorak) |`keymap_plover_dvorak.h`| |
|Steno |`keymap_steno.h` | |
|Workman |`keymap_workman.h` |`sendstring_workman.h` |
|Workman (ZXCVM) |`keymap_workman_zxcvm.h`|`sendstring_workman_zxcvm.h`|
+4 -1
View File
@@ -4,8 +4,11 @@
"maintainer": "Conor-Burns", "maintainer": "Conor-Burns",
"width": 12, "width": 12,
"height": 5, "height": 5,
"layout_aliases": {
"LAYOUT": "LAYOUT_all"
},
"layouts": { "layouts": {
"LAYOUT": { "LAYOUT_all": {
"layout": [ "layout": [
{"x":11, "y":0}, {"x":11, "y":0},
{"x":0, "y":1}, {"x":0, "y":1},
@@ -23,28 +23,28 @@ enum layer_names {
_FN4 _FN4
}; };
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_HOME] = LAYOUT( [_HOME] = LAYOUT_all(
KC_MPLY, KC_MPLY,
KC_GESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_GESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT, KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT,
KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSPC, KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSPC,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), MO(2) KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), MO(2)
), ),
[_FN2] = LAYOUT( [_FN2] = LAYOUT_all(
RESET, RESET,
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_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL,
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______ _______, _______, _______, _______, _______, _______, _______, _______, _______
), ),
[_FN3] = LAYOUT( [_FN3] = LAYOUT_all(
EEP_RST, EEP_RST,
_______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, KC_BSLS, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, KC_BSLS,
_______, _______, _______, _______, _______, _______, _______, _______, KC_SCLN, KC_QUOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_SCLN, KC_QUOT, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_SLSH, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_SLSH,
_______, _______, _______, _______, _______, _______, _______, _______, _______ _______, _______, _______, _______, _______, _______, _______, _______, _______
), ),
[_FN4] = LAYOUT( [_FN4] = LAYOUT_all(
_______, _______,
_______, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPRV, KC_MNXT, KC_MSTP, KC_INS, KC_HOME, KC_DEL, KC_END, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPRV, KC_MNXT, KC_MSTP, KC_INS, KC_HOME, KC_DEL, KC_END, _______,
_______, _______, KC_BRID, KC_BRIU, _______, _______, _______, KC_PGUP, KC_UP, KC_PGDN, _______, _______, _______, KC_BRID, KC_BRIU, _______, _______, _______, KC_PGUP, KC_UP, KC_PGDN, _______,
+4 -4
View File
@@ -23,28 +23,28 @@ enum layer_names {
_FN4 _FN4
}; };
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_HOME] = LAYOUT( [_HOME] = LAYOUT_all(
KC_MPLY, KC_MPLY,
KC_GESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_GESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT, KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT,
KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSPC, KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSPC,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), MO(2) KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), MO(2)
), ),
[_FN2] = LAYOUT( [_FN2] = LAYOUT_all(
RESET, RESET,
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_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL,
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______ _______, _______, _______, _______, _______, _______, _______, _______, _______
), ),
[_FN3] = LAYOUT( [_FN3] = LAYOUT_all(
EEP_RST, EEP_RST,
_______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, KC_BSLS, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, KC_BSLS,
_______, _______, _______, _______, _______, _______, _______, _______, KC_SCLN, KC_QUOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_SCLN, KC_QUOT, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_SLSH, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_SLSH,
_______, _______, _______, _______, _______, _______, _______, _______, _______ _______, _______, _______, _______, _______, _______, _______, _______, _______
), ),
[_FN4] = LAYOUT( [_FN4] = LAYOUT_all(
_______, _______,
_______, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPRV, KC_MNXT, KC_MSTP, KC_INS, KC_HOME, KC_DEL, KC_END, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPRV, KC_MNXT, KC_MSTP, KC_INS, KC_HOME, KC_DEL, KC_END, _______,
_______, _______, KC_BRID, KC_BRIU, _______, _______, _______, KC_PGUP, KC_UP, KC_PGDN, _______, _______, _______, KC_BRID, KC_BRIU, _______, _______, _______, KC_PGUP, KC_UP, KC_PGDN, _______,
+35 -17
View File
@@ -28,21 +28,39 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
// clang-format off // clang-format off
#define LAYOUT( \ #define LAYOUT_all( \
K15, \ K15, \
K00, K10, K01, K11, K02, K12, K03, K13, K04, K14, K05, K35, \ K00, K10, K01, K11, K02, K12, K03, K13, K04, K14, K05, K35, \
K20, K30, K21, K31, K22, K32, K23, K33, K24, K34, K25, \ K20, K30, K21, K31, K22, K32, K23, K33, K24, K34, K25, \
K40, K41, K51, K42, K52, K43, K53, K44, K54, K45, K55, \ K40, K41, K51, K42, K52, K43, K53, K44, K54, K45, K55, \
K60, K70, K61, K71, K72, K64, K74, K65, K75 \ K60, K70, K61, K71, K72, K64, K74, K65, K75 \
) \ ) \
{ \ { \
{ K00, K01, K02, K03, K04, K05 }, \ { K00, K01, K02, K03, K04, K05 }, \
{ K10, K11, K12, K13, K14, K15 }, \ { K10, K11, K12, K13, K14, K15 }, \
{ K20, K21, K22, K23, K24, K25 }, \ { K20, K21, K22, K23, K24, K25 }, \
{ K30, K31, K32, K33, K34, K35 }, \ { K30, K31, K32, K33, K34, K35 }, \
{ K40, K41, K42, K43, K44, K45 }, \ { K40, K41, K42, K43, K44, K45 }, \
{ KC_NO, K51, K52, K53, K54, K55 }, \ { KC_NO, K51, K52, K53, K54, K55 }, \
{ K60, K61, KC_NO, KC_NO, K64, K65 }, \ { K60, K61, KC_NO, KC_NO, K64, K65 }, \
{ K70, K71, K72, KC_NO, K74, K75 }, \ { K70, K71, K72, KC_NO, K74, K75 }, \
} }
#define LAYOUT_bigbar( \
K15, \
K00, K10, K01, K11, K02, K12, K03, K13, K04, K14, K05, K35, \
K20, K30, K21, K31, K22, K32, K23, K33, K24, K34, K25, \
K40, K41, K51, K42, K52, K43, K53, K44, K54, K45, K55, \
K60, K70, K61, K72, K65, K75 \
) \
{ \
{ K00, K01, K02, K03, K04, K05 }, \
{ K10, K11, K12, K13, K14, K15 }, \
{ K20, K21, K22, K23, K24, K25 }, \
{ K30, K31, K32, K33, K34, K35 }, \
{ K40, K41, K42, K43, K44, K45 }, \
{ KC_NO, K51, K52, K53, K54, K55 }, \
{ K60, K61, KC_NO, KC_NO, KC_NO, K65 }, \
{ K70, KC_NO, K72, KC_NO, KC_NO, K75 }, \
}
// clang-format on // clang-format on
+1 -1
View File
@@ -40,7 +40,7 @@
{ K00, K01, K02, K03, K04, K05, K06, K07, ___, ___, ___, ___ }, \ { K00, K01, K02, K03, K04, K05, K06, K07, ___, ___, ___, ___ }, \
{ K10, K11, K12, K13, K14, K15, K16, K17, ___, ___, ___, ___ }, \ { K10, K11, K12, K13, K14, K15, K16, K17, ___, ___, ___, ___ }, \
{ K20, K21, K22, K23, K24, K25, K26, K27, ___, ___, ___, ___ }, \ { K20, K21, K22, K23, K24, K25, K26, K27, ___, ___, ___, ___ }, \
{ K30, K31, K32, K33, K34, K35, K35, K37, ___, ___, ___, ___ } \ { K30, K31, K32, K33, K34, K35, K36, K37, ___, ___, ___, ___ } \
} }
#define LAYOUT_ortho_4x12( \ #define LAYOUT_ortho_4x12( \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0a, K0b, \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0a, K0b, \
+1 -1
View File
@@ -30,7 +30,7 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6 AUDIO_ENABLE = no # Audio output on port C6
LAYOUTS = ortho_4x4 ortho_4x8 ortho_4x12 LAYOUTS = ortho_4x4 ortho_4x12
# Disable unsupported hardware # Disable unsupported hardware
AUDIO_SUPPORTED = no AUDIO_SUPPORTED = no
+2 -1
View File
@@ -48,7 +48,8 @@
{ "label": "L", "x": 9.75, "y": 2 }, { "label": "L", "x": 9.75, "y": 2 },
{ "label": ":", "x": 10.75, "y": 2 }, { "label": ":", "x": 10.75, "y": 2 },
{ "label": "\"", "x": 11.75, "y": 2 }, { "label": "\"", "x": 11.75, "y": 2 },
{ "label": "Enter", "x": 12.75, "y": 2, "w": 2.25 }, { "label": "~", "x": 12.75, "y": 2},
{ "label": "Enter", "x": 13.75, "y": 2, "w": 1.25 },
{ "label": "Shift", "x": 0, "y": 3, "w": 1.25 }, { "label": "Shift", "x": 0, "y": 3, "w": 1.25 },
{ "label": "|", "x": 1.25, "y": 3 }, { "label": "|", "x": 1.25, "y": 3 },
{ "label": "Z", "x": 2.25, "y": 3 }, { "label": "Z", "x": 2.25, "y": 3 },
+19 -2
View File
@@ -1,3 +1,19 @@
/* Copyright 2021 Jonathan Rascher
*
* 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 QMK_KEYBOARD_H
enum layer { enum layer {
@@ -6,18 +22,19 @@ enum layer {
}; };
#define LY_FUNC MO(LAYER_FUNCTION) #define LY_FUNC MO(LAYER_FUNCTION)
#define KY_LOCK LCA(KC_L) /* Cinnamon lock screen */ #define KY_LOCK LCA(KC_L) /* Cinnamon lock screen */
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// clang-format off
[LAYER_DEFAULT] = LAYOUT( [LAYER_DEFAULT] = LAYOUT(
KC_MPLY, KC_VOLU, KC_MSTP, KC_MPLY, KC_VOLU, KC_MSTP,
KC_MPRV, KC_VOLD, KC_MNXT, KC_MPRV, KC_VOLD, KC_MNXT,
KY_LOCK, KC_MUTE, LY_FUNC KY_LOCK, KC_MUTE, LY_FUNC
), ),
[LAYER_FUNCTION] = LAYOUT( [LAYER_FUNCTION] = LAYOUT(
EEP_RST, _______, RESET, EEP_RST, _______, RESET,
_______, _______, _______, _______, _______, _______,
_______, _______, _______ _______, _______, _______
), ),
// clang-format on
}; };
+70
View File
@@ -0,0 +1,70 @@
/* Copyright 2021 alittlepeace
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_default(
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_BSLS, KC_GRV, KC_INS, KC_HOME, KC_PGUP,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, KC_DEL, KC_END, KC_PGDN,
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_ENT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_UP,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT),
[1] = LAYOUT_default(
_______, 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_PSCR, KC_SLCK, KC_PAUS,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
[2] = LAYOUT_default(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
[3] = LAYOUT_default(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______)
};
bool encoder_update_user(uint8_t index, bool clockwise) {
if (index == 0) { /* First encoder */
switch(get_highest_layer(layer_state)){
case 1:
if (clockwise){
tap_code(KC_VOLU);
} else{
tap_code(KC_VOLD);
}
break;
default:
if (clockwise) {
tap_code(KC_WH_D);
} else {
tap_code(KC_WH_U);
}
break;
}
}
return true;
}
+2
View File
@@ -0,0 +1,2 @@
VIA_ENABLE = yes
MOUSEKEY_ENABLE = yes
+1
View File
@@ -13,4 +13,5 @@
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
#include "al1.h" #include "al1.h"
+28 -30
View File
@@ -13,41 +13,39 @@
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
#ifndef AL1_H
#define AL1_H #pragma once
#include "quantum.h" #include "quantum.h"
#define XXX KC_NO
#define LAYOUT( \ #define LAYOUT( \
K500, K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K415, K414,\ k50, k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F, k4F, k4E, \
K501, K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, K215, K413,\ k51, k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1F, k2F, k4D, \
K502, K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, \ k52, k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E, \
K503, K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, K315, K412,\ k53, k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, k3F, k4C, \
K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411 \ k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4A, k4B \
) \ ) { \
{ \ { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F }, \
{ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015}, \ { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1F }, \
{ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115}, \ { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E, k2F }, \
{ K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215}, \ { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, k3F }, \
{ K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, K315}, \ { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4A, k4B, k4C, k4D, k4E, k4F }, \
{ K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, K413, K414, K415}, \ { k50, k51, k52, k53, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX } \
{ K500, K501, K502, K503, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO} \
} }
#define LAYOUT_split_bs( \ #define LAYOUT_split_bs( \
K500, K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K512, K012, K013, K014, K015, K415, K414, \ k50, k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k5C, k0C, k0D, k0E, k0F, k4F, k4E, \
K501, K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, K215, K413,\ k51, k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1F, k2F, k4D, \
K502, K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, \ k52, k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E, \
K503, K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, K315, K412,\ k53, k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, k3F, k4C, \
K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411 \ k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4A, k4B \
) \ ) { \
{ \ { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F }, \
{ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015}, \ { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1F }, \
{ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115}, \ { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E, k2F }, \
{ K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215}, \ { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, k3F }, \
{ K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, K315}, \ { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4A, k4B, k4C, k4D, k4E, k4F }, \
{ K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, K413, K414, K415}, \ { k50, k51, k52, k53, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, k5C, XXX, XXX, XXX } \
{ K500, K501, K502, K503, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, K512, KC_NO, KC_NO, KC_NO} \
} }
#endif
+12 -100
View File
@@ -15,62 +15,42 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
#ifndef CONFIG_H #pragma once
#define CONFIG_H
#include "config_common.h" #include "config_common.h"
/* USB Device descriptor parameter */ /* USB Device descriptor parameter */
#define VENDOR_ID 0xFEED #define VENDOR_ID 0xFEED
#define PRODUCT_ID 0x6050 #define PRODUCT_ID 0x6050
#define DEVICE_VER 0x0104 #define DEVICE_VER 0x0104
#define MANUFACTURER Alsoran #define MANUFACTURER Alsoran
#define PRODUCT AL1 #define PRODUCT AL1
/* key matrix size */ /* key matrix size */
#define MATRIX_ROWS 7 #define MATRIX_ROWS 7
#define MATRIX_COLS 20 #define MATRIX_COLS 20
/*
* 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)
*
*/
/* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION COL2ROW
#define LED_NUM_LOCK_PIN D0 #define LED_NUM_LOCK_PIN D0
#define LED_CAPS_LOCK_PIN B7 #define LED_CAPS_LOCK_PIN B7
#define LED_SCROLL_LOCK_PIN D1 #define LED_SCROLL_LOCK_PIN D1
#define LED_PIN_ON_STATE 0 #define LED_PIN_ON_STATE 0
#define BACKLIGHT_PIN B6 #define BACKLIGHT_PIN B6
#define BACKLIGHT_BREATHING
#define BACKLIGHT_LEVELS 3 #define BACKLIGHT_LEVELS 3
#define BACKLIGHT_BREATHING
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 5 #define DEBOUNCE 5
/* define if matrix has ghost (lacks anti-ghosting diodes) */
//#define MATRIX_HAS_GHOST
/* number of backlight levels */
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE #define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */ /* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE #define LOCKING_RESYNC_ENABLE
/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. /* 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). * This is useful for the Windows task manager shortcut (ctrl+shift+esc).
*/ */
// #define GRAVE_ESC_CTRL_OVERRIDE //#define GRAVE_ESC_CTRL_OVERRIDE
/* /*
* Force NKRO * Force NKRO
@@ -93,54 +73,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
//#define FORCE_NKRO //#define FORCE_NKRO
/*
* Magic Key Options
*
* Magic keys are hotkey commands that allow control over firmware functions of
* the keyboard. They are best used in combination with the HID Listen program,
* found here: https://www.pjrc.com/teensy/hid_listen.html
*
* The options below allow the magic key functionality to be changed. This is
* useful if your keyboard/keypad is missing keys and you want magic key support.
*
*/
/* control how magic key switches layers */
//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
/* override magic key keymap */
//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
//#define MAGIC_KEY_HELP1 H
//#define MAGIC_KEY_HELP2 SLASH
//#define MAGIC_KEY_DEBUG D
//#define MAGIC_KEY_DEBUG_MATRIX X
//#define MAGIC_KEY_DEBUG_KBD K
//#define MAGIC_KEY_DEBUG_MOUSE M
//#define MAGIC_KEY_VERSION V
//#define MAGIC_KEY_STATUS S
//#define MAGIC_KEY_CONSOLE C
//#define MAGIC_KEY_LAYER0_ALT1 ESC
//#define MAGIC_KEY_LAYER0_ALT2 GRAVE
//#define MAGIC_KEY_LAYER0 0
//#define MAGIC_KEY_LAYER1 1
//#define MAGIC_KEY_LAYER2 2
//#define MAGIC_KEY_LAYER3 3
//#define MAGIC_KEY_LAYER4 4
//#define MAGIC_KEY_LAYER5 5
//#define MAGIC_KEY_LAYER6 6
//#define MAGIC_KEY_LAYER7 7
//#define MAGIC_KEY_LAYER8 8
//#define MAGIC_KEY_LAYER9 9
//#define MAGIC_KEY_BOOTLOADER PAUSE
//#define MAGIC_KEY_LOCK CAPS
//#define MAGIC_KEY_EEPROM E
//#define MAGIC_KEY_NKRO N
//#define MAGIC_KEY_SLEEP_LED Z
/* /*
* Feature disable options * Feature disable options
* These options are also useful to firmware size reduction. * These options are also useful to firmware size reduction.
@@ -156,27 +88,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
//#define NO_ACTION_LAYER //#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING //#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT //#define NO_ACTION_ONESHOT
//#define NO_ACTION_MACRO
//#define NO_ACTION_FUNCTION
/* /* disable these deprecated features by default */
* MIDI options #define NO_ACTION_MACRO
*/ #define NO_ACTION_FUNCTION
/* enable basic MIDI features:
- MIDI notes can be sent when in Music mode is on
*/
//#define MIDI_BASIC
/* enable advanced MIDI features:
- MIDI notes can be added to the keymap
- Octave shift and transpose
- Virtual sustain, portamento, and modulation wheel
- etc.
*/
//#define MIDI_ADVANCED
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 1
#endif
+209 -12
View File
@@ -1,15 +1,212 @@
{ {
"keyboard_name": "AL1", "keyboard_name": "AL1",
"url": "", "url": "",
"maintainer": "qmk", "maintainer": "qmk",
"width": 20.5, "width": 20.5,
"height": 5.25, "height": 5.25,
"layouts": { "layouts": {
"LAYOUT": { "LAYOUT": {
"layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Insert", "x":15.25, "y":0}, {"label":"Num Lock", "x":16.5, "y":0}, {"label":"/", "x":17.5, "y":0}, {"label":"*", "x":18.5, "y":0}, {"label":"-", "x":19.5, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Delete", "x":15.25, "y":1}, {"label":"7", "x":16.5, "y":1}, {"label":"8", "x":17.5, "y":1}, {"label":"9", "x":18.5, "y":1}, {"label":"+", "x":19.5, "y":1, "h":2}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"4", "x":16.5, "y":2}, {"label":"5", "x":17.5, "y":2}, {"label":"6", "x":18.5, "y":2}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"Fn", "x":14, "y":3}, {"label":"↑", "x":15.25, "y":3.25}, {"label":"1", "x":16.5, "y":3}, {"label":"2", "x":17.5, "y":3}, {"label":"3", "x":18.5, "y":3}, {"label":"Enter", "x":19.5, "y":3, "h":2}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4}, {"label":"Alt", "x":2.25, "y":4, "w":1.25}, {"x":3.5, "y":4, "w":7}, {"label":"Alt", "x":10.5, "y":4, "w":1.25}, {"label":"Win", "x":11.75, "y":4}, {"label":"Menu", "x":12.75, "y":4, "w":1.25}, {"label":"←", "x":14.25, "y":4.25}, {"label":"↓", "x":15.25, "y":4.25}, {"label":"→", "x":16.25, "y":4.25}, {"label":"0", "x":17.5, "y":4}, {"label":".", "x":18.5, "y":4}] "layout": [
}, {"x": 0, "y": 0},
"LAYOUT_split_bs": { {"x": 1, "y": 0},
"layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"label":"Insert", "x":15.25, "y":0}, {"label":"Num Lock", "x":16.5, "y":0}, {"label":"/", "x":17.5, "y":0}, {"label":"*", "x":18.5, "y":0}, {"label":"-", "x":19.5, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Delete", "x":15.25, "y":1}, {"label":"7", "x":16.5, "y":1}, {"label":"8", "x":17.5, "y":1}, {"label":"9", "x":18.5, "y":1}, {"label":"+", "x":19.5, "y":1, "h":2}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"4", "x":16.5, "y":2}, {"label":"5", "x":17.5, "y":2}, {"label":"6", "x":18.5, "y":2}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"Fn", "x":14, "y":3}, {"label":"↑", "x":15.25, "y":3.25}, {"label":"1", "x":16.5, "y":3}, {"label":"2", "x":17.5, "y":3}, {"label":"3", "x":18.5, "y":3}, {"label":"Enter", "x":19.5, "y":3, "h":2}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4}, {"label":"Alt", "x":2.25, "y":4, "w":1.25}, {"x":3.5, "y":4, "w":7}, {"label":"Alt", "x":10.5, "y":4, "w":1.25}, {"label":"Win", "x":11.75, "y":4}, {"label":"Menu", "x":12.75, "y":4, "w":1.25}, {"label":"←", "x":14.25, "y":4.25}, {"label":"↓", "x":15.25, "y":4.25}, {"label":"→", "x":16.25, "y":4.25}, {"label":"0", "x":17.5, "y":4}, {"label":".", "x":18.5, "y":4}] {"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": 15.25, "y": 0},
{"x": 16.5, "y": 0},
{"x": 17.5, "y": 0},
{"x": 18.5, "y": 0},
{"x": 19.5, "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.25, "y": 1},
{"x": 16.5, "y": 1},
{"x": 17.5, "y": 1},
{"x": 18.5, "y": 1},
{"x": 19.5, "y": 1, "h": 2},
{"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": 16.5, "y": 2},
{"x": 17.5, "y": 2},
{"x": 18.5, "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.25, "y": 3.25},
{"x": 16.5, "y": 3},
{"x": 17.5, "y": 3},
{"x": 18.5, "y": 3},
{"x": 19.5, "y": 3, "h": 2},
{"x": 0, "y": 4, "w": 1.25},
{"x": 1.25, "y": 4},
{"x": 2.25, "y": 4, "w": 1.25},
{"x": 3.5, "y": 4, "w": 7},
{"x": 10.5, "y": 4, "w": 1.25},
{"x": 11.75, "y": 4},
{"x": 12.75, "y": 4, "w": 1.25},
{"x": 14.25, "y": 4.25},
{"x": 15.25, "y": 4.25},
{"x": 16.25, "y": 4.25},
{"x": 17.5, "y": 4},
{"x": 18.5, "y": 4}
]
},
"LAYOUT_split_bs": {
"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.25, "y": 0},
{"x": 16.5, "y": 0},
{"x": 17.5, "y": 0},
{"x": 18.5, "y": 0},
{"x": 19.5, "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.25, "y": 1},
{"x": 16.5, "y": 1},
{"x": 17.5, "y": 1},
{"x": 18.5, "y": 1},
{"x": 19.5, "y": 1, "h": 2},
{"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": 16.5, "y": 2},
{"x": 17.5, "y": 2},
{"x": 18.5, "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.25, "y": 3.25},
{"x": 16.5, "y": 3},
{"x": 17.5, "y": 3},
{"x": 18.5, "y": 3},
{"x": 19.5, "y": 3, "h": 2},
{"x": 0, "y": 4, "w": 1.25},
{"x": 1.25, "y": 4},
{"x": 2.25, "y": 4, "w": 1.25},
{"x": 3.5, "y": 4, "w": 7},
{"x": 10.5, "y": 4, "w": 1.25},
{"x": 11.75, "y": 4},
{"x": 12.75, "y": 4, "w": 1.25},
{"x": 14.25, "y": 4.25},
{"x": 15.25, "y": 4.25},
{"x": 16.25, "y": 4.25},
{"x": 17.5, "y": 4},
{"x": 18.5, "y": 4}
]
}
} }
}
} }
+15 -28
View File
@@ -13,36 +13,23 @@
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
#include QMK_KEYBOARD_H #include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(\ LAYOUT(
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,\ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_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_DELETE, KC_P7, KC_P8, KC_P9, KC_PPLS,\ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_P7, KC_P8, KC_P9, KC_PPLS,
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_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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, \ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPACE, MO(1), KC_RGUI, KC_RCTRL, KC_LEFT, KC_DOWN, KC_RIGHT, KC_P0, KC_PDOT ), KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT
),
[1] = LAYOUT(\ LAYOUT(
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_BSPC, KC_INS, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,\ _______, 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_TAB, KC_Q, KC_W, KC_E, RESET, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DELETE, KC_P7, KC_P8, KC_P9, KC_PPLS,\ _______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLSH, KC_RSFT, KC_TRNS, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPACE, KC_TRNS, KC_RGUI, KC_RCTRL, BL_TOGG, BL_DEC, BL_INC, KC_P0, KC_PDOT ), _______, _______, _______, _______, _______, _______, _______, BL_TOGG, BL_DEC, BL_INC, _______, _______
)
}; };
void matrix_init_user(void) {
}
void matrix_scan_user(void) {
}
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
return true;
}
void led_set_user(uint8_t usb_led) {
}
-1
View File
@@ -1 +0,0 @@
# The default keymap for al1
+31 -28
View File
@@ -1,32 +1,35 @@
/* Copyright 2018 MechMerlin
*
* 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 QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_split_bs(\ LAYOUT_split_bs(
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRAVE, KC_BSPC, KC_INS, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, \ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSPC, KC_INS, 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_DELETE, KC_P7, KC_P8, KC_P9, KC_PPLS,\ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_P7, KC_P8, KC_P9, KC_PPLS,
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_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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, \ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPACE, MO(1), KC_RGUI, KC_RCTRL, KC_LEFT, KC_DOWN, KC_RIGHT, KC_P0, KC_PDOT ), KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT
[1] = LAYOUT_split_bs(\ ),
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_GRAVE, KC_DELETE, KC_INS, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, \
KC_TAB, KC_Q, KC_W, KC_E, RESET, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DELETE, KC_P7, KC_P8, KC_P9, KC_PPLS,\ LAYOUT_split_bs(
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_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_DEL, _______, _______, _______, _______, _______,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLSH, KC_RSFT, KC_TRNS, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, \ _______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPACE, KC_TRNS, KC_RGUI, KC_RCTRL, BL_TOGG, BL_DEC, BL_INC, KC_P0, KC_PDOT ), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, BL_TOGG, BL_DEC, BL_INC, _______, _______
)
}; };
void matrix_init_user(void) {
}
void matrix_scan_user(void) {
}
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
return true;
}
void led_set_user(uint8_t usb_led) {
}
+83 -192
View File
@@ -1,201 +1,92 @@
#include <stdint.h>
#include <stdbool.h>
#include <avr/io.h>
#include <util/delay.h>
#include "print.h"
#include "debug.h"
#include "util.h"
#include "matrix.h" #include "matrix.h"
#ifndef DEBOUNCE #include "gpio.h"
# define DEBOUNCE 5
#endif
static uint8_t debouncing = DEBOUNCE;
static matrix_row_t matrix[MATRIX_ROWS];
static matrix_row_t matrix_debouncing[MATRIX_ROWS];
static uint8_t read_rows(void);
static void init_rows(void);
static void unselect_cols(void);
static void select_col(uint8_t col);
inline uint8_t matrix_rows(void) {
return MATRIX_ROWS;
}
inline uint8_t matrix_cols(void) {
return MATRIX_COLS;
}
__attribute__ ((weak))
void matrix_init_kb(void) {
matrix_init_user();
}
__attribute__ ((weak))
void matrix_scan_kb(void) {
matrix_scan_user();
}
__attribute__ ((weak))
void matrix_init_user(void) {
}
__attribute__ ((weak))
void matrix_scan_user(void) {
}
void matrix_init(void) {
// initialize row and col
unselect_cols();
init_rows();
// initialize matrix state: all keys off
for (uint8_t i=0; i < MATRIX_ROWS; i++) {
matrix[i] = 0;
matrix_debouncing[i] = 0;
}
matrix_init_quantum();
}
uint8_t matrix_scan(void) {
for (uint8_t col = 0; col < MATRIX_COLS; col++) {
select_col(col);
_delay_us(3);
uint8_t rows = read_rows();
for (uint8_t row = 0; row < MATRIX_ROWS; row++) {
bool prev_bit = matrix_debouncing[row] & ((matrix_row_t)1<<col);
bool curr_bit = rows & (1<<row);
if (prev_bit != curr_bit) {
matrix_debouncing[row] ^= ((matrix_row_t)1<<col);
debouncing = DEBOUNCE;
}
}
unselect_cols();
}
if (debouncing) {
if (--debouncing) {
_delay_ms(1);
} else {
for (uint8_t i = 0; i < MATRIX_ROWS; i++) {
matrix[i] = matrix_debouncing[i];
}
}
}
matrix_scan_quantum();
return 1;
}
bool matrix_is_modified(void) {
if (debouncing)
return false;
else
return true;
}
inline bool matrix_is_on(uint8_t row, uint8_t col) {
return (matrix[row] & ((matrix_row_t)1<<col));
}
inline matrix_row_t matrix_get_row(uint8_t row) {
return matrix[row];
}
void matrix_print(void) {
print("\nr/c 0123456789ABCDEF\n");
for (uint8_t row = 0; row < MATRIX_ROWS; row++) {
xprintf("%02X: %032lb\n", row, bitrev32(matrix_get_row(row)));
}
}
uint8_t matrix_key_count(void) {
uint8_t count = 0;
for (uint8_t i = 0; i < MATRIX_ROWS; i++) {
count += bitpop32(matrix[i]);
}
return count;
}
/* Row pin configuration
*
* row: 0 1 2 3 4 5
* pin: C7 B1 B2 C6 B4 B5
*
*/
static void init_rows(void)
{
DDRC &= ~0b11000000;
DDRB &= ~0b00110110;
PORTC |= 0b11000000;
PORTB |= 0b00110110;
}
static uint8_t read_rows(void) { static uint8_t read_rows(void) {
return (PINC&(1<<PC7) ? 0 : (1<<0)) | return (readPin(C7) ? 0 : 1) |
(PINB&(1<<PB1) ? 0 : (1<<1)) | (readPin(B1) ? 0 : 2) |
(PINB&(1<<PB2) ? 0 : (1<<2)) | (readPin(B2) ? 0 : 4) |
(PINC&(1<<PC6) ? 0 : (1<<3)) | (readPin(C6) ? 0 : 8) |
(PINB&(1<<PB4) ? 0 : (1<<4)) | (readPin(B4) ? 0 : 16) |
(PINB&(1<<PB5) ? 0 : (1<<5)); (readPin(B5) ? 0 : 32);
}
/* Row pin configuration
* pin: D3 D7 D6 D5 D4
* row: off 0 x x x x
* 0 1 0 0 0 0
* 1 1 0 0 0 1
* 2 1 0 0 1 0
* 3 1 0 0 1 1
* 4 1 0 1 0 0
* 5 1 0 1 0 1
* 6 1 0 1 1 0
* 7 1 0 1 1 1
* 8 1 1 0 0 0
* 9 1 1 0 0 1
* 10 1 1 0 1 0
* 11 1 1 0 1 1
* 12 1 1 1 0 0
* 13 1 1 1 0 1
* 14 1 1 1 1 0
* 15 1 1 1 1 1
*/
static void unselect_cols(void)
{
// output high(DDR:1, PORT:1) to unselect
DDRB |= (1 << PD3);
PORTB |= (1 << PD3);
} }
static void select_col(uint8_t col) { static void select_col(uint8_t col) {
DDRD |= (1<<PD3 | 1<<PD4 | 1<<PD5 | 1<<PD6 | 1<<PD7); writePinLow(D3);
PORTD &= ~(1<<PD3); writePin(D4, (col & 1));
writePin(D5, (col & 2));
if (col & (1<<0)) { writePin(D6, (col & 4));
PORTD |= (1<<PD4); writePin(D7, (col & 8));
} }
else {
PORTD &= ~(1<<PD4); static void unselect_cols(void) {
} writePinHigh(D3);
if (col & (1<<1)) { }
PORTD |= (1<<PD5);
} void matrix_init_custom(void) {
else { /* 74HC154 col pin configuration
PORTD &= ~(1<<PD5); * pin: D3 D7 D6 D5 D4
} * row: off 0 x x x x
if (col & (1<<2)) { * 0 1 0 0 0 0
PORTD |= (1<<PD6); * 1 1 0 0 0 1
} * 2 1 0 0 1 0
else { * 3 1 0 0 1 1
PORTD &= ~(1<<PD6); * 4 1 0 1 0 0
} * 5 1 0 1 0 1
if (col & (1<<3)) { * 6 1 0 1 1 0
PORTD |= (1<<PD7); * 7 1 0 1 1 1
} * 8 1 1 0 0 0
else { * 9 1 1 0 0 1
PORTD &= ~(1<<PD7); * 10 1 1 0 1 0
} * 11 1 1 0 1 1
* 12 1 1 1 0 0
* 13 1 1 1 0 1
* 14 1 1 1 1 0
* 15 1 1 1 1 1
*/
setPinOutput(D3);
writePinHigh(D3);
setPinOutput(D4);
setPinOutput(D5);
setPinOutput(D6);
setPinOutput(D7);
/* Row pin configuration
*
* row: 0 1 2 3 4 5
* pin: C7 B1 B2 C6 B4 B5
*
*/
setPinInputHigh(C7);
setPinInputHigh(B1);
setPinInputHigh(B2);
setPinInputHigh(C6);
setPinInputHigh(B4);
setPinInputHigh(B5);
}
bool matrix_scan_custom(matrix_row_t current_matrix[]) {
bool changed = false;
for (uint8_t col = 0; col < MATRIX_COLS; col++) {
select_col(col);
matrix_io_delay();
uint8_t rows = read_rows();
for (uint8_t row = 0; row < MATRIX_ROWS; row++) {
bool prev_bit = current_matrix[row] & ((matrix_row_t)1 << col);
bool curr_bit = rows & (1 << row);
if (prev_bit != curr_bit) {
current_matrix[row] ^= ((matrix_row_t)1 << col);
changed = true;
}
}
unselect_cols();
}
return changed;
} }
+4 -7
View File
@@ -2,15 +2,12 @@
![AL1](imgur.com image replace me!) ![AL1](imgur.com image replace me!)
Keyboard Maintainer: [MechMerlin](https://github.com/mechmerlin), [Olivia](https://github.com/olivia) * Keyboard Maintainer: [MechMerlin](https://github.com/mechmerlin), [Olivia](https://github.com/olivia)
Hardware Supported: AL1 PCB * Hardware Supported: AL1 PCB
Hardware Availability: [GroupBuy](https://geekhack.org/index.php?topic=93258.0) * Hardware Availability: [GroupBuy](https://geekhack.org/index.php?topic=93258.0)
Ported from [TriangleLab](https://github.com/TriangleLab)'s repo: https://github.com/TriangleLab/AL1-Firmware/tree/master/keyboards/al1
Make example for this keyboard (after setting up your build environment): Make example for this keyboard (after setting up your build environment):
make al1:default make al1:default
make al1:splitbs
See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. 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).
+7 -15
View File
@@ -2,19 +2,12 @@
MCU = atmega32u4 MCU = atmega32u4
# Bootloader selection # Bootloader selection
# Teensy halfkay
# Pro Micro caterina
# Atmel DFU atmel-dfu
# LUFA DFU lufa-dfu
# QMK DFU qmk-dfu
# ATmega32A bootloadHID
# ATmega328P USBasp
BOOTLOADER = atmel-dfu BOOTLOADER = atmel-dfu
# Build Options # Build Options
# change yes to no to disable # change yes to no to disable
# #
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
MOUSEKEY_ENABLE = yes # Mouse keys MOUSEKEY_ENABLE = yes # Mouse keys
EXTRAKEY_ENABLE = yes # Audio control and System control EXTRAKEY_ENABLE = yes # Audio control and System control
CONSOLE_ENABLE = yes # Console for debug CONSOLE_ENABLE = yes # Console for debug
@@ -23,11 +16,10 @@ COMMAND_ENABLE = yes # Commands for debug and configuration
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend 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 # if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = no # USB Nkey Rollover NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
MIDI_ENABLE = no # MIDI support BLUETOOTH_ENABLE = no # Enable Bluetooth
UNICODE_ENABLE = no # Unicode AUDIO_ENABLE = no # Audio output
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6 CUSTOM_MATRIX = lite
CUSTOM_MATRIX = yes
SRC += matrix.c SRC += matrix.c
-29
View File
@@ -14,33 +14,4 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
#include "alu84.h" #include "alu84.h"
#include "rgblight.h"
#include "action_layer.h"
#include "quantum.h"
#include "action.h"
void matrix_scan_kb(void) {
// put your looping keyboard code here
// runs every cycle (a lot)
matrix_scan_user();
}
bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
// put your per-action keyboard code here
// runs for every action, just before processing by the firmware
return process_record_user(keycode, record);
}
void led_set_kb(uint8_t usb_led) {
// put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
led_set_user(usb_led);
}
+15 -19
View File
@@ -14,28 +14,24 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
#pragma once
#ifndef ALU84_H
#define ALU84_H
#include "quantum.h" #include "quantum.h"
#define ___ KC_NO
#define LAYOUT_75_ansi( \
#define LAYOUT( \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \
K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, \ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, K1F, \
K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K114, K115, \ K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, \
K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, \ K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3F, \
K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K315, \ K40, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4D, K4E, K4F, \
K400, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K413, K414, K415, \ K50, K51, K53, K56, K5A, K5B, K5C, K5D, K5E, K5F \
K500, K501, K503, K506, K510, K511, K512, K513, K514, K515 \
) { \ ) { \
{ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015 }, \ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \
{ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, KC_NO, K114, K115 }, \ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, ___, K1E, K1F }, \
{ K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215 }, \ { K20, ___, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F }, \
{ K300, KC_NO, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, KC_NO, K315 }, \ { K30, ___, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, ___, K3F }, \
{ K400, KC_NO, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, KC_NO, K413, K414, K415 }, \ { K40, ___, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, ___, K4D, K4E, K4F }, \
{ K500, K501, KC_NO, K503, KC_NO, KC_NO, K506, KC_NO, KC_NO, KC_NO, K510, K511, K512, K513, K514, K515 } \ { K50, K51, ___, K53, ___, ___, K56, ___, ___, ___, K5A, K5B, K5C, K5D, K5E, K5F } \
} }
#endif
+22 -20
View File
@@ -14,8 +14,7 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
#ifndef ALU84_CONFIG_H #pragma once
#define ALU84_CONFIG_H
#include "config_common.h" #include "config_common.h"
@@ -30,21 +29,37 @@
#define MATRIX_ROWS 6 #define MATRIX_ROWS 6
#define MATRIX_COLS 16 #define MATRIX_COLS 16
/* key matrix pins */ /*
* 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 { D0, D1, D2, D3, D5, B7 } #define MATRIX_ROW_PINS { D0, D1, D2, D3, D5, B7 }
#define MATRIX_COL_PINS { F0, F1, E6, C7, C6, F5, D4, B1, B0, B5, B4, D7, D6, B3, F4, F6 } #define MATRIX_COL_PINS { F0, F1, E6, C7, C6, F5, D4, B1, B0, B5, B4, D7, D6, B3, F4, F6 }
#define UNUSED_PINS #define UNUSED_PINS
/* COL2ROW or ROW2COL */ /* COL2ROW, ROW2COL */
#define DIODE_DIRECTION COL2ROW #define DIODE_DIRECTION COL2ROW
/* number of backlight levels */
#define BACKLIGHT_PIN B6 #define BACKLIGHT_PIN B6
#ifdef BACKLIGHT_PIN
#define BACKLIGHT_LEVELS 3 #define BACKLIGHT_LEVELS 3
#define BACKLIGHT_BREATHING
#define RGB_DI_PIN E2
#if defined(RGBLIGHT_ENABLE)
# define RGBLED_NUM 16
# define RGBLIGHT_HUE_STEP 10
# define RGBLIGHT_SAT_STEP 10
# define RGBLIGHT_VAL_STEP 10
# define RGBLIGHT_ANIMATIONS
#endif #endif
/* Set 0 if debouncing isn't needed */ /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 5 #define DEBOUNCE 5
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
@@ -52,16 +67,3 @@
/* Locking resynchronize hack */ /* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE #define LOCKING_RESYNC_ENABLE
#define RGB_DI_PIN E2
#ifdef RGB_DI_PIN
#define RGBLED_NUM 16
#define RGBLIGHT_HUE_STEP 10
#define RGBLIGHT_SAT_STEP 10
#define RGBLIGHT_VAL_STEP 10
#define RGBLIGHT_ANIMATIONS
#endif
#endif
+102 -9
View File
@@ -1,12 +1,105 @@
{ {
"keyboard_name": "ALU84", "keyboard_name": "ALU84",
"url": "", "url": "",
"maintainer": "qmk", "maintainer": "qmk",
"width": 16, "width": 16,
"height": 6, "height": 6,
"layouts": { "layout_aliases": {
"LAYOUT": { "LAYOUT": "LAYOUT_75_ansi"
"layout": [{"label":"K000", "x":0, "y":0}, {"label":"K001", "x":1, "y":0}, {"label":"K002", "x":2, "y":0}, {"label":"K003", "x":3, "y":0}, {"label":"K004", "x":4, "y":0}, {"label":"K005", "x":5, "y":0}, {"label":"K006", "x":6, "y":0}, {"label":"K007", "x":7, "y":0}, {"label":"K008", "x":8, "y":0}, {"label":"K009", "x":9, "y":0}, {"label":"K010", "x":10, "y":0}, {"label":"K011", "x":11, "y":0}, {"label":"K012", "x":12, "y":0}, {"label":"K013", "x":13, "y":0}, {"label":"K014", "x":14, "y":0}, {"label":"K015", "x":15, "y":0}, {"label":"K100", "x":0, "y":1}, {"label":"K101", "x":1, "y":1}, {"label":"K102", "x":2, "y":1}, {"label":"K103", "x":3, "y":1}, {"label":"K104", "x":4, "y":1}, {"label":"K105", "x":5, "y":1}, {"label":"K106", "x":6, "y":1}, {"label":"K107", "x":7, "y":1}, {"label":"K108", "x":8, "y":1}, {"label":"K109", "x":9, "y":1}, {"label":"K110", "x":10, "y":1}, {"label":"K111", "x":11, "y":1}, {"label":"K112", "x":12, "y":1}, {"label":"K114", "x":13, "y":1, "w":2}, {"label":"K115", "x":15, "y":1}, {"label":"K200", "x":0, "y":2, "w":1.5}, {"label":"K202", "x":1.5, "y":2}, {"label":"K203", "x":2.5, "y":2}, {"label":"K204", "x":3.5, "y":2}, {"label":"K205", "x":4.5, "y":2}, {"label":"K206", "x":5.5, "y":2}, {"label":"K207", "x":6.5, "y":2}, {"label":"K208", "x":7.5, "y":2}, {"label":"K209", "x":8.5, "y":2}, {"label":"K210", "x":9.5, "y":2}, {"label":"K211", "x":10.5, "y":2}, {"label":"K212", "x":11.5, "y":2}, {"label":"K213", "x":12.5, "y":2}, {"label":"K214", "x":13.5, "y":2, "w":1.5}, {"label":"K215", "x":15, "y":2}, {"label":"K300", "x":0, "y":3, "w":1.75}, {"label":"K302", "x":1.75, "y":3}, {"label":"K303", "x":2.75, "y":3}, {"label":"K304", "x":3.75, "y":3}, {"label":"K305", "x":4.75, "y":3}, {"label":"K306", "x":5.75, "y":3}, {"label":"K307", "x":6.75, "y":3}, {"label":"K308", "x":7.75, "y":3}, {"label":"K309", "x":8.75, "y":3}, {"label":"K310", "x":9.75, "y":3}, {"label":"K311", "x":10.75, "y":3}, {"label":"K312", "x":11.75, "y":3}, {"label":"K313", "x":12.75, "y":3, "w":2.25}, {"label":"K315", "x":15, "y":3}, {"label":"K400", "x":0, "y":4, "w":2.25}, {"label":"K402", "x":2.25, "y":4}, {"label":"K403", "x":3.25, "y":4}, {"label":"K404", "x":4.25, "y":4}, {"label":"K405", "x":5.25, "y":4}, {"label":"K406", "x":6.25, "y":4}, {"label":"K407", "x":7.25, "y":4}, {"label":"K408", "x":8.25, "y":4}, {"label":"K409", "x":9.25, "y":4}, {"label":"K410", "x":10.25, "y":4}, {"label":"K411", "x":11.25, "y":4}, {"label":"K413", "x":12.25, "y":4, "w":1.75}, {"label":"K414", "x":14, "y":4}, {"label":"K415", "x":15, "y":4}, {"label":"K500", "x":0, "y":5, "w":1.25}, {"label":"K501", "x":1.25, "y":5, "w":1.25}, {"label":"K503", "x":2.5, "y":5, "w":1.25}, {"label":"K506", "x":3.75, "y":5, "w":6.25}, {"label":"K510", "x":10, "y":5}, {"label":"K511", "x":11, "y":5}, {"label":"K512", "x":12, "y":5}, {"label":"K513", "x":13, "y":5}, {"label":"K514", "x":14, "y":5}, {"label":"K515", "x":15, "y":5}] },
"layouts": {
"LAYOUT_75_ansi": {
"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":"K04", "x":4, "y":0},
{"label":"K05", "x":5, "y":0},
{"label":"K06", "x":6, "y":0},
{"label":"K07", "x":7, "y":0},
{"label":"K08", "x":8, "y":0},
{"label":"K09", "x":9, "y":0},
{"label":"K0A", "x":10, "y":0},
{"label":"K0B", "x":11, "y":0},
{"label":"K0C", "x":12, "y":0},
{"label":"K0D", "x":13, "y":0},
{"label":"K0E", "x":14, "y":0},
{"label":"K0F", "x":15, "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":"K15", "x":5, "y":1},
{"label":"K16", "x":6, "y":1},
{"label":"K17", "x":7, "y":1},
{"label":"K18", "x":8, "y":1},
{"label":"K19", "x":9, "y":1},
{"label":"K1A", "x":10, "y":1},
{"label":"K1B", "x":11, "y":1},
{"label":"K1C", "x":12, "y":1},
{"label":"K1E", "x":13, "y":1, "w":2},
{"label":"K1F", "x":15, "y":1},
{"label":"K20", "x":0, "y":2, "w":1.5},
{"label":"K22", "x":1.5, "y":2},
{"label":"K23", "x":2.5, "y":2},
{"label":"K24", "x":3.5, "y":2},
{"label":"K25", "x":4.5, "y":2},
{"label":"K26", "x":5.5, "y":2},
{"label":"K27", "x":6.5, "y":2},
{"label":"K28", "x":7.5, "y":2},
{"label":"K29", "x":8.5, "y":2},
{"label":"K2A", "x":9.5, "y":2},
{"label":"K2B", "x":10.5, "y":2},
{"label":"K2C", "x":11.5, "y":2},
{"label":"K2D", "x":12.5, "y":2},
{"label":"K2E", "x":13.5, "y":2, "w":1.5},
{"label":"K2F", "x":15, "y":2},
{"label":"K30", "x":0, "y":3, "w":1.75},
{"label":"K32", "x":1.75, "y":3},
{"label":"K33", "x":2.75, "y":3},
{"label":"K34", "x":3.75, "y":3},
{"label":"K35", "x":4.75, "y":3},
{"label":"K36", "x":5.75, "y":3},
{"label":"K37", "x":6.75, "y":3},
{"label":"K38", "x":7.75, "y":3},
{"label":"K39", "x":8.75, "y":3},
{"label":"K3A", "x":9.75, "y":3},
{"label":"K3B", "x":10.75, "y":3},
{"label":"K3C", "x":11.75, "y":3},
{"label":"K3D", "x":12.75, "y":3, "w":2.25},
{"label":"K3F", "x":15, "y":3},
{"label":"K40", "x":0, "y":4, "w":2.25},
{"label":"K42", "x":2.25, "y":4},
{"label":"K43", "x":3.25, "y":4},
{"label":"K44", "x":4.25, "y":4},
{"label":"K45", "x":5.25, "y":4},
{"label":"K46", "x":6.25, "y":4},
{"label":"K47", "x":7.25, "y":4},
{"label":"K48", "x":8.25, "y":4},
{"label":"K49", "x":9.25, "y":4},
{"label":"K4A", "x":10.25, "y":4},
{"label":"K4B", "x":11.25, "y":4},
{"label":"K4D", "x":12.25, "y":4, "w":1.75},
{"label":"K4E", "x":14, "y":4},
{"label":"K4F", "x":15, "y":4},
{"label":"K50", "x":0, "y":5, "w":1.25},
{"label":"K51", "x":1.25, "y":5, "w":1.25},
{"label":"K53", "x":2.5, "y":5, "w":1.25},
{"label":"K56", "x":3.75, "y":5, "w":6.25},
{"label":"K5A", "x":10, "y":5},
{"label":"K5B", "x":11, "y":5},
{"label":"K5C", "x":12, "y":5},
{"label":"K5D", "x":13, "y":5},
{"label":"K5E", "x":14, "y":5},
{"label":"K5F", "x":15, "y":5}
]
}
} }
}
} }
+37 -92
View File
@@ -1,100 +1,45 @@
/* Copyright 2017 @TurboMech /u/TurboMech <discord> @A9entOran9e#6134
* 2021 QMK
*
* 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 QMK_KEYBOARD_H
#define _BL 0 enum layer_names {
#define _FN1 1 _BL,
_FN1,
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* BL [_BL] = LAYOUT_75_ansi(
* ,- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - . KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MUTE, KC_VOLD, KC_VOLU,
* | Esc | Scrn Brght Up | Scrn Bright Down | Expose | Launchpad | Show Desktop | Dock Hide Tog | Screen Capture | Shortcut | Shortcut | Shortcut| Shortcut | Play/Pause | Mute | Vol Up | Vol Down | KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME,
* |- - -+ - - - - - - - + - - - - - - - - -+ - - - -+ - - - - - + - - - - - - -+ - - - - - - - + - - - - - - - -+ - - - - -+ - - - - -+ - - - - + - - - - -+ - - - - - -+ - - -+ - - - -+ - - - - -| 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_PGUP,
* | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | + | Backspace | POWER | 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_PGDN,
* |- - -+ - - - - - - - + - - - - - - - - -+ - - - -+ - - - - - + - - - - - - -+ - - - - - - - + - - - - - - - -+ - - - - -+ - - - - -+ - - - - + - - - - -+ - - - - - -+ - - -+ - - - -+ - - - - -| 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_END,
* | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | Shortcut | KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
* |- - -+ - - - - - - - + - - - - - - - - -+ - - - -+ - - - - - + - - - - - - -+ - - - - - - - + - - - - - - - -+ - - - - -+ - - - - -+ - - - - + - - - - -+ - - - - - -+ - - -+ - - - -+ - - - - -| ),
* | CAPS | A | S | D | F | G | H | J | K | L | ; | ' | Enter | Pg Up |
* |- - -+ - - - - - - - + - - - - - - - - -+ - - - -+ - - - - - + - - - - - - -+ - - - - - - - + - - - - - - - -+ - - - - -+ - - - - -+ - - - - + - - - - -+ - - - - - -+ - - -+ - - - -+ - - - - -|
* | Shift | Z | X | C | V | B | N | M | , | . | / | Shift | Up | Pg Dn |
* |- - -+ - - - - - - - + - - - - - - - - -+ - - - -+ - - - - - + - - - - - - -+ - - - - - - - + - - - - - - - -+ - - - - -+ - - - - -+ - - - - + - - - - -+ - - - - - -+ - - -+ - - - -+ - - - - -|
* | Control | Option/Alt | Gui | Space | Gui | Opt | Fn (layer) | Left | Down | Right |
* `- - -+ - - - - - - - + - - - - - - - - -+ - - - -+ - - - - - + - - - - - - -+ - - - - - - - + - - - - - - - -+ - - - - -+ - - - - -+ - - - - + - - - - -+ - - - - - -+ - - -+ - - - -+ - - - - -'
*/
[_BL] = LAYOUT( [_FN1] = LAYOUT_75_ansi(
KC_ESC, KC_F14, KC_F15, LCTL(KC_UP), LCTL(KC_L), KC_F11, LALT(LGUI(KC_D)), LCTL(KC_S), LCTL(LSFT(KC_O)), LCTL(LGUI(KC_1)), LCTL(LGUI(KC_2)), LCTL(LGUI(KC_3)), KC_MPLY, KC_MUTE, KC_VOLD, KC_VOLU, _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, RESET,
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_POWER, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, _______,
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, LCTL(LGUI(KC_N)), _______, RGB_TOG, RGB_MOD, RGB_VAI, RGB_VAD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, _______, _______, _______, _______, _______, _______,
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_PGUP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC, KC_UP, KC_PGDN, _______, BL_TOGG, BL_INC, BL_DEC, BL_STEP, _______, _______, _______, _______, _______, _______, _______, _______, _______,
KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
),
/* FN1
* ,- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .
* | Quit All | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Trns | Trns | DFU RESET |
* |- - -+ - - - - - - - + - - - - - - - - -+ - - - -+ - - - - - + - - - - - - -+ - - - - - - - + - - - - - - - -+ - - - - -+ - - - - -+ - - - - + - - - - -+ - - - - - -+ - - -+ - - - -+ - - - - -|
* | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | DELETE | Lock Shrct |
* |- - -+ - - - - - - - + - - - - - - - - -+ - - - -+ - - - - - + - - - - - - -+ - - - - - - - + - - - - - - - -+ - - - - -+ - - - - -+ - - - - + - - - - -+ - - - - - -+ - - -+ - - - -+ - - - - -|
* | Trns | RGB Toggle | RGB Mode | RGB Increase | RGB Decrease | RGB Hue Inc | RGB Hue Dec | RGB Sat Inc | RGB Sat Dec | Trns | Trns | Trns | Trns | Trns | Trns |
* |- - -+ - - - - - - - + - - - - - - - - -+ - - - -+ - - - - - + - - - - - - -+ - - - - - - - + - - - - - - - -+ - - - - -+ - - - - -+ - - - - + - - - - -+ - - - - - -+ - - -+ - - - -+ - - - - -|
* | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns |
* |- - -+ - - - - - - - + - - - - - - - - -+ - - - -+ - - - - - + - - - - - - -+ - - - - - - - + - - - - - - - -+ - - - - -+ - - - - -+ - - - - + - - - - -+ - - - - - -+ - - -+ - - - -+ - - - - -|
* | Trns | Backlight Tog | Backlight Inc | Backlight Dec | Backlight Step | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns |
* |- - -+ - - - - - - - + - - - - - - - - -+ - - - -+ - - - - - + - - - - - - -+ - - - - - - - + - - - - - - - -+ - - - - -+ - - - - -+ - - - - + - - - - -+ - - - - - -+ - - -+ - - - -+ - - - - -|
* | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns |
* `- - -+ - - - - - - - + - - - - - - - - -+ - - - -+ - - - - - + - - - - - - -+ - - - - - - - + - - - - - - - -+ - - - - -+ - - - - -+ - - - - + - - - - -+ - - - - - -+ - - -+ - - - -+ - - - - -'
*/
[_FN1] = LAYOUT(
LALT(LGUI(KC_Q)), 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, RESET,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, LCTL(LALT(LGUI(KC_S))),
KC_TRNS, RGB_TOG, RGB_MOD, RGB_VAI, RGB_VAD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, 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, BL_TOGG, BL_INC, BL_DEC, BL_STEP, 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),
}; };
void matrix_init_user(void) {
}
void matrix_scan_user(void) {
}
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
return true;
}
void led_set_user(uint8_t usb_led) {
if (usb_led & (1 << USB_LED_NUM_LOCK)) {
} else {
}
if (usb_led & (1 << USB_LED_CAPS_LOCK)) {
DDRB |= (1 << 2); PORTB &= ~(1 << 2);
} else {
DDRB &= ~(1 << 2); PORTB &= ~(1 << 2);
}
if (usb_led & (1 << USB_LED_SCROLL_LOCK)) {
} else {
}
if (usb_led & (1 << USB_LED_COMPOSE)) {
} else {
}
if (usb_led & (1 << USB_LED_KANA)) {
} else {
}
}
+2 -7
View File
@@ -14,12 +14,7 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
#ifndef CONFIG_USER_H #pragma once
#define CONFIG_USER_H
#define TAPPING_TOGGLE 2
#include "../../config.h"
// place overrides here // place overrides here
#define TAPPING_TOGGLE 2
#endif
+17 -86
View File
@@ -1,4 +1,5 @@
/* Copyright 2017 @TurboMech /u/TurboMech <discord> @A9entOran9e#6134 /* Copyright 2017 @TurboMech /u/TurboMech <discord> @A9entOran9e#6134
* 2021 QMK
* *
* This program is free software: you can redistribute it and/or modify * 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 * it under the terms of the GNU General Public License as published by
@@ -14,12 +15,9 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
#include QMK_KEYBOARD_H #include QMK_KEYBOARD_H
#include "turbomech.h" #include "turbomech.h"
#define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT))
#define _QWERTY 0 //BASE layer #define _QWERTY 0 //BASE layer
#define _FUNCTION 1 //Function layer #define _FUNCTION 1 //Function layer
@@ -47,13 +45,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* `- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -' * `- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -'
*/ */
[_QWERTY] = LAYOUT( [_QWERTY] = LAYOUT_75_ansi(
KC_ESC, KC_F14, KC_F15, LCTL(KC_UP), LCTL(KC_L), KC_F11, LALT(LGUI(KC_D)), LCTL(KC_S), LCTL(LSFT(KC_O)), LCTL(LGUI(KC_1)), LCTL(LGUI(KC_2)), LCTL(LGUI(KC_3)), KC_MPLY, KC_MUTE, KC_VOLD, KC_VOLU, KC_ESC, KC_F14, KC_F15, C(KC_UP), C(KC_L), KC_F11, A(G(KC_D)), C(KC_S), C(S(KC_O)), C(G(KC_1)), C(G(KC_2)), C(G(KC_3)), KC_MPLY, KC_MUTE, KC_VOLD, KC_VOLU,
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_POWER, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_POWER,
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, LCTL(LGUI(KC_N)), 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, C(G(KC_N)),
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_PGUP, 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_PGUP,
KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC, KC_UP, KC_PGDN, KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC, KC_UP, KC_PGDN,
KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT), KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT
),
/* FN1 - SEE readme.md /* FN1 - SEE readme.md
* ,- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -. * ,- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -.
@@ -77,81 +76,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* `- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -' * `- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -'
*/ */
[_FUNCTION] = LAYOUT_75_ansi(
[_FUNCTION] = LAYOUT( A(G(KC_Q)), 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_RESET,
LALT(LGUI(KC_Q)), 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_RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, C(A(G(KC_S))),
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_DEL, LCTL(LALT(LGUI(KC_S))), _______, RGB_TOG, RGB_MOD, RGB_VAI, RGB_VAD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, _______, _______, _______, _______, _______, _______,
KC_TRNS, RGB_TOG, RGB_MOD, RGB_VAI, RGB_VAD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, 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, _______, BL_TOGG, BL_INC, BL_DEC, BL_STEP, _______, _______, _______, _______, _______, _______, _______, _______, _______,
KC_TRNS, BL_TOGG, BL_INC, BL_DEC, BL_STEP, 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), ),
}; };
void led_set_user(uint8_t usb_led) {
if (usb_led & (1 << USB_LED_NUM_LOCK)) {
} else {
}
if (usb_led & (1 << USB_LED_CAPS_LOCK)) {
DDRB |= (1 << 2); PORTB &= ~(1 << 2);
} else {
DDRB &= ~(1 << 2); PORTB &= ~(1 << 2);
}
if (usb_led & (1 << USB_LED_SCROLL_LOCK)) {
} else {
}
if (usb_led & (1 << USB_LED_COMPOSE)) {
} else {
}
if (usb_led & (1 << USB_LED_KANA)) {
} else {
}
}
enum function_id {
SHIFT_ESC,
};
const uint16_t PROGMEM fn_actions[] = {
[0] = ACTION_FUNCTION(SHIFT_ESC),
};
void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
static uint8_t shift_esc_shift_mask;
switch (id) {
case SHIFT_ESC:
shift_esc_shift_mask = get_mods()&MODS_CTRL_MASK;
if (record->event.pressed) {
if (shift_esc_shift_mask) {
add_key(KC_GRV);
send_keyboard_report();
} else {
add_key(KC_ESC);
send_keyboard_report();
}
} else {
if (shift_esc_shift_mask) {
del_key(KC_GRV);
send_keyboard_report();
} else {
del_key(KC_ESC);
send_keyboard_report();
}
}
break;
}
}
+2 -12
View File
@@ -1,12 +1,2 @@
BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000) SLEEP_LED_ENABLE = no
MOUSEKEY_ENABLE ?= no # Mouse keys(+4700) UNICODE_ENABLE = yes
EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
CONSOLE_ENABLE ?= no # Console for debug(+400)
COMMAND_ENABLE ?= no # Commands for debug and configuration
SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend
NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality
AUDIO_ENABLE ?= no
RGBLIGHT_ENABLE ?= yes
UNICODE_ENABLE ?= yes
+13 -8
View File
@@ -1,16 +1,21 @@
ALU84 # ALU84
===
![alu84](https://i.imgur.com/wBfazDc.jpg) ![alu84](https://i.imgur.com/wBfazDch.jpg)
A 75% keyboard made and sold by MECHKEYS [More info on MECHKEYS](https://mechkeys.ca). A 75% keyboard made and sold by MECHKEYS.
Keyboard Maintainer: [TurboMech](https://github.com/TurboMech) * Keyboard Maintainer: [The QMK Community](https://github.com/qmk)
Hardware Supported: ALU84 * Hardware Supported: ALU84
Hardware Availability: [MECHKEYS](https://mechkeys.ca) * Hardware Availability: [~~MECHKEYS~~](https://mechkeys.ca) (No longer available)
Make example for this keyboard (after setting up your build environment): Make example for this keyboard (after setting up your build environment):
make alu84:default make alu84:default
See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Flashing example for this keyboard:
make alu84:default:flash
To reset the board into bootloader mode, hold Space+B while plugging the cable in.
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).
+16 -18
View File
@@ -2,25 +2,23 @@
MCU = atmega32u4 MCU = atmega32u4
# Bootloader selection # Bootloader selection
# Teensy halfkay
# Pro Micro caterina
# Atmel DFU atmel-dfu
# LUFA DFU lufa-dfu
# QMK DFU qmk-dfu
# ATmega32A bootloadHID
# ATmega328P USBasp
BOOTLOADER = atmel-dfu BOOTLOADER = atmel-dfu
# Build Options # Build Options
# comment out to disable the options. # change yes to no to disable
# #
BOOTMAGIC_ENABLE = full # Virtual DIP switch configuration BOOTMAGIC_ENABLE = full # Virtual DIP switch configuration
MOUSEKEY_ENABLE = no # Mouse keys MOUSEKEY_ENABLE = no # Mouse keys
EXTRAKEY_ENABLE = yes # Audio control and System control EXTRAKEY_ENABLE = yes # Audio control and System control
CONSOLE_ENABLE = no # Console for debug CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration COMMAND_ENABLE = no # Commands for debug and configuration
SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality # if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
AUDIO_ENABLE = no NKRO_ENABLE = yes # USB Nkey Rollover
RGBLIGHT_ENABLE = yes BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
BLUETOOTH_ENABLE = no # Enable Bluetooth
AUDIO_ENABLE = no # Audio output
LAYOUTS = 75_ansi
+4 -4
View File
@@ -40,7 +40,7 @@
{ K40, K41, K42, KC_NO, KC_NO, KC_NO, KC_NO, K47, KC_NO, KC_NO, K4A, K4B, KC_NO, K4D, K4E, K4F }, \ { K40, K41, K42, KC_NO, KC_NO, KC_NO, KC_NO, K47, KC_NO, KC_NO, K4A, K4B, KC_NO, K4D, K4E, K4F }, \
} }
#define LAYOUT_ansi( \ #define LAYOUT_65_ansi_blocker( \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0F, \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0F, \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, K1F, \ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, K1F, \
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2F, \ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2F, \
@@ -55,7 +55,7 @@
{ K40, K41, K42, KC_NO, KC_NO, KC_NO, KC_NO, K47, KC_NO, KC_NO, K4A, K4B, KC_NO, K4D, K4E, K4F }, \ { K40, K41, K42, KC_NO, KC_NO, KC_NO, KC_NO, K47, KC_NO, KC_NO, K4A, K4B, KC_NO, K4D, K4E, K4F }, \
} }
#define LAYOUT_ansi_splitbs( \ #define LAYOUT_65_ansi_blocker_split_bs( \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, K1F, \ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, K1F, \
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2F, \ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2F, \
@@ -70,7 +70,7 @@
{ K40, K41, K42, KC_NO, KC_NO, KC_NO, KC_NO, K47, KC_NO, KC_NO, K4A, K4B, KC_NO, K4D, K4E, K4F }, \ { K40, K41, K42, KC_NO, KC_NO, KC_NO, KC_NO, K47, KC_NO, KC_NO, K4A, K4B, KC_NO, K4D, K4E, K4F }, \
} }
#define LAYOUT_iso( \ #define LAYOUT_65_iso_blocker( \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0F, \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0F, \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1F, \ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1F, \
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2E, K2F, \ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2E, K2F, \
@@ -85,7 +85,7 @@
{ K40, K41, K42, KC_NO, KC_NO, KC_NO, KC_NO, K47, KC_NO, KC_NO, K4A, K4B, KC_NO, K4D, K4E, K4F }, \ { K40, K41, K42, KC_NO, KC_NO, KC_NO, KC_NO, K47, KC_NO, KC_NO, K4A, K4B, KC_NO, K4D, K4E, K4F }, \
} }
#define LAYOUT_iso_splitbs( \ #define LAYOUT_65_iso_blocker_split_bs( \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1F, \ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1F, \
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2E, K2F, \ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2E, K2F, \
+389 -12
View File
@@ -3,18 +3,395 @@
"maintainer": "Lfgberg", "maintainer": "Lfgberg",
"width": 16, "width": 16,
"height": 5, "height": 5,
"layout_aliases": {
"LAYOUT_ansi": "LAYOUT_65_ansi_blocker",
"LAYOUT_ansi_splitbs": "LAYOUT_65_ansi_blocker_split_bs",
"LAYOUT_iso": "LAYOUT_65_iso_blocker",
"LAYOUT_iso_splitbs": "LAYOUT_65_iso_blocker_split_bs"
},
"layouts": { "layouts": {
"LAYOUT_ansi": { "LAYOUT_all": {
"layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Print", "x":15, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"PgUp", "x":15, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"PgDn", "x":15, "y":2}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"\u2191", "x":14, "y":3}, {"label":"Delete", "x":15, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"mo(1)", "x":11.25, "y":4, "w":1.25}, {"label":"\u2190", "x":13, "y":4}, {"label":"\u2193", "x":14, "y":4}, {"label":"\u2192", "x":15, "y":4}] "layout": [
}, {"label":"Esc", "x":0, "y":0},
"LAYOUT_ansi_splitbs": { {"label":"!", "x":1, "y":0},
"layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"~", "x":13, "y":0}, {"label":"Back", "x":14, "y":0}, {"label":"Print", "x":15, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"PgUp", "x":15, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"PgDn", "x":15, "y":2}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"\u2191", "x":14, "y":3}, {"label":"Delete", "x":15, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"mo(1)", "x":11.25, "y":4, "w":1.25}, {"label":"\u2190", "x":13, "y":4}, {"label":"\u2193", "x":14, "y":4}, {"label":"\u2192", "x":15, "y":4}] {"label":"@", "x":2, "y":0},
}, {"label":"#", "x":3, "y":0},
"LAYOUT_iso": { {"label":"$", "x":4, "y":0},
"layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Print", "x":15, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, {"label":"PgUp", "x":15, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"~", "x":12.75, "y":2}, {"label":"PgDn", "x":15, "y":2}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"label":"|", "x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"\u2191", "x":14, "y":3}, {"label":"Delete", "x":15, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"mo(1)", "x":11.25, "y":4, "w":1.25}, {"label":"\u2190", "x":13, "y":4}, {"label":"\u2193", "x":14, "y":4}, {"label":"\u2192", "x":15, "y":4}] {"label":"%", "x":5, "y":0},
}, {"label":"^", "x":6, "y":0},
"LAYOUT_iso_splitbs": { {"label":"&", "x":7, "y":0},
"layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"~", "x":13, "y":0}, {"label":"Back", "x":14, "y":0}, {"label":"Print", "x":15, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, {"label":"PgUp", "x":15, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"~", "x":12.75, "y":2}, {"label":"PgDn", "x":15, "y":2}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"label":"|", "x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"\u2191", "x":14, "y":3}, {"label":"Delete", "x":15, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"mo(1)", "x":11.25, "y":4, "w":1.25}, {"label":"\u2190", "x":13, "y":4}, {"label":"\u2193", "x":14, "y":4}, {"label":"\u2192", "x":15, "y":4}] {"label":"*", "x":8, "y":0},
} {"label":"(", "x":9, "y":0},
{"label":")", "x":10, "y":0},
{"label":"_", "x":11, "y":0},
{"label":"+", "x":12, "y":0},
{"label":"~", "x":13, "y":0},
{"label":"Back", "x":14, "y":0},
{"label":"Print", "x":15, "y":0},
{"label":"Tab", "x":0, "y":1, "w":1.5},
{"label":"Q", "x":1.5, "y":1},
{"label":"W", "x":2.5, "y":1},
{"label":"E", "x":3.5, "y":1},
{"label":"R", "x":4.5, "y":1},
{"label":"T", "x":5.5, "y":1},
{"label":"Y", "x":6.5, "y":1},
{"label":"U", "x":7.5, "y":1},
{"label":"I", "x":8.5, "y":1},
{"label":"O", "x":9.5, "y":1},
{"label":"P", "x":10.5, "y":1},
{"label":"{", "x":11.5, "y":1},
{"label":"}", "x":12.5, "y":1},
{"label":"|", "x":13.5, "y":1, "w":1.5},
{"label":"PgUp", "x":15, "y":1},
{"label":"Caps Lock", "x":0, "y":2, "w":1.75},
{"label":"A", "x":1.75, "y":2},
{"label":"S", "x":2.75, "y":2},
{"label":"D", "x":3.75, "y":2},
{"label":"F", "x":4.75, "y":2},
{"label":"G", "x":5.75, "y":2},
{"label":"H", "x":6.75, "y":2},
{"label":"J", "x":7.75, "y":2},
{"label":"K", "x":8.75, "y":2},
{"label":"L", "x":9.75, "y":2},
{"label":":", "x":10.75, "y":2},
{"label":"\"", "x":11.75, "y":2},
{"label":"ISO #/~", "x":16.25, "y":2},
{"label":"ANSI Enter", "x":12.75, "y":2, "w":2.25},
{"label":"ISO Enter", "x":17.25, "y":1, "w":1.25, "h":2},
{"label":"PgDn", "x":15, "y":2},
{"label":"Shift", "x":0, "y":3, "w":1.25},
{"label":"ISO \\/|", "x":1.25, "y":3},
{"label":"Z", "x":2.25, "y":3},
{"label":"X", "x":3.25, "y":3},
{"label":"C", "x":4.25, "y":3},
{"label":"V", "x":5.25, "y":3},
{"label":"B", "x":6.25, "y":3},
{"label":"N", "x":7.25, "y":3},
{"label":"M", "x":8.25, "y":3},
{"label":"<", "x":9.25, "y":3},
{"label":">", "x":10.25, "y":3},
{"label":"?", "x":11.25, "y":3},
{"label":"Shift", "x":12.25, "y":3, "w":1.75},
{"label":"Up", "x":14, "y":3},
{"label":"Delete", "x":15, "y":3},
{"label":"Ctrl", "x":0, "y":4, "w":1.25},
{"label":"Win", "x":1.25, "y":4, "w":1.25},
{"label":"Alt", "x":2.5, "y":4, "w":1.25},
{"label":"Space", "x":3.75, "y":4, "w":6.25},
{"label":"Alt", "x":10, "y":4, "w":1.25},
{"label":"MO(1)", "x":11.25, "y":4, "w":1.25},
{"label":"Left", "x":13, "y":4},
{"label":"Down", "x":14, "y":4},
{"label":"Right", "x":15, "y":4}
]
},
"LAYOUT_65_ansi_blocker": {
"layout": [
{"label":"Esc", "x":0, "y":0},
{"label":"!", "x":1, "y":0},
{"label":"@", "x":2, "y":0},
{"label":"#", "x":3, "y":0},
{"label":"$", "x":4, "y":0},
{"label":"%", "x":5, "y":0},
{"label":"^", "x":6, "y":0},
{"label":"&", "x":7, "y":0},
{"label":"*", "x":8, "y":0},
{"label":"(", "x":9, "y":0},
{"label":")", "x":10, "y":0},
{"label":"_", "x":11, "y":0},
{"label":"+", "x":12, "y":0},
{"label":"Backspace", "x":13, "y":0, "w":2},
{"label":"Print", "x":15, "y":0},
{"label":"Tab", "x":0, "y":1, "w":1.5},
{"label":"Q", "x":1.5, "y":1},
{"label":"W", "x":2.5, "y":1},
{"label":"E", "x":3.5, "y":1},
{"label":"R", "x":4.5, "y":1},
{"label":"T", "x":5.5, "y":1},
{"label":"Y", "x":6.5, "y":1},
{"label":"U", "x":7.5, "y":1},
{"label":"I", "x":8.5, "y":1},
{"label":"O", "x":9.5, "y":1},
{"label":"P", "x":10.5, "y":1},
{"label":"{", "x":11.5, "y":1},
{"label":"}", "x":12.5, "y":1},
{"label":"|", "x":13.5, "y":1, "w":1.5},
{"label":"PgUp", "x":15, "y":1},
{"label":"Caps Lock", "x":0, "y":2, "w":1.75},
{"label":"A", "x":1.75, "y":2},
{"label":"S", "x":2.75, "y":2},
{"label":"D", "x":3.75, "y":2},
{"label":"F", "x":4.75, "y":2},
{"label":"G", "x":5.75, "y":2},
{"label":"H", "x":6.75, "y":2},
{"label":"J", "x":7.75, "y":2},
{"label":"K", "x":8.75, "y":2},
{"label":"L", "x":9.75, "y":2},
{"label":":", "x":10.75, "y":2},
{"label":"\"", "x":11.75, "y":2},
{"label":"Enter", "x":12.75, "y":2, "w":2.25},
{"label":"PgDn", "x":15, "y":2},
{"label":"Shift", "x":0, "y":3, "w":2.25},
{"label":"Z", "x":2.25, "y":3},
{"label":"X", "x":3.25, "y":3},
{"label":"C", "x":4.25, "y":3},
{"label":"V", "x":5.25, "y":3},
{"label":"B", "x":6.25, "y":3},
{"label":"N", "x":7.25, "y":3},
{"label":"M", "x":8.25, "y":3},
{"label":"<", "x":9.25, "y":3},
{"label":">", "x":10.25, "y":3},
{"label":"?", "x":11.25, "y":3},
{"label":"Shift", "x":12.25, "y":3, "w":1.75},
{"label":"Up", "x":14, "y":3},
{"label":"Delete", "x":15, "y":3},
{"label":"Ctrl", "x":0, "y":4, "w":1.25},
{"label":"Win", "x":1.25, "y":4, "w":1.25},
{"label":"Alt", "x":2.5, "y":4, "w":1.25},
{"label":"Space", "x":3.75, "y":4, "w":6.25},
{"label":"Alt", "x":10, "y":4, "w":1.25},
{"label":"MO(1)", "x":11.25, "y":4, "w":1.25},
{"label":"Left", "x":13, "y":4},
{"label":"Down", "x":14, "y":4},
{"label":"Right", "x":15, "y":4}
]
},
"LAYOUT_65_ansi_blocker_split_bs": {
"layout": [
{"label":"Esc", "x":0, "y":0},
{"label":"!", "x":1, "y":0},
{"label":"@", "x":2, "y":0},
{"label":"#", "x":3, "y":0},
{"label":"$", "x":4, "y":0},
{"label":"%", "x":5, "y":0},
{"label":"^", "x":6, "y":0},
{"label":"&", "x":7, "y":0},
{"label":"*", "x":8, "y":0},
{"label":"(", "x":9, "y":0},
{"label":")", "x":10, "y":0},
{"label":"_", "x":11, "y":0},
{"label":"+", "x":12, "y":0},
{"label":"~", "x":13, "y":0},
{"label":"Back", "x":14, "y":0},
{"label":"Print", "x":15, "y":0},
{"label":"Tab", "x":0, "y":1, "w":1.5},
{"label":"Q", "x":1.5, "y":1},
{"label":"W", "x":2.5, "y":1},
{"label":"E", "x":3.5, "y":1},
{"label":"R", "x":4.5, "y":1},
{"label":"T", "x":5.5, "y":1},
{"label":"Y", "x":6.5, "y":1},
{"label":"U", "x":7.5, "y":1},
{"label":"I", "x":8.5, "y":1},
{"label":"O", "x":9.5, "y":1},
{"label":"P", "x":10.5, "y":1},
{"label":"{", "x":11.5, "y":1},
{"label":"}", "x":12.5, "y":1},
{"label":"|", "x":13.5, "y":1, "w":1.5},
{"label":"PgUp", "x":15, "y":1},
{"label":"Caps Lock", "x":0, "y":2, "w":1.75},
{"label":"A", "x":1.75, "y":2},
{"label":"S", "x":2.75, "y":2},
{"label":"D", "x":3.75, "y":2},
{"label":"F", "x":4.75, "y":2},
{"label":"G", "x":5.75, "y":2},
{"label":"H", "x":6.75, "y":2},
{"label":"J", "x":7.75, "y":2},
{"label":"K", "x":8.75, "y":2},
{"label":"L", "x":9.75, "y":2},
{"label":":", "x":10.75, "y":2},
{"label":"\"", "x":11.75, "y":2},
{"label":"Enter", "x":12.75, "y":2, "w":2.25},
{"label":"PgDn", "x":15, "y":2},
{"label":"Shift", "x":0, "y":3, "w":2.25},
{"label":"Z", "x":2.25, "y":3},
{"label":"X", "x":3.25, "y":3},
{"label":"C", "x":4.25, "y":3},
{"label":"V", "x":5.25, "y":3},
{"label":"B", "x":6.25, "y":3},
{"label":"N", "x":7.25, "y":3},
{"label":"M", "x":8.25, "y":3},
{"label":"<", "x":9.25, "y":3},
{"label":">", "x":10.25, "y":3},
{"label":"?", "x":11.25, "y":3},
{"label":"Shift", "x":12.25, "y":3, "w":1.75},
{"label":"Up", "x":14, "y":3},
{"label":"Delete", "x":15, "y":3},
{"label":"Ctrl", "x":0, "y":4, "w":1.25},
{"label":"Win", "x":1.25, "y":4, "w":1.25},
{"label":"Alt", "x":2.5, "y":4, "w":1.25},
{"label":"Space", "x":3.75, "y":4, "w":6.25},
{"label":"Alt", "x":10, "y":4, "w":1.25},
{"label":"MO(1)", "x":11.25, "y":4, "w":1.25},
{"label":"Left", "x":13, "y":4},
{"label":"Down", "x":14, "y":4},
{"label":"Right", "x":15, "y":4}
]
},
"LAYOUT_65_iso_blocker": {
"layout": [
{"label":"Esc", "x":0, "y":0},
{"label":"!", "x":1, "y":0},
{"label":"@", "x":2, "y":0},
{"label":"#", "x":3, "y":0},
{"label":"$", "x":4, "y":0},
{"label":"%", "x":5, "y":0},
{"label":"^", "x":6, "y":0},
{"label":"&", "x":7, "y":0},
{"label":"*", "x":8, "y":0},
{"label":"(", "x":9, "y":0},
{"label":")", "x":10, "y":0},
{"label":"_", "x":11, "y":0},
{"label":"+", "x":12, "y":0},
{"label":"Backspace", "x":13, "y":0, "w":2},
{"label":"Print", "x":15, "y":0},
{"label":"Tab", "x":0, "y":1, "w":1.5},
{"label":"Q", "x":1.5, "y":1},
{"label":"W", "x":2.5, "y":1},
{"label":"E", "x":3.5, "y":1},
{"label":"R", "x":4.5, "y":1},
{"label":"T", "x":5.5, "y":1},
{"label":"Y", "x":6.5, "y":1},
{"label":"U", "x":7.5, "y":1},
{"label":"I", "x":8.5, "y":1},
{"label":"O", "x":9.5, "y":1},
{"label":"P", "x":10.5, "y":1},
{"label":"{", "x":11.5, "y":1},
{"label":"}", "x":12.5, "y":1},
{"label":"PgUp", "x":15, "y":1},
{"label":"Caps Lock", "x":0, "y":2, "w":1.75},
{"label":"A", "x":1.75, "y":2},
{"label":"S", "x":2.75, "y":2},
{"label":"D", "x":3.75, "y":2},
{"label":"F", "x":4.75, "y":2},
{"label":"G", "x":5.75, "y":2},
{"label":"H", "x":6.75, "y":2},
{"label":"J", "x":7.75, "y":2},
{"label":"K", "x":8.75, "y":2},
{"label":"L", "x":9.75, "y":2},
{"label":":", "x":10.75, "y":2},
{"label":"\"", "x":11.75, "y":2},
{"label":"~", "x":12.75, "y":2},
{"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2},
{"label":"PgDn", "x":15, "y":2},
{"label":"Shift", "x":0, "y":3, "w":1.25},
{"label":"|", "x":1.25, "y":3},
{"label":"Z", "x":2.25, "y":3},
{"label":"X", "x":3.25, "y":3},
{"label":"C", "x":4.25, "y":3},
{"label":"V", "x":5.25, "y":3},
{"label":"B", "x":6.25, "y":3},
{"label":"N", "x":7.25, "y":3},
{"label":"M", "x":8.25, "y":3},
{"label":"<", "x":9.25, "y":3},
{"label":">", "x":10.25, "y":3},
{"label":"?", "x":11.25, "y":3},
{"label":"Shift", "x":12.25, "y":3, "w":1.75},
{"label":"Up", "x":14, "y":3},
{"label":"Delete", "x":15, "y":3},
{"label":"Ctrl", "x":0, "y":4, "w":1.25},
{"label":"Win", "x":1.25, "y":4, "w":1.25},
{"label":"Alt", "x":2.5, "y":4, "w":1.25},
{"label":"Space", "x":3.75, "y":4, "w":6.25},
{"label":"Alt", "x":10, "y":4, "w":1.25},
{"label":"MO(1)", "x":11.25, "y":4, "w":1.25},
{"label":"Left", "x":13, "y":4},
{"label":"Down", "x":14, "y":4},
{"label":"Right", "x":15, "y":4}
]
},
"LAYOUT_65_iso_blocker_split_bs": {
"layout": [
{"label":"Esc", "x":0, "y":0},
{"label":"!", "x":1, "y":0},
{"label":"@", "x":2, "y":0},
{"label":"#", "x":3, "y":0},
{"label":"$", "x":4, "y":0},
{"label":"%", "x":5, "y":0},
{"label":"^", "x":6, "y":0},
{"label":"&", "x":7, "y":0},
{"label":"*", "x":8, "y":0},
{"label":"(", "x":9, "y":0},
{"label":")", "x":10, "y":0},
{"label":"_", "x":11, "y":0},
{"label":"+", "x":12, "y":0},
{"label":"~", "x":13, "y":0},
{"label":"Back", "x":14, "y":0},
{"label":"Print", "x":15, "y":0},
{"label":"Tab", "x":0, "y":1, "w":1.5},
{"label":"Q", "x":1.5, "y":1},
{"label":"W", "x":2.5, "y":1},
{"label":"E", "x":3.5, "y":1},
{"label":"R", "x":4.5, "y":1},
{"label":"T", "x":5.5, "y":1},
{"label":"Y", "x":6.5, "y":1},
{"label":"U", "x":7.5, "y":1},
{"label":"I", "x":8.5, "y":1},
{"label":"O", "x":9.5, "y":1},
{"label":"P", "x":10.5, "y":1},
{"label":"{", "x":11.5, "y":1},
{"label":"}", "x":12.5, "y":1},
{"label":"PgUp", "x":15, "y":1},
{"label":"Caps Lock", "x":0, "y":2, "w":1.75},
{"label":"A", "x":1.75, "y":2},
{"label":"S", "x":2.75, "y":2},
{"label":"D", "x":3.75, "y":2},
{"label":"F", "x":4.75, "y":2},
{"label":"G", "x":5.75, "y":2},
{"label":"H", "x":6.75, "y":2},
{"label":"J", "x":7.75, "y":2},
{"label":"K", "x":8.75, "y":2},
{"label":"L", "x":9.75, "y":2},
{"label":":", "x":10.75, "y":2},
{"label":"\"", "x":11.75, "y":2},
{"label":"~", "x":12.75, "y":2},
{"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2},
{"label":"PgDn", "x":15, "y":2},
{"label":"Shift", "x":0, "y":3, "w":1.25},
{"label":"|", "x":1.25, "y":3},
{"label":"Z", "x":2.25, "y":3},
{"label":"X", "x":3.25, "y":3},
{"label":"C", "x":4.25, "y":3},
{"label":"V", "x":5.25, "y":3},
{"label":"B", "x":6.25, "y":3},
{"label":"N", "x":7.25, "y":3},
{"label":"M", "x":8.25, "y":3},
{"label":"<", "x":9.25, "y":3},
{"label":">", "x":10.25, "y":3},
{"label":"?", "x":11.25, "y":3},
{"label":"Shift", "x":12.25, "y":3, "w":1.75},
{"label":"Up", "x":14, "y":3},
{"label":"Delete", "x":15, "y":3},
{"label":"Ctrl", "x":0, "y":4, "w":1.25},
{"label":"Win", "x":1.25, "y":4, "w":1.25},
{"label":"Alt", "x":2.5, "y":4, "w":1.25},
{"label":"Space", "x":3.75, "y":4, "w":6.25},
{"label":"Alt", "x":10, "y":4, "w":1.25},
{"label":"MO(1)", "x":11.25, "y":4, "w":1.25},
{"label":"Left", "x":13, "y":4},
{"label":"Down", "x":14, "y":4},
{"label":"Right", "x":15, "y":4}
]
}
} }
} }
@@ -30,7 +30,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* `----------------------------------------------------------------' * `----------------------------------------------------------------'
*/ */
[0] = LAYOUT_ansi_splitbs( [0] = LAYOUT_65_ansi_blocker_split_bs(
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSPC, KC_PSCR, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSPC, KC_PSCR,
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_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP,
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_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN,
@@ -51,7 +51,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* `----------------------------------------------------------------' * `----------------------------------------------------------------'
*/ */
[1] = LAYOUT_ansi_splitbs( [1] = LAYOUT_65_ansi_blocker_split_bs(
RESET, 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, RESET, 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_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,
@@ -30,7 +30,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* `----------------------------------------------------------------' * `----------------------------------------------------------------'
*/ */
[0] = LAYOUT_ansi( [0] = LAYOUT_65_ansi_blocker(
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PSCR, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PSCR,
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_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP,
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_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN,
@@ -51,7 +51,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* `----------------------------------------------------------------' * `----------------------------------------------------------------'
*/ */
[1] = LAYOUT_ansi( [1] = LAYOUT_65_ansi_blocker(
RESET, 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, RESET, 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_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,
@@ -30,7 +30,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* `----------------------------------------------------------------' * `----------------------------------------------------------------'
*/ */
[0] = LAYOUT_iso( [0] = LAYOUT_65_iso_blocker(
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PSCR, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PSCR,
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_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_PGUP,
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_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_PGDN,
@@ -51,7 +51,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* `----------------------------------------------------------------' * `----------------------------------------------------------------'
*/ */
[1] = LAYOUT_iso( [1] = LAYOUT_65_iso_blocker(
RESET, 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, RESET, 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_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,
@@ -30,7 +30,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* `----------------------------------------------------------------' * `----------------------------------------------------------------'
*/ */
[0] = LAYOUT_iso_splitbs( [0] = LAYOUT_65_iso_blocker_split_bs(
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSPC, KC_PSCR, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSPC, KC_PSCR,
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_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_PGUP,
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_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_PGDN,
@@ -51,7 +51,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* `----------------------------------------------------------------' * `----------------------------------------------------------------'
*/ */
[1] = LAYOUT_iso_splitbs( [1] = LAYOUT_65_iso_blocker_split_bs(
RESET, 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, RESET, 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_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,
@@ -30,7 +30,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* `----------------------------------------------------------------' * `----------------------------------------------------------------'
*/ */
[0] = LAYOUT_ansi( [0] = LAYOUT_65_ansi_blocker(
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PSCR, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PSCR,
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_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP,
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_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN,
@@ -51,7 +51,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* `----------------------------------------------------------------' * `----------------------------------------------------------------'
*/ */
[1] = LAYOUT_ansi( [1] = LAYOUT_65_ansi_blocker(
RESET, 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, RESET, 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_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,
+45
View File
@@ -0,0 +1,45 @@
/* Copyright 2021 Salmon Cat Studio
*
* 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 0xCA75
#define PRODUCT_ID 0x4014
#define DEVICE_VER 0x0001
#define MANUFACTURER Salmon Cat Studio
#define PRODUCT Aozora
/* key matrix size */
#define MATRIX_ROWS 5
#define MATRIX_COLS 16
/*
* 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 { F6, F5, F4, F1, F0 }
#define MATRIX_COL_PINS { B0, B1, B2, B3, B7, D0, D1, D4, D6, D7, B4, B5, B6, C6, C7, F7 }
#define DIODE_DIRECTION COL2ROW
+17
View File
@@ -0,0 +1,17 @@
/* Copyright 2021 Salmon Cat Studio
*
* 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 "hotswap.h"
+34
View File
@@ -0,0 +1,34 @@
/* Copyright 2021 Salmon Cat Studio
*
* 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 LAYOUT( \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, \
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3D, K3E, K3F, \
K40, K41, K42, K44, K48, K49, K4A, K4D, K4E, K4F \
) { \
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F }, \
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO, K2D, KC_NO, KC_NO }, \
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, KC_NO, KC_NO, K3D, K3E, K3F }, \
{ K40, K41, K42, KC_NO, K44, KC_NO, KC_NO, KC_NO, K48, K49, K4A, KC_NO, KC_NO, K4D, K4E, K4F }, \
}
+83
View File
@@ -0,0 +1,83 @@
{
"keyboard_name": "Aozora",
"url": "https://salmoncat.studio/pages/aozora-%E9%9D%92%E7%A9%BA-6-9-21-7-10-21",
"maintainer": "Food",
"width": 17.25,
"height": 5,
"layouts": {
"LAYOUT": {
"layout": [
{"label":"K00 (F6,B0)", "x":0, "y":0},
{"label":"K01 (F6,B1)", "x":1, "y":0},
{"label":"K02 (F6,B2)", "x":2, "y":0},
{"label":"K03 (F6,B3)", "x":3, "y":0},
{"label":"K04 (F6,B7)", "x":4, "y":0},
{"label":"K05 (F6,D0)", "x":5, "y":0},
{"label":"K06 (F6,D1)", "x":6, "y":0},
{"label":"K07 (F6,D4)", "x":7, "y":0},
{"label":"K08 (F6,D6)", "x":8, "y":0},
{"label":"K09 (F6,D7)", "x":9, "y":0},
{"label":"K0A (F6,B4)", "x":10, "y":0},
{"label":"K0B (F6,B5)", "x":11, "y":0},
{"label":"K0C (F6,B6)", "x":12, "y":0},
{"label":"K0D (F6,C6)", "x":13, "y":0, "w":2},
{"label":"K0E (F6,C7)", "x":15.25, "y":0},
{"label":"K0F (F6,F7)", "x":16.25, "y":0},
{"label":"K10 (F5,B0)", "x":0, "y":1, "w":1.5},
{"label":"K11 (F5,B1)", "x":1.5, "y":1},
{"label":"K12 (F5,B2)", "x":2.5, "y":1},
{"label":"K13 (F5,B3)", "x":3.5, "y":1},
{"label":"K14 (F5,B7)", "x":4.5, "y":1},
{"label":"K15 (F5,D0)", "x":5.5, "y":1},
{"label":"K16 (F5,D1)", "x":6.5, "y":1},
{"label":"K17 (F5,D4)", "x":7.5, "y":1},
{"label":"K18 (F5,D6)", "x":8.5, "y":1},
{"label":"K19 (F5,D7)", "x":9.5, "y":1},
{"label":"K1A (F5,B4)", "x":10.5, "y":1},
{"label":"K1B (F5,B5)", "x":11.5, "y":1},
{"label":"K1C (F5,B6)", "x":12.5, "y":1},
{"label":"K1D (F5,C6)", "x":13.5, "y":1, "w":1.5},
{"label":"K1E (F5,C7)", "x":15.25, "y":1},
{"label":"K1F (F5,F7)", "x":16.25, "y":1},
{"label":"K20 (F4,B0)", "x":0, "y":2, "w":1.75},
{"label":"K21 (F4,B1)", "x":1.75, "y":2},
{"label":"K22 (F4,B2)", "x":2.75, "y":2},
{"label":"K23 (F4,B3)", "x":3.75, "y":2},
{"label":"K24 (F4,B7)", "x":4.75, "y":2},
{"label":"K25 (F4,D0)", "x":5.75, "y":2},
{"label":"K26 (F4,D1)", "x":6.75, "y":2},
{"label":"K27 (F4,D4)", "x":7.75, "y":2},
{"label":"K28 (F4,D6)", "x":8.75, "y":2},
{"label":"K29 (F4,D7)", "x":9.75, "y":2},
{"label":"K2A (F4,B4)", "x":10.75, "y":2},
{"label":"K2B (F4,B5)", "x":11.75, "y":2},
{"label":"K2D (F4,C6)", "x":12.75, "y":2, "w":2.25},
{"label":"K30 (F1,B0)", "x":0, "y":3, "w":2.25},
{"label":"K31 (F1,B1)", "x":2.25, "y":3},
{"label":"K32 (F1,B2)", "x":3.25, "y":3},
{"label":"K33 (F1,B3)", "x":4.25, "y":3},
{"label":"K34 (F1,B7)", "x":5.25, "y":3},
{"label":"K35 (F1,D0)", "x":6.25, "y":3},
{"label":"K36 (F1,D1)", "x":7.25, "y":3},
{"label":"K37 (F1,D4)", "x":8.25, "y":3},
{"label":"K38 (F1,D6)", "x":9.25, "y":3},
{"label":"K39 (F1,D7)", "x":10.25, "y":3},
{"label":"K3A (F1,B4)", "x":11.25, "y":3},
{"label":"K3D (F1,C6)", "x":12.25, "y":3, "w":2.75},
{"label":"K3E (F1,C7)", "x":15.25, "y":3},
{"label":"K3F (F1,F7)", "x":16.25, "y":3},
{"label":"K40 (F0,B0)", "x":0, "y":4, "w":1.25},
{"label":"K41 (F0,B1)", "x":1.25, "y":4, "w":1.25},
{"label":"K42 (F0,B2)", "x":2.5, "y":4, "w":1.25},
{"label":"K44 (F0,B7)", "x":3.75, "y":4, "w":6.25},
{"label":"K48 (F0,D6)", "x":10, "y":4, "w":1.25},
{"label":"K49 (F0,D7)", "x":11.25, "y":4, "w":1.25},
{"label":"K4A (F0,B4)", "x":12.5, "y":4, "w":1.25},
{"label":"K4D (F0,C6)", "x":14.25, "y":4},
{"label":"K4E (F0,C7)", "x":15.25, "y":4},
{"label":"K4F (F0,F7)", "x":16.25, "y":4}
]
}
}
,"meta": "https://noroadsleft.github.io/kbf_qmk_converter/"
}
@@ -0,0 +1,35 @@
/* Copyright 2021 Salmon Cat Studio
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PSCR, KC_PGUP,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_PGDN,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_UP, MO(1),
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_LALT, KC_LGUI, KC_LCTL, KC_LEFT, KC_DOWN, KC_RGHT
),
[1] = LAYOUT(
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_F13, KC_F14, KC_F15,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
),
};
+17
View File
@@ -0,0 +1,17 @@
# Aozora
A 65%-Style 6-Key keyboard featuring a cloud-shaped badge.
![SCS Aozora](https://i.imgur.com/dL5nonc.jpg)
* Keyboard Maintainer: [Food](https://github.com/Phooood)
* Hardware Supported: [Aozora](https://salmoncat.studio/pages/aozora-%E9%9D%92%E7%A9%BA-6-9-21-7-10-21)
* Hardware Availability: [salmoncat.studio](https://salmoncat.studio/pages/aozora-%E9%9D%92%E7%A9%BA-6-9-21-7-10-21) | GB is over.
Make example for this keyboard (after setting up your build environment):
make aozora/hotswap:default
To reset, press the button on the back of the PCB.
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).
+23
View File
@@ -0,0 +1,23 @@
# 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 = yes # Console for debug
COMMAND_ENABLE = yes # 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
+18 -2
View File
@@ -1,3 +1,19 @@
/* Copyright 2015 Jack Humbert
*
* 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 "atomic.h" #include "atomic.h"
void matrix_init_kb(void) { void matrix_init_kb(void) {
@@ -5,8 +21,8 @@ void matrix_init_kb(void) {
// runs once when the firmware starts up // runs once when the firmware starts up
// Turn status LED on // Turn status LED on
DDRE |= (1<<6); setPinOutput(E6);
PORTE |= (1<<6); writePinHigh(E6);
matrix_init_user(); matrix_init_user();
} }
+18 -10
View File
@@ -1,10 +1,22 @@
#ifndef ATOMIC_H /* Copyright 2015 Jack Humbert
#define ATOMIC_H *
* 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" #include "quantum.h"
#include <stddef.h>
#include <avr/io.h>
#include <avr/interrupt.h>
// This a shortcut to help you visually see your layout. // This a shortcut to help you visually see your layout.
// The following is an example using the Planck MIT layout // The following is an example using the Planck MIT layout
@@ -24,7 +36,7 @@
{ K40, K41, KC_NO, K43, KC_NO, KC_NO, K46, KC_NO, KC_NO, KC_NO, K4A, K4B, K4C, K4D, K4E } \ { K40, K41, KC_NO, K43, KC_NO, KC_NO, K46, KC_NO, KC_NO, KC_NO, K4A, K4B, K4C, K4D, K4E } \
} }
#define LAYOUT_grid( \ #define LAYOUT_ortho_5x15( \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E,\ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E,\
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E,\ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E,\
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E,\ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E,\
@@ -37,7 +49,3 @@
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \ { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \
{ K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4E } \ { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4E } \
} }
#define LAYOUT_ortho_5x15 LAYOUT_grid
#endif
+3 -54
View File
@@ -15,8 +15,7 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
#ifndef CONFIG_H #pragma once
#define CONFIG_H
#include "config_common.h" #include "config_common.h"
@@ -24,8 +23,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define VENDOR_ID 0xFEED #define VENDOR_ID 0xFEED
#define PRODUCT_ID 0x6060 #define PRODUCT_ID 0x6060
#define DEVICE_VER 0x0001 #define DEVICE_VER 0x0001
#define MANUFACTURER Ortholinear Keyboards #define MANUFACTURER OLKB
#define PRODUCT The Atomic Keyboard #define PRODUCT Atomic
/* key matrix size */ /* key matrix size */
#define MATRIX_ROWS 5 #define MATRIX_ROWS 5
@@ -85,54 +84,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
//#define FORCE_NKRO //#define FORCE_NKRO
/*
* Magic Key Options
*
* Magic keys are hotkey commands that allow control over firmware functions of
* the keyboard. They are best used in combination with the HID Listen program,
* found here: https://www.pjrc.com/teensy/hid_listen.html
*
* The options below allow the magic key functionality to be changed. This is
* useful if your keyboard/keypad is missing keys and you want magic key support.
*
*/
/* control how magic key switches layers */
//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
/* override magic key keymap */
//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
//#define MAGIC_KEY_HELP1 H
//#define MAGIC_KEY_HELP2 SLASH
//#define MAGIC_KEY_DEBUG D
//#define MAGIC_KEY_DEBUG_MATRIX X
//#define MAGIC_KEY_DEBUG_KBD K
//#define MAGIC_KEY_DEBUG_MOUSE M
//#define MAGIC_KEY_VERSION V
//#define MAGIC_KEY_STATUS S
//#define MAGIC_KEY_CONSOLE C
//#define MAGIC_KEY_LAYER0_ALT1 ESC
//#define MAGIC_KEY_LAYER0_ALT2 GRAVE
//#define MAGIC_KEY_LAYER0 0
//#define MAGIC_KEY_LAYER1 1
//#define MAGIC_KEY_LAYER2 2
//#define MAGIC_KEY_LAYER3 3
//#define MAGIC_KEY_LAYER4 4
//#define MAGIC_KEY_LAYER5 5
//#define MAGIC_KEY_LAYER6 6
//#define MAGIC_KEY_LAYER7 7
//#define MAGIC_KEY_LAYER8 8
//#define MAGIC_KEY_LAYER9 9
#define MAGIC_KEY_BOOTLOADER B
//#define MAGIC_KEY_LOCK CAPS
//#define MAGIC_KEY_EEPROM E
//#define MAGIC_KEY_NKRO N
//#define MAGIC_KEY_SLEEP_LED Z
/* /*
* Feature disable options * Feature disable options
* These options are also useful to firmware size reduction. * These options are also useful to firmware size reduction.
@@ -150,5 +101,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
//#define NO_ACTION_ONESHOT //#define NO_ACTION_ONESHOT
//#define NO_ACTION_MACRO //#define NO_ACTION_MACRO
//#define NO_ACTION_FUNCTION //#define NO_ACTION_FUNCTION
#endif
+165 -8
View File
@@ -1,11 +1,168 @@
{ {
"keyboard_name": "Atomic", "keyboard_name": "Atomic",
"maintainer": "qmk", "maintainer": "jackhumbert",
"width": 15, "width": 15,
"height": 5, "height": 5,
"layouts": { "layout_aliases": {
"LAYOUT_semi_standard": { "LAYOUT_grid": "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, "w":2}, {"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, "w":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, "w":2}, {"x":13, "y":3}, {"x":14, "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}, {"x":11, "y":4}, {"x":12, "y":4}, {"x":13, "y":4}, {"x":14, "y":4}] },
"layouts": {
"LAYOUT_semi_standard": {
"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},
{"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, "w":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, "w":2},
{"x":13, "y":3},
{"x":14, "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},
{"x":11, "y":4},
{"x":12, "y":4},
{"x":13, "y":4},
{"x":14, "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}
]
}
} }
}
} }
-18
View File
@@ -1,18 +0,0 @@
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_grid( /* Colemak */
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NO ,
KC_TAB, CM_Q, CM_W, CM_F, CM_P, CM_G, CM_J, CM_L, CM_U, CM_Y, CM_SCLN, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL ,
KC_BSPC, CM_A, CM_R, CM_S, CM_T, CM_D, CM_H, CM_N, CM_E, CM_I, CM_O, KC_QUOT, KC_ENT, KC_NO, KC_PGUP,
KC_LSFT, CM_Z, CM_X, CM_C, CM_V, CM_B, CM_K, CM_M, CM_COMM, CM_DOT, CM_SLSH, KC_RSFT, KC_NO, KC_UP, KC_PGDN,
KC_LCTL, KC_LGUI, KC_NO, KC_LALT, MO(1), KC_SPC, KC_NO, KC_RALT, MO(1), KC_RGUI, KC_NO, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT,
),
[1] = LAYOUT_grid( /* function */
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_BSPC, KC_NO ,
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_SLEP, 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_CALC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, KC_MPLY,
KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, MO(1), KC_TRNS, KC_NO, KC_TRNS, MO(1), KC_TRNS, KC_NO, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT,
),
};
+19
View File
@@ -0,0 +1,19 @@
#include QMK_KEYBOARD_H
#include "keymap_colemak.h"
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_ortho_5x15(/* Colemak */
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, XXXXXXX,
KC_TAB, CM_Q, CM_W, CM_F, CM_P, CM_G, CM_J, CM_L, CM_U, CM_Y, CM_SCLN, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
KC_BSPC, CM_A, CM_R, CM_S, CM_T, CM_D, CM_H, CM_N, CM_E, CM_I, CM_O, KC_QUOT, KC_ENT, XXXXXXX, KC_PGUP,
KC_LSFT, CM_Z, CM_X, CM_C, CM_V, CM_B, CM_K, CM_M, CM_COMM, CM_DOT, CM_SLSH, KC_RSFT, XXXXXXX, KC_UP, KC_PGDN,
KC_LCTL, KC_LGUI, XXXXXXX, KC_LALT, MO(1), KC_SPC, XXXXXXX, KC_RALT, MO(1), KC_RGUI, XXXXXXX, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
),
[1] = LAYOUT_ortho_5x15(/* function */
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_BSPC, XXXXXXX,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, KC_SLEP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, KC_CALC, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, KC_MPLY,
_______, _______, XXXXXXX, _______, MO(1), _______, XXXXXXX, _______, MO(1), _______, XXXXXXX, _______, KC_MPRV, KC_VOLD, KC_MNXT
),
};
+6 -6
View File
@@ -90,7 +90,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* '--------------------------------------------------------------------------------------------------------------------------------------' * '--------------------------------------------------------------------------------------------------------------------------------------'
*/ */
[_QW] = LAYOUT_grid( /* QWERTY */ [_QW] = LAYOUT_ortho_5x15( /* QWERTY */
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL , KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL ,
KC_ESC, 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_ENT, KC_PGUP, 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_ENT, KC_ENT, KC_PGUP,
@@ -112,7 +112,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* '--------------------------------------------------------------------------------------------------------------------------------------' * '--------------------------------------------------------------------------------------------------------------------------------------'
*/ */
[_CM] = LAYOUT_grid( /* COLEMAK */ [_CM] = LAYOUT_ortho_5x15( /* COLEMAK */
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC,
KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL , KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL ,
KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_ENT, KC_ENT, KC_PGUP, KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_ENT, KC_ENT, KC_PGUP,
@@ -134,7 +134,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* '--------------------------------------------------------------------------------------------------------------------------------------' * '--------------------------------------------------------------------------------------------------------------------------------------'
*/ */
[_DV] = LAYOUT_grid( /* DVORAK */ [_DV] = LAYOUT_ortho_5x15( /* DVORAK */
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC,
KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL , KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL ,
KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH, KC_ENT, KC_ENT, KC_PGUP, KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH, KC_ENT, KC_ENT, KC_PGUP,
@@ -156,7 +156,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* '--------------------------------------------------------------------------------------------------------------------------------------' * '--------------------------------------------------------------------------------------------------------------------------------------'
*/ */
[_LW] = LAYOUT_grid( /* LOWERED */ [_LW] = LAYOUT_ortho_5x15( /* LOWERED */
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ___T___, ___T___, _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ___T___, ___T___,
_______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, _______, _______, KC_INS , _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, _______, _______, KC_INS ,
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, ___T___, ___T___, _______, _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, ___T___, ___T___, _______,
@@ -178,7 +178,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* '--------------------------------------------------------------------------------------------------------------------------------------' * '--------------------------------------------------------------------------------------------------------------------------------------'
*/ */
[_RS] = LAYOUT_grid( /* RAISED */ [_RS] = LAYOUT_ortho_5x15( /* RAISED */
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ___T___, ___T___, _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ___T___, ___T___,
_______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, _______, _______, KC_INS , _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, _______, _______, KC_INS ,
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, ___T___, ___T___, _______, _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, ___T___, ___T___, _______,
@@ -200,7 +200,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* '--------------------------------------------------------------------------------------------------------------------------------------' * '--------------------------------------------------------------------------------------------------------------------------------------'
*/ */
[_FN] = LAYOUT_grid( /* FUNCTION */ [_FN] = LAYOUT_ortho_5x15( /* FUNCTION */
KC_NLCK, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ___T___, ___T___, KC_NLCK, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ___T___, ___T___,
KC_SLCK, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_PAUS, KC_PSCR, KC_SLCK, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_PAUS, KC_PSCR,
KC_CAPS, KC_BTN5, KC_BTN4, KC_BTN3, KC_BTN2, KC_ACL0, KC_ACL2, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY, _______, ___T___, ___T___, KC_WH_U, KC_CAPS, KC_BTN5, KC_BTN4, KC_BTN3, KC_BTN2, KC_ACL0, KC_ACL2, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY, _______, ___T___, ___T___, KC_WH_U,
-169
View File
@@ -1,169 +0,0 @@
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_grid( /* Dvorak */
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, KC_BSPC, KC_NO ,
// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐
// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘
// ┌─ 2u ────────────┐
// │ X │
// └─────────────────┘
KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_EQL, KC_INS, KC_DEL ,
// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐
// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘
// ┌─ 2u ────────────┐ ┌─ 2u ────────────┐
// │ X │ │ X │
// └─────────────────┘ └─────────────────┘
KC_CAPS, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, KC_ENT, KC_NO, KC_PGUP ,
// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐
// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘
// ┌─ 2u ────────────┐ ┌─ 2u ────────────┐
// │ X │ │ X │
// └─────────────────┘ └─────────────────┘
// ┌─ 2u ────────────┐
// │ X │
// └─────────────────┘
KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, KC_NO, KC_UP, KC_PGDN ,
// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐
// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘
// ┌─ 2u ────────────┐
// │ X │
// └─────────────────┘
// ┌─ 2u ────────────┐ ┌─ 2u ────────────┐
// │ X │ │ X │
// └─────────────────┘ └─────────────────┘
// ┌─ 2u ────────────┐
// │ X │
// └─────────────────┘
KC_LCTL, MO(1), KC_NO, KC_LALT, KC_NO, KC_NO, KC_SPC, KC_NO, KC_NO, KC_NO, KC_LGUI, MO(2), KC_LEFT, KC_DOWN, KC_RGHT ,
// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐
// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘
// ┌─ 1.25u ──┬ 1.25u ───┬─── 1.25u ┬─── 1.25u ─┬─ 2u ────────────┬─ 1.25u ──┬─ 1.25u ──┬─── 1.25u ┬──── 1.25u ┐
// │ X │ X │ X │ X │ X │ X │ X │ X │ X │
// └──────────┴──────────┴──────────┴───────────┴─────────────────┴──────────┴──────────┴──────────┴───────────┘
// ┌─ 2u ────────────┐
// │ X │
// └─────────────────┘
// ┌───────────────────── 6.25u ────────────────────────────┐
// │ X │
// └────────────────────────────────────────────────────────┘
// ┌─────────────────────── 6.25u ──────────────────────────┬─ 1.25u ──┬─ 1.25u ──┬─ 1.25u ──┬─── 1.25u ┬── 1.25u ──┐
// │ X │ X │ X │ X │ X │ X │
// └────────────────────────────────────────────────────────┴──────────┴──────────┴──────────┴──────────┴───────────┘
),
[1] = LAYOUT_grid( /* Qwerty + F keys */
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_BSPC, KC_NO ,
// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐
// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘
// ┌─ 2u ────────────┐
// │ X │
// └─────────────────┘
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_INS, KC_DEL ,
// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐
// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘
// ┌─ 2u ────────────┐ ┌─ 2u ────────────┐
// │ X │ │ X │
// └─────────────────┘ └─────────────────┘
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_ENT, KC_NO, KC_PGUP ,
// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐
// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘
// ┌─ 2u ────────────┐ ┌─ 2u ────────────┐
// │ X │ │ X │
// └─────────────────┘ └─────────────────┘
// ┌─ 2u ────────────┐
// │ X │
// └─────────────────┘
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_NO, KC_UP, KC_PGDN ,
// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐
// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘
// ┌─ 2u ────────────┐
// │ X │
// └─────────────────┘
// ┌─ 2u ────────────┐ ┌─ 2u ────────────┐
// │ X │ │ X │
// └─────────────────┘ └─────────────────┘
// ┌─ 2u ────────────┐
// │ X │
// └─────────────────┘
KC_LCTL, KC_TRNS, KC_NO, KC_LALT, KC_NO, KC_NO, KC_SPC, KC_NO, KC_NO, KC_NO, KC_LGUI, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT ,
// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐
// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘
// ┌─ 1.25u ──┬ 1.25u ───┬─── 1.25u ┬─── 1.25u ─┬─ 2u ────────────┬─ 1.25u ──┬─ 1.25u ──┬─── 1.25u ┬──── 1.25u ┐
// │ X │ X │ X │ X │ X │ X │ X │ X │ X │
// └──────────┴──────────┴──────────┴───────────┴─────────────────┴──────────┴──────────┴──────────┴───────────┘
// ┌─ 2u ────────────┐
// │ X │
// └─────────────────┘
// ┌───────────────────── 6.25u ────────────────────────────┐
// │ X │
// └────────────────────────────────────────────────────────┘
// ┌─────────────────────── 6.25u ──────────────────────────┬─ 1.25u ──┬─ 1.25u ──┬─ 1.25u ──┬─── 1.25u ┬── 1.25u ──┐
// │ X │ X │ X │ X │ X │ X │
// └────────────────────────────────────────────────────────┴──────────┴──────────┴──────────┴──────────┴───────────┘
),
[2] = LAYOUT_grid( /* Numpad + qwerty shortcut keys */
{ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_P7, KC_P8, KC_P9, KC_0, KC_LBRC, KC_RBRC, KC_BSPC, KC_NO ,
// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐
// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘
// ┌─ 2u ────────────┐
// │ X │
// └─────────────────┘
KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_P4, KC_P5, KC_P6, KC_L, KC_SLSH, KC_EQL, KC_INS, KC_DEL ,
// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐
// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘
// ┌─ 2u ────────────┐ ┌─ 2u ────────────┐
// │ X │ │ X │
// └─────────────────┘ └─────────────────┘
KC_CAPS, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_P1, KC_P2, KC_P3, KC_S, KC_MINS, KC_ENT, KC_NO, KC_PGUP ,
// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐
// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘
// ┌─ 2u ────────────┐ ┌─ 2u ────────────┐
// │ X │ │ X │
// └─────────────────┘ └─────────────────┘
// ┌─ 2u ────────────┐
// │ X │
// └─────────────────┘
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_X, KC_B, KC_P0, KC_P0, KC_PENT, KC_Z, KC_RSFT, KC_NO, KC_UP, KC_PGDN ,
// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐
// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘
// ┌─ 2u ────────────┐
// │ X │
// └─────────────────┘
// ┌─ 2u ────────────┐ ┌─ 2u ────────────┐
// │ X │ │ X │
// └─────────────────┘ └─────────────────┘
// ┌─ 2u ────────────┐
// │ X │
// └─────────────────┘
KC_LCTL, KC_TRNS, KC_NO, KC_LALT, KC_NO, KC_NO, KC_SPC, KC_NO, KC_NO, KC_NO, KC_LGUI, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT ,
// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐
// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘
// ┌─ 1.25u ──┬ 1.25u ───┬─── 1.25u ┬─── 1.25u ─┬─ 2u ────────────┬─ 1.25u ──┬─ 1.25u ──┬─── 1.25u ┬──── 1.25u ┐
// │ X │ X │ X │ X │ X │ X │ X │ X │ X │
// └──────────┴──────────┴──────────┴───────────┴─────────────────┴──────────┴──────────┴──────────┴───────────┘
// ┌─ 2u ────────────┐
// │ X │
// └─────────────────┘
// ┌───────────────────── 6.25u ────────────────────────────┐
// │ X │
// └────────────────────────────────────────────────────────┘
// ┌─────────────────────── 6.25u ──────────────────────────┬─ 1.25u ──┬─ 1.25u ──┬─ 1.25u ──┬─── 1.25u ┬── 1.25u ──┐
// │ X │ X │ X │ X │ X │ X │
// └────────────────────────────────────────────────────────┴──────────┴──────────┴──────────┴──────────┴───────────┘
),
};
@@ -0,0 +1,25 @@
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_ortho_5x15( /* Dvorak */
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, KC_BSPC, XXXXXXX,
KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_EQL, KC_INS, KC_DEL,
KC_CAPS, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, KC_ENT, XXXXXXX, KC_PGUP,
KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, XXXXXXX, KC_UP, KC_PGDN,
KC_LCTL, MO(1), XXXXXXX, KC_LALT, XXXXXXX, XXXXXXX, KC_SPC, XXXXXXX, XXXXXXX, XXXXXXX, KC_LGUI, MO(2), KC_LEFT, KC_DOWN, KC_RGHT
),
[1] = LAYOUT_ortho_5x15( /* Qwerty + F keys */
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_BSPC, XXXXXXX,
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_INS, KC_DEL,
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_ENT, XXXXXXX, KC_PGUP,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, XXXXXXX, KC_UP, KC_PGDN,
KC_LCTL, _______, XXXXXXX, KC_LALT, XXXXXXX, XXXXXXX, KC_SPC, XXXXXXX, XXXXXXX, XXXXXXX, KC_LGUI, _______, KC_LEFT, KC_DOWN, KC_RGHT
),
[2] = LAYOUT_ortho_5x15( /* Numpad + qwerty shortcut keys */
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_P7, KC_P8, KC_P9, KC_0, KC_LBRC, KC_RBRC, KC_BSPC, XXXXXXX,
KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_P4, KC_P5, KC_P6, KC_L, KC_SLSH, KC_EQL, KC_INS, KC_DEL,
KC_CAPS, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_P1, KC_P2, KC_P3, KC_S, KC_MINS, KC_ENT, XXXXXXX, KC_PGUP,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_X, KC_B, KC_P0, KC_P0, KC_PENT, KC_Z, KC_RSFT, XXXXXXX, KC_UP, KC_PGDN,
KC_LCTL, _______, XXXXXXX, KC_LALT, XXXXXXX, XXXXXXX, KC_SPC, XXXXXXX, XXXXXXX, XXXXXXX, KC_LGUI, _______, KC_LEFT, KC_DOWN, KC_RGHT
),
};
+6 -6
View File
@@ -122,7 +122,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
| LCTRL | LWIN | FN | LALT | UPPER | SPACE . SPACE | LOWER | OSHIFT | RALT | APP | RCTRL | LEFT | DOWN | RIGHT | | LCTRL | LWIN | FN | LALT | UPPER | SPACE . SPACE | LOWER | OSHIFT | RALT | APP | RCTRL | LEFT | DOWN | RIGHT |
'--------------------------------------------------------------------------------------------------------------------------------------' '--------------------------------------------------------------------------------------------------------------------------------------'
*/ */
[LAYER_QWERTY] = LAYOUT_grid( [LAYER_QWERTY] = LAYOUT_ortho_5x15(
KC_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSPC, KC_BSPC, KC_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSPC, KC_BSPC,
KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL , KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL ,
KC_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_ENT , KC_PGUP, 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_ENT , KC_PGUP,
@@ -142,7 +142,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
| ______ | ______ | ______ | ______ | UPPER | KP 0 . KP 0 | ______ | RALT | KP . | KP ENT | ______ | ______ | ______ | ______ | | ______ | ______ | ______ | ______ | UPPER | KP 0 . KP 0 | ______ | RALT | KP . | KP ENT | ______ | ______ | ______ | ______ |
'--------------------------------------------------------------------------------------------------------------------------------------' '--------------------------------------------------------------------------------------------------------------------------------------'
*/ */
[LAYER_UPPER] = LAYOUT_grid( [LAYER_UPPER] = LAYOUT_ortho_5x15(
KC_PSCR, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, XXXXXXX, XXXXXXX, _______, _______, KC_PSCR, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, XXXXXXX, XXXXXXX, _______, _______,
KC_PAUS, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_NLCK, KC_PSLS, KC_KP_7, KC_KP_8, KC_KP_9, KC_PMNS, _______, _______, _______, KC_INS , KC_PAUS, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_NLCK, KC_PSLS, KC_KP_7, KC_KP_8, KC_KP_9, KC_PMNS, _______, _______, _______, KC_INS ,
_______, KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_CAPS, KC_PAST, KC_KP_4, KC_KP_5, KC_KP_6, KC_PPLS, _______, _______, _______, KC_HOME, _______, KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_CAPS, KC_PAST, KC_KP_4, KC_KP_5, KC_KP_6, KC_PPLS, _______, _______, _______, KC_HOME,
@@ -162,7 +162,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
| ______ | ______ | ______ | ______ | ______ | ______ . ______ | LOWER | ______ | ______ | ______ | ______ | ______ | ______ | ______ | | ______ | ______ | ______ | ______ | ______ | ______ . ______ | LOWER | ______ | ______ | ______ | ______ | ______ | ______ | ______ |
'--------------------------------------------------------------------------------------------------------------------------------------' '--------------------------------------------------------------------------------------------------------------------------------------'
*/ */
[LAYER_LOWER] = LAYOUT_grid( [LAYER_LOWER] = LAYOUT_ortho_5x15(
KC_PSCR, 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_PSCR, 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_DLR , KC_LCBR, KC_LBRC, KC_LPRN, KC_PERC, KC_HASH, KC_RPRN, KC_RBRC, KC_RCBR, KC_AT , _______, _______, _______, KC_INS , _______, KC_DLR , KC_LCBR, KC_LBRC, KC_LPRN, KC_PERC, KC_HASH, KC_RPRN, KC_RBRC, KC_RCBR, KC_AT , _______, _______, _______, KC_INS ,
_______, KC_CIRC, KC_ASTR, KC_PLUS, KC_MINS, KC_SLSH, KC_BSLS, KC_UNDS, KC_QUOT, KC_DQT , KC_GRV , _______, _______, _______, KC_HOME, _______, KC_CIRC, KC_ASTR, KC_PLUS, KC_MINS, KC_SLSH, KC_BSLS, KC_UNDS, KC_QUOT, KC_DQT , KC_GRV , _______, _______, _______, KC_HOME,
@@ -182,7 +182,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
| ______ | ______ | FN | ______ | ______ | PLAY . PLAY | ______ | ______ | ______ | ______ | ______ | PREV | VOL DN | NEXT | | ______ | ______ | FN | ______ | ______ | PLAY . PLAY | ______ | ______ | ______ | ______ | ______ | PREV | VOL DN | NEXT |
'--------------------------------------------------------------------------------------------------------------------------------------' '--------------------------------------------------------------------------------------------------------------------------------------'
*/ */
[LAYER_FUNCTION] = LAYOUT_grid( [LAYER_FUNCTION] = LAYOUT_ortho_5x15(
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
XXXXXXX, KC_F13 , KC_F14 , KC_F15 , KC_F16 , KC_NLCK, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F13 , KC_F14 , KC_F15 , KC_F16 , KC_NLCK, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
XXXXXXX, KC_F17 , KC_F18 , KC_F19 , KC_F20 , KC_SLCK, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F17 , KC_F18 , KC_F19 , KC_F20 , KC_SLCK, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
@@ -202,7 +202,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
| ______ | ______ | ______ | ______ | ______ | MS BT1 . MS BT1 | ______ | ______ | ______ | ______ | ______ | MS L | MS D | MS R | | ______ | ______ | ______ | ______ | ______ | MS BT1 . MS BT1 | ______ | ______ | ______ | ______ | ______ | MS L | MS D | MS R |
'--------------------------------------------------------------------------------------------------------------------------------------' '--------------------------------------------------------------------------------------------------------------------------------------'
*/ */
[LAYER_MOUSE] = LAYOUT_grid( [LAYER_MOUSE] = LAYOUT_ortho_5x15(
KC_ESC , KC_ACL0, KC_ACL1, KC_ACL2, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_ESC , KC_ACL0, KC_ACL1, KC_ACL2, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, M_MS_UL, KC_MS_U, M_MS_UR, XXXXXXX, XXXXXXX, XXXXXXX, KC_WH_L, KC_WH_R, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, M_MS_UL, KC_MS_U, M_MS_UR, XXXXXXX, XXXXXXX, XXXXXXX, KC_WH_L, KC_WH_R,
XXXXXXX, KC_BTN5, KC_BTN4, KC_BTN3, KC_BTN2, XXXXXXX, XXXXXXX, KC_MS_L, XXXXXXX, KC_MS_R, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_WH_U, XXXXXXX, KC_BTN5, KC_BTN4, KC_BTN3, KC_BTN2, XXXXXXX, XXXXXXX, KC_MS_L, XXXXXXX, KC_MS_R, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_WH_U,
@@ -222,7 +222,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
| XXXXXX | XXXXXX | XXXXXX | XXXXXX | UPPER | XXXXXX . XXXXXX | LOWER | XXXXXX | XXXXXX | XXXXXX | XXXXXX | TEMPO- | VOICE- | TEMPO+ | | XXXXXX | XXXXXX | XXXXXX | XXXXXX | UPPER | XXXXXX . XXXXXX | LOWER | XXXXXX | XXXXXX | XXXXXX | XXXXXX | TEMPO- | VOICE- | TEMPO+ |
'--------------------------------------------------------------------------------------------------------------------------------------' '--------------------------------------------------------------------------------------------------------------------------------------'
*/ */
[LAYER_ADJUST] = LAYOUT_grid( [LAYER_ADJUST] = LAYOUT_ortho_5x15(
XXXXXXX, M_HELP1, M_HELP2, M_HELP3, M_HELP4, M_HELP5, M_HELP6, M_HELP7, M_HELP8, M_HELP9, XXXXXXX, MU_TOG , AU_TOG , XXXXXXX, XXXXXXX, XXXXXXX, M_HELP1, M_HELP2, M_HELP3, M_HELP4, M_HELP5, M_HELP6, M_HELP7, M_HELP8, M_HELP9, XXXXXXX, MU_TOG , AU_TOG , XXXXXXX, XXXXXXX,
XXXXXXX, M_BRTOG, M_BSPDU, M_BSPDD, M_BDFLT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, M_BRTOG, M_BSPDU, M_BSPDD, M_BDFLT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
-63
View File
@@ -1,63 +0,0 @@
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* QWERTY - MIT ENHANCED / GRID COMPATIBLE
* .---------------------------------------------------------------------------------------------------------------------- 2u ------------.
* | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | XXXXXX . BACKSP |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
* | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | DEL |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------|
* | LCTRL1 | A | S | D | F | G | H | J | K | L | ; | ' | XXXXXX . ENTER | PG UP |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------|
* | LSHIFT | Z | X | C | V | B | N | M | , | . | / | XXXXXX . RSHIFT | UP | PG DN |
* |--------+--------+--------+--------+--------+- 6.25u ---------+--------+--------+--------+--------+-----------------+--------+--------|
* | BRITE | LALT | FN | XXXXXX . SPACE | RCTRL | RALT | FN | LEFT | DOWN | RIGHT |
* '--------------------------------------------------------------------------------------------------------------------------------------'
*/
[0] = LAYOUT_grid( /* QWERTY */
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
KC_LCTL, 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_ENT, KC_PGUP,
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_RSFT, KC_UP, KC_PGDN,
M(0), KC_ALT, MO(1), KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RCTL, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT,
),
/* FUNCTION
* .---------------------------------------------------------------------------------------------------------------------- 2u ------------.
* | GRV | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | XXXXXX . |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
* | SCR LK | F13 | F14 | F15 | F16 | F17 | F18 | F19 | F20 | F21 | F22 | F23 | F24 | PAUSE | PR SCR |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------|
* | CAP LK | MS BT5 | MS BT4 | MS BT3 | MS BT2 | SLOW M | FAST M | NEXT | VOL+ | VOL- | PLAY | | XXXXXX . | WHEEL+ |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------|
* | NUM LK | | | | | | | | INSERT | END1 | HOME | XXXXXX . | MOUS U | WHEEL- |
* |--------+--------+--------+--------+--------+- 6.25 ------------+--------+--------+------+--------+-----------------+--------+--------|
* | | | FN | XXXXXX . MS BT1 | | | FN | MOUS L | MOUS D | MOUS R |
* '--------------------------------------------------------------------------------------------------------------------------------------'
*/
[1] = LAYOUT_grid( /* FUNCTION LAYER*/
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, ___T___, ___T___,
KC_SLCK, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_PAUS, KC_PSCR,
KC_CAPS, KC_BTN5, KC_BTN4, KC_BTN3, KC_BTN2, KC_ACL0, KC_ACL2, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY, _______, ___T___, ___T___, KC_WH_U,
KC_NLCK, _______, _______, _______, _______, _______, _______, _______, KC_INSERT, KC_END, KC_HOME, ___T___, ___T___, KC_MS_U, KC_WH_D,
_______, _______, MO(1), _______, _______, KC_BTN1, KC_BTN1, _______, _______, _______, _______, MO(1), KC_MS_L, KC_MS_D, KC_MS_R,
),
};
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
// MACRODOWN only works in this function
switch(id) {
case 0:
if (record->event.pressed) {
register_code(KC_RSFT);
#ifdef BACKLIGHT_ENABLE
backlight_step();
#endif
} else {
unregister_code(KC_RSFT);
}
break;
}
return MACRO_NONE;
};
@@ -0,0 +1,46 @@
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* QWERTY - MIT ENHANCED / GRID COMPATIBLE
* .---------------------------------------------------------------------------------------------------------------------- 2u ------------.
* | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | XXXXXX . BACKSP |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
* | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | DEL |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------|
* | LCTRL1 | A | S | D | F | G | H | J | K | L | ; | ' | XXXXXX . ENTER | PG UP |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------|
* | LSHIFT | Z | X | C | V | B | N | M | , | . | / | XXXXXX . RSHIFT | UP | PG DN |
* |--------+--------+--------+--------+--------+- 6.25u ---------+--------+--------+--------+--------+-----------------+--------+--------|
* | BRITE | LALT | FN | XXXXXX . SPACE | RCTRL | RALT | FN | LEFT | DOWN | RIGHT |
* '--------------------------------------------------------------------------------------------------------------------------------------'
*/
[0] = LAYOUT_ortho_5x15( /* QWERTY */
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
KC_LCTL, 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_ENT, KC_PGUP,
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_RSFT, KC_UP, KC_PGDN,
BL_STEP, KC_LALT, MO(1), KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RCTL, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT
),
/* FUNCTION
* .---------------------------------------------------------------------------------------------------------------------- 2u ------------.
* | GRV | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | XXXXXX . |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
* | SCR LK | F13 | F14 | F15 | F16 | F17 | F18 | F19 | F20 | F21 | F22 | F23 | F24 | PAUSE | PR SCR |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------|
* | CAP LK | MS BT5 | MS BT4 | MS BT3 | MS BT2 | SLOW M | FAST M | NEXT | VOL+ | VOL- | PLAY | | XXXXXX . | WHEEL+ |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------|
* | NUM LK | | | | | | | | INSERT | END1 | HOME | XXXXXX . | MOUS U | WHEEL- |
* |--------+--------+--------+--------+--------+- 6.25 ------------+--------+--------+------+--------+-----------------+--------+--------|
* | | | FN | XXXXXX . MS BT1 | | | FN | MOUS L | MOUS D | MOUS R |
* '--------------------------------------------------------------------------------------------------------------------------------------'
*/
[1] = LAYOUT_ortho_5x15( /* FUNCTION LAYER*/
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_SLCK, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_PAUS, KC_PSCR,
KC_CAPS, KC_BTN5, KC_BTN4, KC_BTN3, KC_BTN2, KC_ACL0, KC_ACL2, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY, _______, _______, _______, KC_WH_U,
KC_NLCK, _______, _______, _______, _______, _______, _______, _______, KC_INS, KC_END, KC_HOME, _______, _______, KC_MS_U, KC_WH_D,
_______, _______, MO(1), _______, _______, KC_BTN1, KC_BTN1, _______, _______, _______, _______, MO(1), KC_MS_L, KC_MS_D, KC_MS_R
),
};
+8 -18
View File
@@ -2,33 +2,23 @@
MCU = atmega32u4 MCU = atmega32u4
# Bootloader selection # Bootloader selection
# Teensy halfkay
# Pro Micro caterina
# Atmel DFU atmel-dfu
# LUFA DFU lufa-dfu
# QMK DFU qmk-dfu
# ATmega32A bootloadHID
# ATmega328P USBasp
BOOTLOADER = atmel-dfu BOOTLOADER = atmel-dfu
# Build Options # Build Options
# change to "no" to disable the options, or define them in the Makefile in # change yes to no to disable
# the appropriate keymap folder that will get included automatically
# #
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
MOUSEKEY_ENABLE = yes # Mouse keys MOUSEKEY_ENABLE = yes # Mouse keys
EXTRAKEY_ENABLE = yes # Audio control and System control EXTRAKEY_ENABLE = yes # Audio control and System control
CONSOLE_ENABLE = no # Console for debug CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
MIDI_ENABLE = no # MIDI controls
AUDIO_ENABLE = no # Audio output on port C6
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend 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
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
BLUETOOTH_ENABLE = no # Enable Bluetooth
AUDIO_ENABLE = no # Audio output
LAYOUTS = ortho_5x15 LAYOUTS = ortho_5x15
@@ -1,11 +1,51 @@
/* Copyright 2021 Joshua T.
*
* 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 #pragma once
// Layer definitions // Do not allow one macro to contain the other macro
#define DYNAMIC_MACRO_NO_NESTING
#define L_COLEMAK 0 // "THE most important tap hold configuration setting"
#define L_NUM 1 // https://precondition.github.io/home-row-mods#ignore-mod-tap-interrupt
#define L_EXTEND 2 // https://docs.qmk.fm/#/tap_hold?id=ignore-mod-tap-interrupt
#define L_FUNC 3 #define IGNORE_MOD_TAP_INTERRUPT
#define L_LL_R 4
#define L_LL_E 5 // This one is a style choice. Play with it both on and off to see which
#define L_LL_I 6 // one suits you better.
// https://precondition.github.io/home-row-mods#permissive-hold
// https://docs.qmk.fm/#/tap_hold?id=permissive-hold
#define PERMISSIVE_HOLD
// If you press a dual-role key for longer than TAPPING_TERM, then
// release it without pressing another key, without this setting nothing
// would happen. With this setting, it sends the key's tap function.
// https://precondition.github.io/home-row-mods#retro-tapping
#define RETRO_TAPPING
// Disable some unused features to save space
#undef LOCKING_SUPPORT_ENABLE
#undef LOCKING_RESYNC_ENABLE
/////
// Flags for stuff in my userspace
#define USER_INCLUDE_GAMING_LAYER
#define USER_INCLUDE_MACRO_LAYER
// "Super Alt-Tab"
// https://docs.qmk.fm/#/feature_macros?id=super-alt%E2%86%AFtab
#define USER_SUPER_ALT_TAB_TIMEOUT 500
@@ -1,78 +1,95 @@
/* /* Copyright 2021 Joshua T.
* Keyboard: Atreus *
* Keymap: replicaJunction * This program is free software: you can redistribute it and/or modify
* Version: 2.1 * 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 QMK_KEYBOARD_H
#include "replicaJunction.h" #include "replicaJunction.h"
#define BSP_SYM LT(L_SYMBOLS, KC_BSPC)
#define SPC_NAV LT(L_NAVIGATION, KC_SPC)
#define EQL_FUN LT(L_FN, KC_EQL)
#define ESC_SFT LSFT_T(KC_ESC)
#define TAB_SFT RSFT_T(KC_TAB)
#define DF_TYPE DF(L_BASE)
#define DF_GAME DF(L_GAMING)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[L_COLEMAK] = LAYOUT( [L_BASE] = LAYOUT(
KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_SCLN,
KC_A, KC_R_LT, KC_S_LT, KC_T, KC_G, KC_M, KC_N, KC_E_LT, KC_I_LT, KC_O, KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O,
KX_Z_MT, KX_X_MT, KX_C_MT, KX_D_MT, KC_V, KC_K, KX_H_MT, KX_COMT, KX_DOMT, KX_SLMT, KC_Z, KC_X, KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM,KC_DOT, KC_SLSH,
TD_LAYR, KC_LGUI, KC_TAB, KC_LSFT, KX_BKNM, KX_DCTL, KX_NALT, KX_SPAC, KC_RSFT, KC_MINS, KC_QUOT, KC_EQL KC_ESC, KC_LGUI,KC_TAB, ESC_SFT,BSP_SYM,CTL_DEL,ALT_ENT,SPC_NAV,TAB_SFT,KC_MINS,KC_QUOT,EQL_FUN
) ),
,
[L_NUM] = LAYOUT( [L_GAMING] = LAYOUT(
KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_SLSH, KC_COLN, KC_7, KC_8, KC_9, KC_SLSH, _______,_______,_______,_______,_______, _______,_______,_______,_______,_______,
KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_PIPE, KC_HASH, KC_4, KC_5, KC_6, KC_ASTR, _______,_______,_______,_______,_______, _______,_______,_______,_______,_______,
KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_BSLS, KC_BSPC, KC_1, KC_2, KC_3, KC_MINS, _______,_______,KC_C, KC_D, _______, _______,_______,_______,_______,_______,
_______, KC_AMPR, KC_TILD, KC_GRV, ooooooo, _______, KC_ENT, MO_FUNC, KC_0, KC_DOT, KC_EQL, KC_PLUS _______,KC_TAB, KC_LALT,KC_LSFT,KC_SPC, KC_LCTL,KC_LALT,KC_BSPC,KC_BTN1,KC_BTN2,KC_BTN3,_______
) ),
,
[L_EXTEND] = LAYOUT( [L_NUMBERS] = LAYOUT(
_______, _______, _______, KC_APP, KX_CGR, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_DEL, _______,_______,_______,_______,_______, KC_HASH,KC_7, KC_8, KC_9, KC_SLSH,
KC_LGUI, KC_LSFT, KC_LALT, KC_LCTL, _______, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_BSPC, _______,_______,_______,_______,_______, KC_PLUS,KC_4, KC_5, KC_6, KC_ASTR,
_______, _______, _______, KX_SRCH, KX_PAST, _______, KX_STAB, KC_TAB, _______, KC_INS, _______,_______,_______,_______,_______, KC_MINS,KC_1, KC_2, KC_3, KC_BSLS,
_______, _______, _______, _______, MO_FUNC, KC_DEL, KC_ENT, _______, _______, _______, _______, KC_PSCR _______,_______,_______,_______,_______,_______,_______,_______,KC_0, KC_0, KC_DOT, KC_ENT
) ),
,
[L_FUNC] = LAYOUT( [L_SYMBOLS] = LAYOUT(
_______, _______, M_LCLIK, M_RCLIK, M_MCLIK, KC_VOLU, KC_F9, KC_F10, KC_F11, KC_F12, KC_AT, KC_LT, KC_DLR, KC_GT, XXXXXXX, XXXXXXX,KC_LBRC,KC_UNDS,KC_RBRC,XXXXXXX,
KC_LGUI, KC_LSFT, KC_LALT, KC_LCTL, M_WHLUP, KC_MUTE, KC_F5, KC_F6, KC_F7, KC_F8, KC_BSLS,KC_LPRN,KC_DQUO,KC_RPRN,KC_HASH, KC_PERC,KC_LCBR,KC_EQL, KC_RCBR,KC_PIPE,
M_LEFT, M_DOWN, M_UP, M_RIGHT, M_WHLDN, KC_VOLD, KC_F1, KC_F2, KC_F3, KC_F4, KC_EXLM,KC_COLN,KC_ASTR,KC_PLUS,XXXXXXX, XXXXXXX,KC_AMPR,KC_CIRC,KC_TILD,KC_GRV,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ _______,_______,_______,_______,ooooooo,_______,_______,ooooooo,CAPWORD,_______,_______,_______
) ),
,
[L_LL_R] = LAYOUT( [L_NAVIGATION] = LAYOUT(
_______, _______, _______, _______, _______, KC_COLN, KC_P7, KC_P8, KC_P9, KC_PSLS, OS_UNDO,OS_CUT, OS_PAST,OS_COPY,OS_SALL, KC_PGUP,KC_HOME,KC_UP, KC_END, KC_DEL,
_______, ooooooo, KC_AMPR, KC_PIPE, _______, KC_HASH, KC_P4, KC_P5, KC_P6, KC_PAST, KC_LGUI,KC_LALT,KC_LSFT,KC_LCTL,_______, KC_PGDN,KC_LEFT,KC_DOWN,KC_RGHT,KC_BSPC,
_______, _______, _______, _______, _______, KC_BSPC, KC_P1, KC_P2, KC_P3, KC_PMNS, WIN_V, _______,_______,OS_FIND,SEARCH, _______,SFT_TAB,KC_TAB, KC_APP, KC_PSCR,
_______, _______, _______, _______, _______, _______, _______, _______, KC_0, KC_DOT, KC_EQL, KC_PLUS _______,_______,_______,NUMWORD,ooooooo,_______,_______,ooooooo,_______,_______,_______,_______
) ),
,
[L_LL_E] = LAYOUT( [L_FN] = LAYOUT(
RJ_MAKE, RJ_EQ, RJ_LEQ, RJ_GEQ, RJ_GEQR, _______, _______, _______, _______, _______, RESET, _______,_______,_______,_______, KC_VOLU,KC_F9, KC_F10, KC_F11, KC_F12,
_______, _______, RJ_SELS, RJ_DUND, _______, _______, _______, ooooooo, _______, _______, MS_JIGL,_______,_______,_______,_______, KC_MUTE,KC_F5, KC_F6, KC_F7, KC_F8,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,K_SECR1,K_SECR2,K_SECR3,K_SECR4, KC_VOLD,KC_F1, KC_F2, KC_F3, KC_F4,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ DF_TYPE,DF_GAME,_______,_______,_______,KC_LCTL,KC_LALT,_______,_______,_______,_______,ooooooo
) ),
,
[L_LL_I] = LAYOUT( [L_MACROS] = LAYOUT(
KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_SLSH, _______, KC_UNDS, KC_GRV, _______, _______, QK_MAKE,_______,DM_REC2,DM_REC1,DM_RSTP, _______,SHEBANG,_______,_______,_______,
KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_PIPE, _______, KC_MINS, KC_QUOT, ooooooo, _______, QK_FLSH,_______,DM_PLY2,DM_PLY1,_______, PRG_NE, PRG_EQ, PRG_GEQ,PRG_LEQ,PRG_ARR,
KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_BSLS, _______, KC_TILD, KC_DQT, _______, _______, QK_VERS,_______,_______,_______,_______, _______,PS_ITEM,FS_PIPE,_______,FS_ARR,
_______, KC_AMPR, KC_LABK, KC_RABK, _______, _______, _______, _______, _______, _______, _______, _______ _______,_______,_______,_______,ooooooo,_______,_______,ooooooo,_______,_______,_______,_______
) )
// Template
// [L_FUNC] = LAYOUT(
// _______,_______,_______,_______,_______, _______,_______,_______,_______,_______,
// _______,_______,_______,_______,_______, _______,_______,_______,_______,_______,
// _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,
// _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______
// ),
}; };
// Uncomment any of these to add keyboard-specific code. Otherwise, they layer_state_t layer_state_set_user(layer_state_t state) {
// will use user defaults defined in the replicaJunction.h header file. return update_tri_layer_state(state, L_SYMBOLS, L_NAVIGATION, L_MACROS);
}
// bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
// return true;
// }
// void matrix_init_keymap(void) {};
// void matrix_scan_keymap(void) {};
@@ -1,34 +0,0 @@
[{r:10,rx:1,y:-0.1,x:2},"F"],
[{y:-0.65,x:1},"W",{x:1},"P"],
[{y:-0.75},"Q"],
[{y:-0.9,x:4},"B"],
[{y:-0.7,x:2},"S"],
[{y:-0.65,x:1,c:"#45b866"},"R",{x:1,c:"#cccccc"},"T"],
[{y:-0.75},"A"],
[{y:-0.9,x:4},"G"],
[{y:-0.7,x:2},"C\n\n\n<i class='fa fa-windows'></i>"],
[{y:-0.65,x:1},"X\n\n\nCtrl",{x:1},"D\n\n\nCtrlAlt"],
[{y:-0.75},"Z"],
[{y:-0.9,x:4},"V\n\n\nAlt"],
[{y:-0.75,x:5,h:1.5},"Del\nCtrl"],
[{y:-0.95,x:2},"Tab"],
[{y:-0.65,x:1,a:7,fa:[7]},"<i class='fa fa-windows'></i>",{x:1,a:4,f:3},"Shift"],
[{y:-0.75,f:3},"Layer tap"],
[{y:-0.9,x:4,f:3},"<i class='kb kb-Unicode-BackSpace-DeleteLeft-Big'></i>"],
[{r:-10,rx:7,ry:0.965,y:-0.2,x:2,f:3},"U"],
[{y:-0.65,x:1,f:3},"L",{x:1,f:3},"Y"],
[{y:-0.75,x:4,f:3},":\n;"],
[{y:-0.9,f:3},"J"],
[{y:-0.7,x:2,c:"#ffb07b",f:3},"E"],
[{y:-0.65,x:1,c:"#cccccc",f:3},"N",{x:1,c:"#5dcde3",f:3},"I"],
[{y:-0.75,x:4,c:"#cccccc",f:3},"O"],
[{y:-0.9,f:3},"M"],
[{y:-0.7,x:2,f:3},"<\n,\n\nCtrlAlt"],
[{y:-0.65,x:1,f:3},"H\n\n\nAlt",{x:1,f:3},">\n.\n\n<i class='fa fa-windows'></i>"],
[{y:-0.75,x:4,f:3},"?\n/\n\nCtrl"],
[{y:-0.9,f:3},"K"],
[{y:-0.75,x:-1,f:3,h:1.5},"Enter\nAlt"],
[{y:-0.95,x:2,f:3},"_\n-"],
[{y:-0.65,x:1,f:3},"Shift",{x:1,f:3},"\"\n'"],
[{y:-0.75,x:4,f:3},"+\n="],
[{y:-0.9,c:"#ffe08d",f:3},"Space"]
@@ -1,34 +0,0 @@
[{r:10,rx:1,y:-0.1,x:2},"<="],
[{y:-0.65,x:1},"==",{x:1},">="],
[{y:-0.75},"make"],
[{y:-0.9,x:4},"=>"],
[{y:-0.7,x:2},"select *"],
[{y:-0.65,x:1,a:7},"",{x:1,a:4},"$_"],
[{y:-0.75,a:7},""],
[{y:-0.9,x:4},""],
[{y:-0.7,x:2},""],
[{y:-0.65,x:1},"",{x:1},""],
[{y:-0.75},""],
[{y:-0.9,x:4},""],
[{y:-0.75,x:5,h:1.5},""],
[{y:-0.95,x:2},""],
[{y:-0.65,x:1},"",{x:1},""],
[{y:-0.75},""],
[{y:-0.9,x:4},""],
[{r:-10,rx:7,ry:0.965,y:-0.2,x:2},""],
[{y:-0.65,x:1},"",{x:1},""],
[{y:-0.75,x:4},""],
[{y:-0.9},""],
[{y:-0.7,x:2,c:"#ffb07b"},""],
[{y:-0.65,x:1,c:"#cccccc"},"",{x:1},""],
[{y:-0.75,x:4},""],
[{y:-0.9},""],
[{y:-0.7,x:2},""],
[{y:-0.65,x:1},"",{x:1},""],
[{y:-0.75,x:4},""],
[{y:-0.9},""],
[{y:-0.75,x:-1,h:1.5},""],
[{y:-0.95,x:2},""],
[{y:-0.65,x:1},"",{x:1},""],
[{y:-0.75,x:4},""],
[{y:-0.9},""]
@@ -1,35 +0,0 @@
[{r:10,rx:1,y:-0.1,x:2},"RClick"],
[{y:-0.65,x:1,a:7},"",{x:1,a:4},"LClick"],
[{y:-0.75,a:7},""],
[{y:-0.9,x:4,a:4},"MClick"],
[{y:-0.7,x:2},"Alt"],
[{y:-0.65,x:1},"Shift",{x:1},"Ctrl"],
[{y:-0.75,a:7,fa:[7]},"<i class='fa fa-windows'></i>"],
[{y:-0.9,x:4,a:4,fa:[5,0,0,0,0,0,0,0,0,0,7]},"<i class='kb kb-Unicode-Scroll-1'></i>\n\n\n\n\n\n\n\n\n\n<i class='kb kb-Arrows-Top-4'></i>"],
[{y:-0.7,x:2,fa:[0,0,0,0,0,0,0,0,0,0,7]},"<i class='fa fa-mouse-pointer'></i>\n\n\n\n\n\n\n\n\n\n<i class='kb kb-Arrows-Up'></i>"],
[{y:-0.65,x:1},"<i class='fa fa-mouse-pointer'></i>\n\n\n\n\n\n\n\n\n\n<i class='kb kb-Arrows-Down'></i>",{x:1},"<i class='fa fa-mouse-pointer'></i>\n\n\n\n\n\n\n\n\n\n<i class='kb kb-Arrows-Right'></i>"],
[{y:-0.75},"<i class='fa fa-mouse-pointer'></i>\n\n\n\n\n\n\n\n\n\n<i class='kb kb-Arrows-Left'></i>"],
[{y:-0.9,x:4,fa:[5,0,0,0,0,0,0,0,0,0,7]},"<i class='kb kb-Unicode-Scroll-1'></i>\n\n\n\n\n\n\n\n\n\n<i class='kb kb-Arrows-Bottom-4'></i>"],
[{y:-0.75,x:5,a:7,h:1.5},""],
[{y:-0.95,x:2},""],
[{y:-0.65,x:1},"",{x:1},""],
[{y:-0.75},""],
[{y:-0.9,x:4,c:"#ffe08d"},""],
[{r:-10,rx:7,ry:0.965,y:-0.2,x:2,c:"#cccccc",a:4,f:3},"F10"],
[{y:-0.65,x:1,f:3},"F9",{x:1,f:3},"F11"],
[{y:-0.75,x:4,f:3},"F12"],
[{y:-0.9,a:7},""],
[{y:-0.7,x:2,a:4,f:3},"F6"],
[{y:-0.65,x:1,f:3},"F5",{x:1,f:3},"F7"],
[{y:-0.75,x:4,f:3},"F8"],
[{y:-0.9,a:7},""],
[{y:-0.7,x:2,a:4,f:3},"F2"],
[{y:-0.65,x:1,f:3},"F1",{x:1,f:3},"F3"],
[{y:-0.75,x:4,f:3},"F4"],
[{y:-0.9,a:7},""],
[{y:-0.75,x:-1,h:1.5},""],
[{y:-0.95,x:2},""],
[{y:-0.65,x:1},"",{x:1},""],
[{y:-0.75,x:4},""],
[{y:-0.9,c:"#ffe08d"},""]
@@ -1,34 +0,0 @@
[{r:10,rx:1,y:-0.1,x:2},"{"],
[{y:-0.65,x:1},"@",{x:1},"}"],
[{y:-0.75},"!"],
[{y:-0.9,x:4},"/"],
[{y:-0.7,x:2},"("],
[{y:-0.65,x:1},"$",{x:1},")"],
[{y:-0.75},"#"],
[{y:-0.9,x:4},"|"],
[{y:-0.7,x:2},"["],
[{y:-0.65,x:1},"^",{x:1},"]"],
[{y:-0.75},"%"],
[{y:-0.9,x:4},"\\"],
[{y:-0.75,x:5,a:7,h:1.5},""],
[{y:-0.95,x:2,a:4},"<"],
[{y:-0.65,x:1},"&",{x:1},">"],
[{y:-0.75,a:7},""],
[{y:-0.9,x:4},""],
[{r:-10,rx:7,ry:0.965,y:-0.2,x:2,a:4},"`"],
[{y:-0.65,x:1},"_",{x:1,a:7},""],
[{y:-0.75,x:4},""],
[{y:-0.9},""],
[{y:-0.7,x:2,a:4},"'"],
[{y:-0.65,x:1},"-",{x:1,c:"#5dcde3",a:7},""],
[{y:-0.75,x:4,c:"#cccccc"},""],
[{y:-0.9},""],
[{y:-0.7,x:2,a:4},"\""],
[{y:-0.65,x:1},"~",{x:1,a:7},""],
[{y:-0.75,x:4},""],
[{y:-0.9},""],
[{y:-0.75,x:-1,h:1.5},""],
[{y:-0.95,x:2},""],
[{y:-0.65,x:1},"",{x:1},""],
[{y:-0.75,x:4},""],
[{y:-0.9},""]
@@ -1,34 +0,0 @@
[{r:10,rx:1,y:-0.1,x:2,a:7},""],
[{y:-0.65,x:1},"",{x:1},""],
[{y:-0.75},""],
[{y:-0.9,x:4},""],
[{y:-0.7,x:2,a:4},"&"],
[{y:-0.65,x:1,c:"#45b866",a:7},"",{x:1,c:"#cccccc",a:4},"|"],
[{y:-0.75,a:7},""],
[{y:-0.9,x:4},""],
[{y:-0.7,x:2},""],
[{y:-0.65,x:1},"",{x:1},""],
[{y:-0.75},""],
[{y:-0.9,x:4},""],
[{y:-0.75,x:5,h:1.5},""],
[{y:-0.95,x:2},""],
[{y:-0.65,x:1},"",{x:1},""],
[{y:-0.75},""],
[{y:-0.9,x:4},""],
[{r:-10,rx:7,ry:0.965,y:-0.2,x:2,a:4},"8"],
[{y:-0.65,x:1},"7",{x:1},"9"],
[{y:-0.75,x:4},"/"],
[{y:-0.9},":"],
[{y:-0.7,x:2},"5"],
[{y:-0.65,x:1},"4",{x:1},"6"],
[{y:-0.75,x:4},"*"],
[{y:-0.9},"#"],
[{y:-0.7,x:2},"2"],
[{y:-0.65,x:1},"1",{x:1},"3"],
[{y:-0.75,x:4},"-"],
[{y:-0.9},"<i class='kb kb-Unicode-BackSpace-DeleteLeft-Big'></i>"],
[{y:-0.75,x:-1,a:7,h:1.5},""],
[{y:-0.95,x:2,a:4},"."],
[{y:-0.65,x:1},"0",{x:1},"="],
[{y:-0.75,x:4},"+"],
[{y:-0.9},"Space"]
@@ -1,34 +0,0 @@
[{r:10,rx:1,y:-0.1,x:2,a:7},""],
[{y:-0.65,x:1},"",{x:1,fa:[7]},"<i class='kb kb-Hamburger-Menu'></i>"],
[{y:-0.75},""],
[{y:-0.9,x:4},"<i class='fa fa-terminal'></i>"],
[{y:-0.7,x:2,a:4,f:3},"Alt"],
[{y:-0.65,x:1,f:3},"Shift",{x:1,f:3},"Ctrl"],
[{y:-0.75,a:7},"<i class='fa fa-windows'></i>"],
[{y:-0.9,x:4},""],
[{y:-0.7,x:2},""],
[{y:-0.65,x:1},"",{x:1},"<i class='fa fa-search'></i>"],
[{y:-0.75},""],
[{y:-0.9,x:4},"<i class='fa fa-clipboard'></i>"],
[{y:-0.75,x:5,h:1.5},""],
[{y:-0.95,x:2},""],
[{y:-0.65,x:1},"",{x:1},""],
[{y:-0.75},""],
[{y:-0.9,x:4},""],
[{r:-10,rx:7,ry:0.965,y:-0.2,x:2},"<i class='kb kb-Arrows-Up'></i>"],
[{y:-0.65,x:1,a:4,f:3},"Home",{x:1,f:3},"End"],
[{y:-0.75,x:4,f:3},"Delete"],
[{y:-0.9,f:3},"PgUp"],
[{y:-0.7,x:2,a:7},"<i class='kb kb-Arrows-Down'></i>"],
[{y:-0.65,x:1},"<i class='kb kb-Arrows-Left'></i>",{x:1},"<i class='kb kb-Arrows-Right'></i>"],
[{y:-0.75,x:4,a:4,f:3},"Bksp"],
[{y:-0.9,f:3},"PgDn"],
[{y:-0.7,x:2,f:3},"Tab"],
[{y:-0.65,x:1,f:3},"Shift+\n\n\n\n\n\nTab",{x:1,a:7},""],
[{y:-0.75,x:4,a:4,f:3},"Insert"],
[{y:-0.9,a:7},""],
[{y:-0.75,x:-1,h:1.5},""],
[{y:-0.95,x:2},""],
[{y:-0.65,x:1},"",{x:1},""],
[{y:-0.75,x:4,a:4,f:3},"Prnt Scrn"],
[{y:-0.9,c:"#ffe08d",a:7},""]
@@ -1,103 +1,7 @@
# replicaJunction - Atreus Layout # replicaJunction - Atreus Layout
This layout is designed to make the absolute most out of the Atreus 40% keyboard. I no longer actively use this keyboard. I've replaced it with the [Keyboardio Atreus](../../../keyboardio/atreus/keymaps/replicaJunction/readme.md).
This layout is probably not perfect for you. That's okay! Use it for ideas as you design your own perfect layout. I still try to make sure the layout compiles, but I'm no longer tweaking it or adding new features.
Most of the custom logic in this keyboard is actually not in these files. Instead, it's in the directory `/users/replicaJunction` (from the root of the QMK repo). This allows me to share macros and custom logic between multiple keyboards. A `process_record_keyboard()` function defined weakly in `replicaJunction.h` allows keyboards to process records individually as well without overriding the `process_record_user()` function. (My Ergodox uses this to handle its LEDs, for example.) Most of the interesting features in this layout are defined in [my userspace folder](../../../../users/replicaJunction/readme.md). Refer to the documentation and code there for more details.
The default letter layout in this keymap is [Colemak-ModDH](https://colemakmods.github.io/mod-dh/). I use the "matrix version" of that layout, which retains the M key on the home row as in normal Colemak.
## Design Goals
I designed this layout with the following goals in mind:
* Nothing may interfere with ordinary typing.
* Symbols need to be accessible quickly and organized in a manner I can remember.
* Limit more difficult finger movements (and pinky usage in general).
### Nothing may interfere with ordinary typing
For a long time, this meant that I couldn't use letters or home row keys as dual-role keys. I'm a fast typer, and I'm sometimes already typing the next letter before I've fully released the previous one. Normal keyboards don't care about this, but if I started adding dual-role functionality to letters, I found that I would sometimes type the next letter before releasing the layer toggle, and the letter I tried to send would still be sent under the layer I thought I'd left off.
Fortunately, though, QMK has addressed this with the `PERMISSIVE_HOLD` flag. [Details are on the QMK docs page.](https://docs.qmk.fm/#/feature_advanced_keycodes?id=permissive-hold)
Using that flag, I'm comfortable having layer shift keys on the home row, and this goes a long way to eliminate finger stress.
### Sympols need to be accessible quickly
Symbols are available under my left hand by holding the I key (on my right hand). I've grouped parenthesis, slashes, and braces together; the remaining symbols are ordered in the same way as they appear on USA keycap legends (for example, 1 is !, so that symbol is first in my lineup). Practically, I just had to get used to these other "misc" symbols.
This also means that some symbols are accessible in more than one way. For example, the carats (greater than and less than) are available both in the "normal" location (Shift+Comma / Shift+Period) and on the symbol layer. I make regular changes to some of the symbols I don't use as commonly as I think of them.
### Limit more difficult finger movements
This is why I kept trying to put layer toggles on the home row keys instead of just placing them on random thumb keys. I suffer from RSI, and it's important for me to watch out for more "stressful" finger movements.
The home row is the easiest row for your fingers to hit, followed by the upper row, and the lower row is noticeably more difficult to press. Because of this, I favored the upper row over the lower one any time I had the option to do so.
## Features
### ZXC Mods
Keys on the bottom row of each half of this keyboard can be held to send modifier keys. I've tried to map this in a relatively logical manner:
* Z / Slash: Ctrl
* X / Period: GUI
* C / Comma: Ctrl+Alt
* D / H: Alt
Combined with Shift keys on the thumbs, this makes all modifiers quick to access on either hand.
### Layer tap dance
The lower-left key on the left hand can be used to apply or remove layers based on a number of taps:
* 1 tap sends Escape, and also disables any persistent layers.
* 2 taps enables the Number pad layer.
* 5 or more taps resets the keyboard.
## Extend Layer
[Originally found on the Colemak forums](https://forum.colemak.com/topic/2014-extend-extra-extreme/), having a QMK-powered keyboard allows a super easy implementation of this concept. The idea is to place commonly-used keys under easy reach of your hands. Since I work with text often, my most common needs are things like Ctrl+Shift+arrow keys, and they're easy to access using this layer. (While technically it's four keypresses instead of just three, since it takes one key to enter the layer, that one key is a thumb button and the other three are all on the home row, so I find it much more comfortable than modifiers on a traditional keyboard.)
Also featured in this layer is easy access to Tab, plus a Shift+Tab key. Alt-Tabbing back and forth, along with Ctrl-Tab, are super easy and friendly. When I need Ctrl+Alt+Delete, I typically use the ones found on this layer.
## Layout Images
Colored keys indicate keys that swap to another layer when held.
These images are located in the `kle` folder of this directory. Also included is the "raw data" from Keyboard-Layout-Editor in a corresponding text file.
### Base layer
![Base layer](kle/base-layer.png)
### R layer
![R layer](kle/r-layer.png)
### E layer
![E layer](kle/i-layer.png)
### I layer
![I layer](kle/i-layer.png)
### Space layer
![Space layer](kle/space-layer.png)
### Function layer
![Function layer](kle/fn-layer.png)
## Credits
* [Drashna](https://github.com/qmk/qmk_firmware/blob/master/users/drashna/readme.md)
* User / keymap function ideas
* [Jeremy](https://github.com/qmk/qmk_firmware/blob/master/keyboards/atreus/keymaps/jeremy/readme.md)
* Sanity check on the Function keys (_of course they should be in rows of 4, not rows of 3 like a number pad. Why did I ever use anything else?_)
* [DreymaR of the Colemak forums](https://forum.colemak.com/topic/2014-extend-extra-extreme/)
* Original idea of the Extend layer
@@ -1,12 +1,28 @@
# https://docs.qmk.fm/getting_started_make_guide.html # Userspace options
USER_CAPS_WORD_ENABLE = yes
USER_MOUSE_JIGGLE_ENABLE = yes
USER_NUM_WORD_ENABLE = yes
USER_SECRETS_ENABLE = yes
MOUSEKEY_ENABLE = yes DYNAMIC_MACRO_ENABLE = yes
TAP_DANCE_ENABLE = yes
# KEY_LOCK_ENABLE = yes
# CONSOLE_ENABLE = no
# COMMAND_ENABLE = no
# Use the "Unicode map" method # Extra features that are nice but takes space. Enable only if they're
# UNICODE_ENABLE = no # used in the layout.
# UNICODEMAP_ENABLE = yes WPM_ENABLE = no
# EXTRAKEY_ENABLE = no # For volume keys and similar
# MOUSEKEY_ENABLE = no # Them mouse keys yo
KEY_OVERRIDE_ENABLE = no
LEADER_ENABLE = no
TAP_DANCE_ENABLE = no
# RGBLIGHT_ENABLE = no # Keyboard RGB underglow
RGB_MATRIX_ENABLE = no
# Features I definitely don't care aboud
LTO_ENABLE = yes
CONSOLE_ENABLE = no
VERBOSE = no
DEBUG_MATRIX_SCAN_RATE = no
DEBUG_MATRIX = no
MAGIC_ENABLE = no
SPACE_CADET_ENABLE = no
GRAVE_ESC_ENABLE = no
+623 -9
View File
@@ -1,10 +1,243 @@
{ {
"keyboard_name": "Aves65", "keyboard_name": "Aves65",
"url": "", "url": "",
"maintainer": "Hund", "maintainer": "Hund",
"width": 16, "width": 16,
"height": 5, "height": 5,
"layouts": { "layouts": {
"LAYOUT_all": {
"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":"k04", "x":4, "y":0},
{"label":"k05", "x":5, "y":0},
{"label":"k06", "x":6, "y":0},
{"label":"k07", "x":7, "y":0},
{"label":"k08", "x":8, "y":0},
{"label":"k09", "x":9, "y":0},
{"label":"k0a", "x":10, "y":0},
{"label":"k0b", "x":11, "y":0},
{"label":"k0c", "x":12, "y":0},
{"label":"k1d", "x":13, "y":0},
{"label":"k0d", "x":14, "y":0},
{"label":"k0e", "x":15, "y":0},
{"label":"k10", "x":0, "y":1, "w":1.5},
{"label":"k11", "x":1.5, "y":1},
{"label":"k12", "x":2.5, "y":1},
{"label":"k13", "x":3.5, "y":1},
{"label":"k14", "x":4.5, "y":1},
{"label":"k15", "x":5.5, "y":1},
{"label":"k16", "x":6.5, "y":1},
{"label":"k17", "x":7.5, "y":1},
{"label":"k18", "x":8.5, "y":1},
{"label":"k19", "x":9.5, "y":1},
{"label":"k1a", "x":10.5, "y":1},
{"label":"k1b", "x":11.5, "y":1},
{"label":"k1c", "x":12.5, "y":1},
{"label":"k2c", "x":13.5, "y":1, "w":1.5},
{"label":"k1e", "x":15, "y":1},
{"label":"k20", "x":0, "y":2, "w":1.75},
{"label":"k21", "x":1.75, "y":2},
{"label":"k22", "x":2.75, "y":2},
{"label":"k23", "x":3.75, "y":2},
{"label":"k24", "x":4.75, "y":2},
{"label":"k25", "x":5.75, "y":2},
{"label":"k26", "x":6.75, "y":2},
{"label":"k27", "x":7.75, "y":2},
{"label":"k28", "x":8.75, "y":2},
{"label":"k29", "x":9.75, "y":2},
{"label":"k2a", "x":10.75, "y":2},
{"label":"k2b", "x":11.75, "y":2},
{"label":"k2d", "x":12.75, "y":2, "w":2.25},
{"label":"k2e", "x":15, "y":2},
{"label":"k30", "x":0, "y":3, "w":1.25},
{"label":"k31", "x":1.25, "y":3},
{"label":"k32", "x":2.25, "y":3},
{"label":"k33", "x":3.25, "y":3},
{"label":"k34", "x":4.25, "y":3},
{"label":"k35", "x":5.25, "y":3},
{"label":"k36", "x":6.25, "y":3},
{"label":"k37", "x":7.25, "y":3},
{"label":"k38", "x":8.25, "y":3},
{"label":"k39", "x":9.25, "y":3},
{"label":"k3a", "x":10.25, "y":3},
{"label":"k3b", "x":11.25, "y":3},
{"label":"k3c", "x":12.25, "y":3, "w":1.75},
{"label":"k3d", "x":14, "y":3},
{"label":"k3e", "x":15, "y":3},
{"label":"k40", "x":0, "y":4, "w":1.25},
{"label":"k41", "x":1.25, "y":4, "w":1.25},
{"label":"k42", "x":2.5, "y":4, "w":1.25},
{"label":"k46", "x":3.75, "y":4, "w":6.25},
{"label":"k4a", "x":10, "y":4},
{"label":"k4b", "x":11, "y":4},
{"label":"k49", "x":12, "y":4},
{"label":"k4c", "x":13, "y":4},
{"label":"k4d", "x":14, "y":4},
{"label":"k4e", "x":15, "y":4}
]
},
"LAYOUT_65_iso": {
"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":"k04", "x":4, "y":0},
{"label":"k05", "x":5, "y":0},
{"label":"k06", "x":6, "y":0},
{"label":"k07", "x":7, "y":0},
{"label":"k08", "x":8, "y":0},
{"label":"k09", "x":9, "y":0},
{"label":"k0a", "x":10, "y":0},
{"label":"k0b", "x":11, "y":0},
{"label":"k0c", "x":12, "y":0},
{"label":"k0d", "x":13, "y":0, "w":2},
{"label":"k0e", "x":15, "y":0},
{"label":"k10", "x":0, "y":1, "w":1.5},
{"label":"k11", "x":1.5, "y":1},
{"label":"k12", "x":2.5, "y":1},
{"label":"k13", "x":3.5, "y":1},
{"label":"k14", "x":4.5, "y":1},
{"label":"k15", "x":5.5, "y":1},
{"label":"k16", "x":6.5, "y":1},
{"label":"k17", "x":7.5, "y":1},
{"label":"k18", "x":8.5, "y":1},
{"label":"k19", "x":9.5, "y":1},
{"label":"k1a", "x":10.5, "y":1},
{"label":"k1b", "x":11.5, "y":1},
{"label":"k1c", "x":12.5, "y":1},
{"label":"k1e", "x":15, "y":1},
{"label":"k20", "x":0, "y":2, "w":1.75},
{"label":"k21", "x":1.75, "y":2},
{"label":"k22", "x":2.75, "y":2},
{"label":"k23", "x":3.75, "y":2},
{"label":"k24", "x":4.75, "y":2},
{"label":"k25", "x":5.75, "y":2},
{"label":"k26", "x":6.75, "y":2},
{"label":"k27", "x":7.75, "y":2},
{"label":"k28", "x":8.75, "y":2},
{"label":"k29", "x":9.75, "y":2},
{"label":"k2a", "x":10.75, "y":2},
{"label":"k2b", "x":11.75, "y":2},
{"label":"k2c", "x":12.75, "y":2},
{"label":"k2d", "x":13.75, "y":1, "w":1.25, "h":2},
{"label":"k2e", "x":15, "y":2},
{"label":"k30", "x":0, "y":3, "w":1.25},
{"label":"k31", "x":1.25, "y":3},
{"label":"k32", "x":2.25, "y":3},
{"label":"k33", "x":3.25, "y":3},
{"label":"k34", "x":4.25, "y":3},
{"label":"k35", "x":5.25, "y":3},
{"label":"k36", "x":6.25, "y":3},
{"label":"k37", "x":7.25, "y":3},
{"label":"k38", "x":8.25, "y":3},
{"label":"k39", "x":9.25, "y":3},
{"label":"k3a", "x":10.25, "y":3},
{"label":"k3b", "x":11.25, "y":3},
{"label":"k3c", "x":12.25, "y":3, "w":1.75},
{"label":"k3d", "x":14, "y":3},
{"label":"k3e", "x":15, "y":3},
{"label":"k40", "x":0, "y":4, "w":1.25},
{"label":"k41", "x":1.25, "y":4, "w":1.25},
{"label":"k42", "x":2.5, "y":4, "w":1.25},
{"label":"k46", "x":3.75, "y":4, "w":6.25},
{"label":"k4a", "x":10, "y":4},
{"label":"k4b", "x":11, "y":4},
{"label":"k49", "x":12, "y":4},
{"label":"k4c", "x":13, "y":4},
{"label":"k4d", "x":14, "y":4},
{"label":"k4e", "x":15, "y":4}
]
},
"LAYOUT_65_iso_split_bs": {
"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":"k04", "x":4, "y":0},
{"label":"k05", "x":5, "y":0},
{"label":"k06", "x":6, "y":0},
{"label":"k07", "x":7, "y":0},
{"label":"k08", "x":8, "y":0},
{"label":"k09", "x":9, "y":0},
{"label":"k0a", "x":10, "y":0},
{"label":"k0b", "x":11, "y":0},
{"label":"k0c", "x":12, "y":0},
{"label":"k1d", "x":13, "y":0},
{"label":"k0d", "x":14, "y":0},
{"label":"k0e", "x":15, "y":0},
{"label":"k10", "x":0, "y":1, "w":1.5},
{"label":"k11", "x":1.5, "y":1},
{"label":"k12", "x":2.5, "y":1},
{"label":"k13", "x":3.5, "y":1},
{"label":"k14", "x":4.5, "y":1},
{"label":"k15", "x":5.5, "y":1},
{"label":"k16", "x":6.5, "y":1},
{"label":"k17", "x":7.5, "y":1},
{"label":"k18", "x":8.5, "y":1},
{"label":"k19", "x":9.5, "y":1},
{"label":"k1a", "x":10.5, "y":1},
{"label":"k1b", "x":11.5, "y":1},
{"label":"k1c", "x":12.5, "y":1},
{"label":"k1e", "x":15, "y":1},
{"label":"k20", "x":0, "y":2, "w":1.75},
{"label":"k21", "x":1.75, "y":2},
{"label":"k22", "x":2.75, "y":2},
{"label":"k23", "x":3.75, "y":2},
{"label":"k24", "x":4.75, "y":2},
{"label":"k25", "x":5.75, "y":2},
{"label":"k26", "x":6.75, "y":2},
{"label":"k27", "x":7.75, "y":2},
{"label":"k28", "x":8.75, "y":2},
{"label":"k29", "x":9.75, "y":2},
{"label":"k2a", "x":10.75, "y":2},
{"label":"k2b", "x":11.75, "y":2},
{"label":"k2c", "x":12.75, "y":2},
{"label":"k2d", "x":13.75, "y":1, "w":1.25, "h":2},
{"label":"k2e", "x":15, "y":2},
{"label":"k30", "x":0, "y":3, "w":1.25},
{"label":"k31", "x":1.25, "y":3},
{"label":"k32", "x":2.25, "y":3},
{"label":"k33", "x":3.25, "y":3},
{"label":"k34", "x":4.25, "y":3},
{"label":"k35", "x":5.25, "y":3},
{"label":"k36", "x":6.25, "y":3},
{"label":"k37", "x":7.25, "y":3},
{"label":"k38", "x":8.25, "y":3},
{"label":"k39", "x":9.25, "y":3},
{"label":"k3a", "x":10.25, "y":3},
{"label":"k3b", "x":11.25, "y":3},
{"label":"k3c", "x":12.25, "y":3, "w":1.75},
{"label":"k3d", "x":14, "y":3},
{"label":"k3e", "x":15, "y":3},
{"label":"k40", "x":0, "y":4, "w":1.25},
{"label":"k41", "x":1.25, "y":4, "w":1.25},
{"label":"k42", "x":2.5, "y":4, "w":1.25},
{"label":"k46", "x":3.75, "y":4, "w":6.25},
{"label":"k4a", "x":10, "y":4},
{"label":"k4b", "x":11, "y":4},
{"label":"k49", "x":12, "y":4},
{"label":"k4c", "x":13, "y":4},
{"label":"k4d", "x":14, "y":4},
{"label":"k4e", "x":15, "y":4}
]
},
"LAYOUT_65_iso_blocker": { "LAYOUT_65_iso_blocker": {
"layout": [ "layout": [
{"label":"k00", "x":0, "y":0}, {"label":"k00", "x":0, "y":0},
@@ -22,7 +255,7 @@
{"label":"k0c", "x":12, "y":0}, {"label":"k0c", "x":12, "y":0},
{"label":"k0d", "x":13, "y":0, "w":2}, {"label":"k0d", "x":13, "y":0, "w":2},
{"label":"k0e", "x":15, "y":0}, {"label":"k0e", "x":15, "y":0},
{"label":"k10", "x":0, "y":1, "w":1.5}, {"label":"k10", "x":0, "y":1, "w":1.5},
{"label":"k11", "x":1.5, "y":1}, {"label":"k11", "x":1.5, "y":1},
{"label":"k12", "x":2.5, "y":1}, {"label":"k12", "x":2.5, "y":1},
@@ -37,7 +270,7 @@
{"label":"k1b", "x":11.5, "y":1}, {"label":"k1b", "x":11.5, "y":1},
{"label":"k1c", "x":12.5, "y":1}, {"label":"k1c", "x":12.5, "y":1},
{"label":"k1e", "x":15, "y":1}, {"label":"k1e", "x":15, "y":1},
{"label":"k20", "x":0, "y":2, "w":1.75}, {"label":"k20", "x":0, "y":2, "w":1.75},
{"label":"k21", "x":1.75, "y":2}, {"label":"k21", "x":1.75, "y":2},
{"label":"k22", "x":2.75, "y":2}, {"label":"k22", "x":2.75, "y":2},
@@ -53,7 +286,7 @@
{"label":"k2c", "x":12.75, "y":2}, {"label":"k2c", "x":12.75, "y":2},
{"label":"k2d", "x":13.75, "y":1, "w":1.25, "h":2}, {"label":"k2d", "x":13.75, "y":1, "w":1.25, "h":2},
{"label":"k2e", "x":15, "y":2}, {"label":"k2e", "x":15, "y":2},
{"label":"k30", "x":0, "y":3, "w":1.25}, {"label":"k30", "x":0, "y":3, "w":1.25},
{"label":"k31", "x":1.25, "y":3}, {"label":"k31", "x":1.25, "y":3},
{"label":"k32", "x":2.25, "y":3}, {"label":"k32", "x":2.25, "y":3},
@@ -69,7 +302,388 @@
{"label":"k3c", "x":12.25, "y":3, "w":1.75}, {"label":"k3c", "x":12.25, "y":3, "w":1.75},
{"label":"k3d", "x":14, "y":3}, {"label":"k3d", "x":14, "y":3},
{"label":"k3e", "x":15, "y":3}, {"label":"k3e", "x":15, "y":3},
{"label":"k40", "x":0, "y":4, "w":1.25},
{"label":"k41", "x":1.25, "y":4, "w":1.25},
{"label":"k42", "x":2.5, "y":4, "w":1.25},
{"label":"k46", "x":3.75, "y":4, "w":6.25},
{"label":"k4a", "x":10, "y":4, "w":1.25},
{"label":"k4b", "x":11.25, "y":4, "w":1.25},
{"label":"k4c", "x":13, "y":4},
{"label":"k4d", "x":14, "y":4},
{"label":"k4e", "x":15, "y":4}
]
},
"LAYOUT_65_iso_blocker_split_bs": {
"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":"k04", "x":4, "y":0},
{"label":"k05", "x":5, "y":0},
{"label":"k06", "x":6, "y":0},
{"label":"k07", "x":7, "y":0},
{"label":"k08", "x":8, "y":0},
{"label":"k09", "x":9, "y":0},
{"label":"k0a", "x":10, "y":0},
{"label":"k0b", "x":11, "y":0},
{"label":"k0c", "x":12, "y":0},
{"label":"k1d", "x":13, "y":0},
{"label":"k0d", "x":14, "y":0},
{"label":"k0e", "x":15, "y":0},
{"label":"k10", "x":0, "y":1, "w":1.5},
{"label":"k11", "x":1.5, "y":1},
{"label":"k12", "x":2.5, "y":1},
{"label":"k13", "x":3.5, "y":1},
{"label":"k14", "x":4.5, "y":1},
{"label":"k15", "x":5.5, "y":1},
{"label":"k16", "x":6.5, "y":1},
{"label":"k17", "x":7.5, "y":1},
{"label":"k18", "x":8.5, "y":1},
{"label":"k19", "x":9.5, "y":1},
{"label":"k1a", "x":10.5, "y":1},
{"label":"k1b", "x":11.5, "y":1},
{"label":"k1c", "x":12.5, "y":1},
{"label":"k1e", "x":15, "y":1},
{"label":"k20", "x":0, "y":2, "w":1.75},
{"label":"k21", "x":1.75, "y":2},
{"label":"k22", "x":2.75, "y":2},
{"label":"k23", "x":3.75, "y":2},
{"label":"k24", "x":4.75, "y":2},
{"label":"k25", "x":5.75, "y":2},
{"label":"k26", "x":6.75, "y":2},
{"label":"k27", "x":7.75, "y":2},
{"label":"k28", "x":8.75, "y":2},
{"label":"k29", "x":9.75, "y":2},
{"label":"k2a", "x":10.75, "y":2},
{"label":"k2b", "x":11.75, "y":2},
{"label":"k2c", "x":12.75, "y":2},
{"label":"k2d", "x":13.75, "y":1, "w":1.25, "h":2},
{"label":"k2e", "x":15, "y":2},
{"label":"k30", "x":0, "y":3, "w":1.25},
{"label":"k31", "x":1.25, "y":3},
{"label":"k32", "x":2.25, "y":3},
{"label":"k33", "x":3.25, "y":3},
{"label":"k34", "x":4.25, "y":3},
{"label":"k35", "x":5.25, "y":3},
{"label":"k36", "x":6.25, "y":3},
{"label":"k37", "x":7.25, "y":3},
{"label":"k38", "x":8.25, "y":3},
{"label":"k39", "x":9.25, "y":3},
{"label":"k3a", "x":10.25, "y":3},
{"label":"k3b", "x":11.25, "y":3},
{"label":"k3c", "x":12.25, "y":3, "w":1.75},
{"label":"k3d", "x":14, "y":3},
{"label":"k3e", "x":15, "y":3},
{"label":"k40", "x":0, "y":4, "w":1.25},
{"label":"k41", "x":1.25, "y":4, "w":1.25},
{"label":"k42", "x":2.5, "y":4, "w":1.25},
{"label":"k46", "x":3.75, "y":4, "w":6.25},
{"label":"k4a", "x":10, "y":4, "w":1.25},
{"label":"k4b", "x":11.25, "y":4, "w":1.25},
{"label":"k4c", "x":13, "y":4},
{"label":"k4d", "x":14, "y":4},
{"label":"k4e", "x":15, "y":4}
]
},
"LAYOUT_65_ansi": {
"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":"k04", "x":4, "y":0},
{"label":"k05", "x":5, "y":0},
{"label":"k06", "x":6, "y":0},
{"label":"k07", "x":7, "y":0},
{"label":"k08", "x":8, "y":0},
{"label":"k09", "x":9, "y":0},
{"label":"k0a", "x":10, "y":0},
{"label":"k0b", "x":11, "y":0},
{"label":"k0c", "x":12, "y":0},
{"label":"k0d", "x":13, "y":0, "w":2},
{"label":"k0e", "x":15, "y":0},
{"label":"k10", "x":0, "y":1, "w":1.5},
{"label":"k11", "x":1.5, "y":1},
{"label":"k12", "x":2.5, "y":1},
{"label":"k13", "x":3.5, "y":1},
{"label":"k14", "x":4.5, "y":1},
{"label":"k15", "x":5.5, "y":1},
{"label":"k16", "x":6.5, "y":1},
{"label":"k17", "x":7.5, "y":1},
{"label":"k18", "x":8.5, "y":1},
{"label":"k19", "x":9.5, "y":1},
{"label":"k1a", "x":10.5, "y":1},
{"label":"k1b", "x":11.5, "y":1},
{"label":"k1c", "x":12.5, "y":1},
{"label":"k2c", "x":13.5, "y":1, "w":1.5},
{"label":"k1e", "x":15, "y":1},
{"label":"k20", "x":0, "y":2, "w":1.75},
{"label":"k21", "x":1.75, "y":2},
{"label":"k22", "x":2.75, "y":2},
{"label":"k23", "x":3.75, "y":2},
{"label":"k24", "x":4.75, "y":2},
{"label":"k25", "x":5.75, "y":2},
{"label":"k26", "x":6.75, "y":2},
{"label":"k27", "x":7.75, "y":2},
{"label":"k28", "x":8.75, "y":2},
{"label":"k29", "x":9.75, "y":2},
{"label":"k2a", "x":10.75, "y":2},
{"label":"k2b", "x":11.75, "y":2},
{"label":"k2d", "x":12.75, "y":2, "w":2.25},
{"label":"k2e", "x":15, "y":2},
{"label":"k30", "x":0, "y":3, "w":2.25},
{"label":"k32", "x":2.25, "y":3},
{"label":"k33", "x":3.25, "y":3},
{"label":"k34", "x":4.25, "y":3},
{"label":"k35", "x":5.25, "y":3},
{"label":"k36", "x":6.25, "y":3},
{"label":"k37", "x":7.25, "y":3},
{"label":"k38", "x":8.25, "y":3},
{"label":"k39", "x":9.25, "y":3},
{"label":"k3a", "x":10.25, "y":3},
{"label":"k3b", "x":11.25, "y":3},
{"label":"k3c", "x":12.25, "y":3, "w":1.75},
{"label":"k3d", "x":14, "y":3},
{"label":"k3e", "x":15, "y":3},
{"label":"k40", "x":0, "y":4, "w":1.25},
{"label":"k41", "x":1.25, "y":4, "w":1.25},
{"label":"k42", "x":2.5, "y":4, "w":1.25},
{"label":"k46", "x":3.75, "y":4, "w":6.25},
{"label":"k4a", "x":10, "y":4},
{"label":"k4b", "x":11, "y":4},
{"label":"k49", "x":12, "y":4},
{"label":"k4c", "x":13, "y":4},
{"label":"k4d", "x":14, "y":4},
{"label":"k4e", "x":15, "y":4}
]
},
"LAYOUT_65_ansi_split_bs": {
"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":"k04", "x":4, "y":0},
{"label":"k05", "x":5, "y":0},
{"label":"k06", "x":6, "y":0},
{"label":"k07", "x":7, "y":0},
{"label":"k08", "x":8, "y":0},
{"label":"k09", "x":9, "y":0},
{"label":"k0a", "x":10, "y":0},
{"label":"k0b", "x":11, "y":0},
{"label":"k0c", "x":12, "y":0},
{"label":"k1d", "x":13, "y":0},
{"label":"k0d", "x":14, "y":0},
{"label":"k0e", "x":15, "y":0},
{"label":"k10", "x":0, "y":1, "w":1.5},
{"label":"k11", "x":1.5, "y":1},
{"label":"k12", "x":2.5, "y":1},
{"label":"k13", "x":3.5, "y":1},
{"label":"k14", "x":4.5, "y":1},
{"label":"k15", "x":5.5, "y":1},
{"label":"k16", "x":6.5, "y":1},
{"label":"k17", "x":7.5, "y":1},
{"label":"k18", "x":8.5, "y":1},
{"label":"k19", "x":9.5, "y":1},
{"label":"k1a", "x":10.5, "y":1},
{"label":"k1b", "x":11.5, "y":1},
{"label":"k1c", "x":12.5, "y":1},
{"label":"k2c", "x":13.5, "y":1, "w":1.5},
{"label":"k1e", "x":15, "y":1},
{"label":"k20", "x":0, "y":2, "w":1.75},
{"label":"k21", "x":1.75, "y":2},
{"label":"k22", "x":2.75, "y":2},
{"label":"k23", "x":3.75, "y":2},
{"label":"k24", "x":4.75, "y":2},
{"label":"k25", "x":5.75, "y":2},
{"label":"k26", "x":6.75, "y":2},
{"label":"k27", "x":7.75, "y":2},
{"label":"k28", "x":8.75, "y":2},
{"label":"k29", "x":9.75, "y":2},
{"label":"k2a", "x":10.75, "y":2},
{"label":"k2b", "x":11.75, "y":2},
{"label":"k2d", "x":12.75, "y":2, "w":2.25},
{"label":"k2e", "x":15, "y":2},
{"label":"k30", "x":0, "y":3, "w":2.25},
{"label":"k32", "x":2.25, "y":3},
{"label":"k33", "x":3.25, "y":3},
{"label":"k34", "x":4.25, "y":3},
{"label":"k35", "x":5.25, "y":3},
{"label":"k36", "x":6.25, "y":3},
{"label":"k37", "x":7.25, "y":3},
{"label":"k38", "x":8.25, "y":3},
{"label":"k39", "x":9.25, "y":3},
{"label":"k3a", "x":10.25, "y":3},
{"label":"k3b", "x":11.25, "y":3},
{"label":"k3c", "x":12.25, "y":3, "w":1.75},
{"label":"k3d", "x":14, "y":3},
{"label":"k3e", "x":15, "y":3},
{"label":"k40", "x":0, "y":4, "w":1.25},
{"label":"k41", "x":1.25, "y":4, "w":1.25},
{"label":"k42", "x":2.5, "y":4, "w":1.25},
{"label":"k46", "x":3.75, "y":4, "w":6.25},
{"label":"k4a", "x":10, "y":4},
{"label":"k4b", "x":11, "y":4},
{"label":"k49", "x":12, "y":4},
{"label":"k4c", "x":13, "y":4},
{"label":"k4d", "x":14, "y":4},
{"label":"k4e", "x":15, "y":4}
]
},
"LAYOUT_65_ansi_blocker": {
"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":"k04", "x":4, "y":0},
{"label":"k05", "x":5, "y":0},
{"label":"k06", "x":6, "y":0},
{"label":"k07", "x":7, "y":0},
{"label":"k08", "x":8, "y":0},
{"label":"k09", "x":9, "y":0},
{"label":"k0a", "x":10, "y":0},
{"label":"k0b", "x":11, "y":0},
{"label":"k0c", "x":12, "y":0},
{"label":"k0d", "x":13, "y":0, "w":2},
{"label":"k0e", "x":15, "y":0},
{"label":"k10", "x":0, "y":1, "w":1.5},
{"label":"k11", "x":1.5, "y":1},
{"label":"k12", "x":2.5, "y":1},
{"label":"k13", "x":3.5, "y":1},
{"label":"k14", "x":4.5, "y":1},
{"label":"k15", "x":5.5, "y":1},
{"label":"k16", "x":6.5, "y":1},
{"label":"k17", "x":7.5, "y":1},
{"label":"k18", "x":8.5, "y":1},
{"label":"k19", "x":9.5, "y":1},
{"label":"k1a", "x":10.5, "y":1},
{"label":"k1b", "x":11.5, "y":1},
{"label":"k1c", "x":12.5, "y":1},
{"label":"k2c", "x":13.5, "y":1, "w":1.5},
{"label":"k1e", "x":15, "y":1},
{"label":"k20", "x":0, "y":2, "w":1.75},
{"label":"k21", "x":1.75, "y":2},
{"label":"k22", "x":2.75, "y":2},
{"label":"k23", "x":3.75, "y":2},
{"label":"k24", "x":4.75, "y":2},
{"label":"k25", "x":5.75, "y":2},
{"label":"k26", "x":6.75, "y":2},
{"label":"k27", "x":7.75, "y":2},
{"label":"k28", "x":8.75, "y":2},
{"label":"k29", "x":9.75, "y":2},
{"label":"k2a", "x":10.75, "y":2},
{"label":"k2b", "x":11.75, "y":2},
{"label":"k2d", "x":12.75, "y":2, "w":2.25},
{"label":"k2e", "x":15, "y":2},
{"label":"k30", "x":0, "y":3, "w":2.25},
{"label":"k32", "x":2.25, "y":3},
{"label":"k33", "x":3.25, "y":3},
{"label":"k34", "x":4.25, "y":3},
{"label":"k35", "x":5.25, "y":3},
{"label":"k36", "x":6.25, "y":3},
{"label":"k37", "x":7.25, "y":3},
{"label":"k38", "x":8.25, "y":3},
{"label":"k39", "x":9.25, "y":3},
{"label":"k3a", "x":10.25, "y":3},
{"label":"k3b", "x":11.25, "y":3},
{"label":"k3c", "x":12.25, "y":3, "w":1.75},
{"label":"k3d", "x":14, "y":3},
{"label":"k3e", "x":15, "y":3},
{"label":"k40", "x":0, "y":4, "w":1.25},
{"label":"k41", "x":1.25, "y":4, "w":1.25},
{"label":"k42", "x":2.5, "y":4, "w":1.25},
{"label":"k46", "x":3.75, "y":4, "w":6.25},
{"label":"k4a", "x":10, "y":4, "w":1.25},
{"label":"k4b", "x":11.25, "y":4, "w":1.25},
{"label":"k4c", "x":13, "y":4},
{"label":"k4d", "x":14, "y":4},
{"label":"k4e", "x":15, "y":4}
]
},
"LAYOUT_65_ansi_blocker_split_bs": {
"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":"k04", "x":4, "y":0},
{"label":"k05", "x":5, "y":0},
{"label":"k06", "x":6, "y":0},
{"label":"k07", "x":7, "y":0},
{"label":"k08", "x":8, "y":0},
{"label":"k09", "x":9, "y":0},
{"label":"k0a", "x":10, "y":0},
{"label":"k0b", "x":11, "y":0},
{"label":"k0c", "x":12, "y":0},
{"label":"k1d", "x":13, "y":0},
{"label":"k0d", "x":14, "y":0},
{"label":"k0e", "x":15, "y":0},
{"label":"k10", "x":0, "y":1, "w":1.5},
{"label":"k11", "x":1.5, "y":1},
{"label":"k12", "x":2.5, "y":1},
{"label":"k13", "x":3.5, "y":1},
{"label":"k14", "x":4.5, "y":1},
{"label":"k15", "x":5.5, "y":1},
{"label":"k16", "x":6.5, "y":1},
{"label":"k17", "x":7.5, "y":1},
{"label":"k18", "x":8.5, "y":1},
{"label":"k19", "x":9.5, "y":1},
{"label":"k1a", "x":10.5, "y":1},
{"label":"k1b", "x":11.5, "y":1},
{"label":"k1c", "x":12.5, "y":1},
{"label":"k2c", "x":13.5, "y":1, "w":1.5},
{"label":"k1e", "x":15, "y":1},
{"label":"k20", "x":0, "y":2, "w":1.75},
{"label":"k21", "x":1.75, "y":2},
{"label":"k22", "x":2.75, "y":2},
{"label":"k23", "x":3.75, "y":2},
{"label":"k24", "x":4.75, "y":2},
{"label":"k25", "x":5.75, "y":2},
{"label":"k26", "x":6.75, "y":2},
{"label":"k27", "x":7.75, "y":2},
{"label":"k28", "x":8.75, "y":2},
{"label":"k29", "x":9.75, "y":2},
{"label":"k2a", "x":10.75, "y":2},
{"label":"k2b", "x":11.75, "y":2},
{"label":"k2d", "x":12.75, "y":2, "w":2.25},
{"label":"k2e", "x":15, "y":2},
{"label":"k30", "x":0, "y":3, "w":2.25},
{"label":"k32", "x":2.25, "y":3},
{"label":"k33", "x":3.25, "y":3},
{"label":"k34", "x":4.25, "y":3},
{"label":"k35", "x":5.25, "y":3},
{"label":"k36", "x":6.25, "y":3},
{"label":"k37", "x":7.25, "y":3},
{"label":"k38", "x":8.25, "y":3},
{"label":"k39", "x":9.25, "y":3},
{"label":"k3a", "x":10.25, "y":3},
{"label":"k3b", "x":11.25, "y":3},
{"label":"k3c", "x":12.25, "y":3, "w":1.75},
{"label":"k3d", "x":14, "y":3},
{"label":"k3e", "x":15, "y":3},
{"label":"k40", "x":0, "y":4, "w":1.25}, {"label":"k40", "x":0, "y":4, "w":1.25},
{"label":"k41", "x":1.25, "y":4, "w":1.25}, {"label":"k41", "x":1.25, "y":4, "w":1.25},
{"label":"k42", "x":2.5, "y":4, "w":1.25}, {"label":"k42", "x":2.5, "y":4, "w":1.25},
+1 -1
View File
@@ -5,7 +5,7 @@
"width": 14, "width": 14,
"height": 3, "height": 3,
"layouts": { "layouts": {
"LAYOUT": { "LAYOUT_ortho_3x11": {
"layout": [ "layout": [
{"x": 0, "y": 0}, {"x": 0, "y": 0},
{"x": 1, "y": 0}, {"x": 1, "y": 0},
-2
View File
@@ -20,5 +20,3 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
BLUETOOTH_ENABLE = no # Enable Bluetooth BLUETOOTH_ENABLE = no # Enable Bluetooth
AUDIO_ENABLE = no # Audio output AUDIO_ENABLE = no # Audio output
LAYOUTS = ortho_3x11
@@ -0,0 +1,66 @@
/* Copyright 2021 null-ll
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_default( /* base */
KC_GESC, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
KC_INS, 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_MUTE,
KC_DEL, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
KC_LCTL, KC_LALT, KC_SPC, MO(1), KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT
),
[1] = LAYOUT_default( /* fn */
/* esc ` 1 2 3 4 5 6 7 8 9 0 - = bspc */
KC_TRNS, KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS,
/* ins tab Q W E R T Y U I O P [ ] \ rotary */
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_INS, KC_TRNS, KC_TRNS, KC_PSCR, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY,
/* del caps A S D F G H J K L ; ' enter */
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_INS, KC_TRNS,
/* shift Z X C V B B N M , . / shift up */
KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_RSFT, KC_PGUP,
/* ctrl alt space fn space alt ctrl left down right */
KC_LCTL, KC_LALT, KC_TRNS, KC_TRNS, KC_TRNS, KC_RALT, KC_RCTL, KC_HOME, KC_PGDN, KC_END
),
[2] = LAYOUT_default( /* extra */
/* esc ` 1 2 3 4 5 6 7 8 9 0 - = bspc */
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,
/* ins tab Q W E R T Y U I O P [ ] \ rotary */
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_TRNS, KC_TRNS, KC_PSCR, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
/* del caps A S D F G H J K L ; ' enter */
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_INS, KC_TRNS,
/* shift Z X C V B B N M , . / shift up */
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
/* ctrl alt space fn space alt ctrl left down right */
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
)
};
bool encoder_update_user(uint8_t index, bool clockwise) {
if (index == 0) {
if (clockwise) {
tap_code(KC_VOLU);
} else {
tap_code(KC_VOLD);
}
}
return true;
}
+57
View File
@@ -0,0 +1,57 @@
/*
* Copyright 2021 Quentin LEBASTARD <qlebastard@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 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 0xA8F8
#define PRODUCT_ID 0x1830
#define DEVICE_VER 0x0001
#define MANUFACTURER Bastard Keyboards
#define PRODUCT Skeletyl
#define MATRIX_ROWS 8
#define MATRIX_COLS 5
#define RGBLIGHT_LIMIT_VAL 180
#define MATRIX_ROW_PINS { B5, F7, F6, B6 }
#define MATRIX_COL_PINS { E6, C6, B1, B3, B2 }
#define DIODE_DIRECTION ROW2COL
#define RGB_DI_PIN D2
#define RGBLED_NUM 36
#define RGBLED_SPLIT { 18, 18 }
#define RGBLIGHT_ANIMATIONS
#define DEBOUNCE 5
#define SOFT_SERIAL_PIN D0
#define USB_POLLING_INTERVAL_MS 1
#define MASTER_RIGHT
// RGB matrix support
#ifdef RGB_MATRIX_ENABLE
# define SPLIT_TRANSPORT_MIRROR
# define DRIVER_LED_TOTAL 36 // Number of LEDs
# define RGB_MATRIX_SPLIT { 18, 18 }
# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 50
# define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS
# ifndef RGB_DISABLE_WHEN_USB_SUSPENDED
# define RGB_DISABLE_WHEN_USB_SUSPENDED true
# endif
# define RGB_MATRIX_KEYPRESSES
#endif
+49
View File
@@ -0,0 +1,49 @@
{
"keyboard_name": "Skeletyl",
"url": "https://www.bastardkb.com",
"maintainer": "Quentin Lebastard",
"width": 17,
"height": 4,
"layouts": {
"LAYOUT_split_3x5_3": {
"layout": [
{"label":"L00", "x":0, "y":0},
{"label":"L01", "x":1, "y":0},
{"label":"L02", "x":2, "y":0},
{"label":"L03", "x":3, "y":0},
{"label":"L04", "x":4, "y":0},
{"label":"R00", "x":11, "y":0},
{"label":"R01", "x":12, "y":0},
{"label":"R02", "x":13, "y":0},
{"label":"R03", "x":14, "y":0},
{"label":"R04", "x":15, "y":0},
{"label":"L10", "x":0, "y":1},
{"label":"L11", "x":1, "y":1},
{"label":"L12", "x":2, "y":1},
{"label":"L13", "x":3, "y":1},
{"label":"L14", "x":4, "y":1},
{"label":"R10", "x":11, "y":1},
{"label":"R11", "x":12, "y":1},
{"label":"R12", "x":13, "y":1},
{"label":"R13", "x":14, "y":1},
{"label":"R14", "x":15, "y":1},
{"label":"L20", "x":0, "y":2},
{"label":"L21", "x":1, "y":2},
{"label":"L22", "x":2, "y":2},
{"label":"L23", "x":3, "y":2},
{"label":"L24", "x":4, "y":2},
{"label":"R20", "x":11, "y":2},
{"label":"R21", "x":12, "y":2},
{"label":"R22", "x":13, "y":2},
{"label":"R23", "x":14, "y":2},
{"label":"R24", "x":15, "y":2},
{"label":"L33", "x":4, "y":3},
{"label":"L34", "x":5, "y":3},
{"label":"L31", "x":6, "y":3},
{"label":"R33", "x":9, "y":3},
{"label":"R34", "x":10, "y":3},
{"label":"R31", "x":11, "y":3}
]
}
}
}
@@ -0,0 +1,70 @@
/*
* Copyright 2021 Quentin LEBASTARD <qlebastard@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 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_split_3x5_3(
//,-----------------------------------------------------. ,-----------------------------------------------------.
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH,
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
KC_LGUI, KC_SPC , MO(1), MO(2), KC_ENT , KC_RALT
//`--------------------------' `--------------------------'
),
[1] = LAYOUT_split_3x5_3(
//,-----------------------------------------------------. ,-----------------------------------------------------.
KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP,KC_RIGHT, XXXXXXX,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
KC_LGUI, KC_SPC, _______, MO(3), KC_ENT, KC_RALT
//`--------------------------' `--------------------------'
),
[2] = LAYOUT_split_3x5_3(
//,-----------------------------------------------------. ,-----------------------------------------------------.
KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
KC_LGUI, KC_SPC, MO(3), _______, KC_ENT, KC_RALT
//`--------------------------' `--------------------------'
),
[3] = LAYOUT_split_3x5_3(
//,-----------------------------------------------------. ,-----------------------------------------------------.
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
KC_LGUI, KC_SPC, _______, _______, KC_ENT, KC_RALT
//`--------------------------' `--------------------------'
)
};
+17
View File
@@ -0,0 +1,17 @@
# Skeletyl
A very small keyboard made for ergonomic enthusiasts.
* Keyboard Maintainer: [Bastard Keyboards](https://github.com/Bastardkb/)
* Hardware Supported: elite-C V4
* Hardware Availability: [Bastardkb.com](https://bastardkb.com/)
Make example for this keyboard (after setting up your build environment):
make bastardkb/skeletyl:default
This keyboard is made to be used with the Miryoku layout, do not use the default keymap.
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).
See the [keyboard build instructions](http://docs.bastardkb.com/)
+33
View File
@@ -0,0 +1,33 @@
# 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 = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
RGB_MATRIX_ENABLE = yes # Enable keyboard RGB matrix (do not use together with RGBLIGHT_ENABLE)
RGB_MATRIX_DRIVER = WS2812 # RGB matrix driver support
BLUETOOTH_ENABLE = no # Enable Bluetooth
AUDIO_ENABLE = no # Audio output
SPLIT_KEYBOARD = yes
TAP_DANCE_ENABLE = no
LTO_ENABLE = yes
AUDIO_SUPPORTED = no
RGB_MATRIX_SUPPORTED = yes
RGBLIGHT_SUPPORTED = yes
LAYOUTS = split_3x5_3
+81
View File
@@ -0,0 +1,81 @@
/*
* Copyright 2021 Quentin LEBASTARD <qlebastard@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 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 "skeletyl.h"
/**
* LEDs index.
*
* ╭────────────────────╮ ╭────────────────────╮
* 2 3 8 9 12 30 27 26 21 20
* ├────────────────────┤ ├────────────────────┤
* 1 4 7 10 13 31 28 25 22 19
* ├────────────────────┤ ├────────────────────┤
* 0 5 6 11 14 32 29 24 23 18
* ╰────────────────────╯ ╰────────────────────╯
* 15 16 17 35 34 33
* ╰────────────╯ ╰────────────╯
*/
// clang-format off
#ifdef RGB_MATRIX_ENABLE
led_config_t g_led_config = { {
/* Key Matrix to LED index. */
// Left split.
{ 2, 3, 8, 9, 12 }, // Top row
{ 1, 4, 7, 10, 13 }, // Middle row
{ 0, 5, 6, 11, 14 }, // Bottom row
{ 17, NO_LED, 15, 16, NO_LED }, // Thumb cluster
// Right split.
{ 20, 21, 26, 27, 30 }, // Top row
{ 19, 22, 25, 28, 31 }, // Middle row
{ 18, 23, 24, 29, 32 }, // Bottom row
{ 35, NO_LED, 33, 34, NO_LED }, // Thumb cluster
}, {
/* LED index to physical position. */
// Left split.
/* index=0 */ { 0, 42 }, { 0, 21 }, { 0, 0 }, // col 1 (left most)
/* index=3 */ { 18, 0 }, { 18, 21 }, { 18, 42 }, // col 2
/* index=6 */ { 36, 42 }, { 36, 21 }, { 36, 0 },
/* index=9 */ { 54, 0 }, { 54, 21 }, { 54, 42 },
/* index=12 */ { 72, 0 }, { 72, 21 }, { 72, 42 },
/* index=15 */ { 72, 64 }, { 90, 64 }, { 108, 64 }, // Thumb cluster
// Right split.
/* index=18 */ { 224, 42 }, { 224, 21 }, { 224, 0 }, // col 10 (right most)
/* index=21 */ { 206, 0 }, { 206, 21 }, { 206, 42 }, // col 9
/* index=24 */ { 188, 42 }, { 188, 21 }, { 188, 0 },
/* index=27 */ { 170, 0 }, { 170, 21 }, { 170, 42 },
/* index=30 */ { 152, 0 }, { 152, 21 }, { 152, 42 },
/* index=33 */ { 152, 64 }, { 134, 64 }, { 116, 64 }, // Thumb cluster
}, {
/* LED index to flag. */
// Left split.
/* index=0 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, // col 1
/* index=3 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, // col 2
/* index=6 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT,
/* index=9 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT,
/* index=12 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT,
/* index=15 */ LED_FLAG_MODIFIER, LED_FLAG_MODIFIER, LED_FLAG_MODIFIER, // Thumb cluster
// Right split.
/* index=18 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, // col 10
/* index=21 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, // col 9
/* index=24 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT,
/* index=27 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT,
/* index=30 */ LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT,
/* index=33 */ LED_FLAG_MODIFIER, LED_FLAG_MODIFIER, LED_FLAG_MODIFIER, // Thumb cluster
} };
#endif
// clang-format on
+38
View File
@@ -0,0 +1,38 @@
/*
* Copyright 2021 Quentin LEBASTARD <qlebastard@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 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"
// clang-format off
#define LAYOUT_split_3x5_3( \
k00, k01, k02, k03, k04, k44, k43, k42, k41, k40, \
k10, k11, k12, k13, k14, k54, k53, k52, k51, k50, \
k20, k21, k22, k23, k24, k64, k63, k62, k61, k60, \
k33, k34, k31, k71, k74, k73 \
) \
{ \
{ k00, k01, k02, k03, k04 }, \
{ k10, k11, k12, k13, k14 }, \
{ k20, k21, k22, k23, k24 }, \
{ k31, KC_NO, k33, k34, KC_NO }, \
{ k40, k41, k42, k43, k44 }, \
{ k50, k51, k52, k53, k54 }, \
{ k60, k61, k62, k63, k64 }, \
{ k71, KC_NO, k73, k74, KC_NO }, \
}
// clang-format on
+3 -3
View File
@@ -7,9 +7,9 @@ F_CPU = 8000000
# Bootloader selection # Bootloader selection
BOOTLOADER = qmk-dfu BOOTLOADER = qmk-dfu
SRC += ../usart.c \ SRC += usart.c \
../ble.c \ ble.c \
../main.c main.c
OPT_DEFS += -DPROTOCOL_BLE OPT_DEFS += -DPROTOCOL_BLE
OPT_DEFS += -DUART_RX1_BUFFER_SIZE=16 -DUART_TX1_BUFFER_SIZE=16 OPT_DEFS += -DUART_RX1_BUFFER_SIZE=16 -DUART_TX1_BUFFER_SIZE=16
+3 -3
View File
@@ -7,9 +7,9 @@ F_CPU = 8000000
# Bootloader selection # Bootloader selection
BOOTLOADER = qmk-dfu BOOTLOADER = qmk-dfu
SRC += ../usart.c \ SRC += usart.c \
../ble.c \ ble.c \
../main.c main.c
OPT_DEFS += -DPROTOCOL_BLE OPT_DEFS += -DPROTOCOL_BLE
OPT_DEFS += -DUART_RX1_BUFFER_SIZE=16 -DUART_TX1_BUFFER_SIZE=16 OPT_DEFS += -DUART_RX1_BUFFER_SIZE=16 -DUART_TX1_BUFFER_SIZE=16
+3 -1
View File
@@ -48,8 +48,10 @@
#define RGB_DI_PIN E2 #define RGB_DI_PIN E2
#define DRIVER_LED_TOTAL 53 #define DRIVER_LED_TOTAL 53
#ifdef RGB_DI_PIN #ifdef RGB_DI_PIN
#define RGB_MATRIX_KEYPRESSES // reacts to keypresses # define RGB_MATRIX_KEYPRESSES // reacts to keypresses
# define RGBLIGHT_LIMIT_VAL 180 // Limit to vendor-recommended value
#endif #endif
#ifndef RGB_DISABLE_WHEN_USB_SUSPENDED #ifndef RGB_DISABLE_WHEN_USB_SUSPENDED
# define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended # define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended
# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 180 // Limit to vendor-recommended value
#endif #endif
+4 -1
View File
@@ -55,7 +55,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define RGBLIGHT_HUE_STEP 8 #define RGBLIGHT_HUE_STEP 8
#define RGBLIGHT_SAT_STEP 8 #define RGBLIGHT_SAT_STEP 8
#define RGBLIGHT_VAL_STEP 8 #define RGBLIGHT_VAL_STEP 8
#define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ #define RGBLIGHT_LIMIT_VAL 180 // Limit to vendor-recommended value
#define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
/*== all animations enable ==*/ /*== all animations enable ==*/
#define RGBLIGHT_ANIMATIONS #define RGBLIGHT_ANIMATIONS
@@ -70,3 +70,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// #define RGBLIGHT_EFFECT_RGB_TEST // #define RGBLIGHT_EFFECT_RGB_TEST
// #define RGBLIGHT_EFFECT_ALTERNATING // #define RGBLIGHT_EFFECT_ALTERNATING
#endif #endif
#ifdef RGB_MATRIX_ENABLE
# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 180 // Limit to vendor-recommended value
#endif
+4 -1
View File
@@ -53,7 +53,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define RGBLIGHT_HUE_STEP 8 #define RGBLIGHT_HUE_STEP 8
#define RGBLIGHT_SAT_STEP 8 #define RGBLIGHT_SAT_STEP 8
#define RGBLIGHT_VAL_STEP 8 #define RGBLIGHT_VAL_STEP 8
#define RGBLIGHT_LIMIT_VAL 5 /* The maximum brightness level */ #define RGBLIGHT_LIMIT_VAL 180 // Limit to vendor-recommended value
#define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
/*== all animations enable ==*/ /*== all animations enable ==*/
#define RGBLIGHT_ANIMATIONS #define RGBLIGHT_ANIMATIONS
@@ -68,3 +68,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// #define RGBLIGHT_EFFECT_RGB_TEST // #define RGBLIGHT_EFFECT_RGB_TEST
// #define RGBLIGHT_EFFECT_ALTERNATING // #define RGBLIGHT_EFFECT_ALTERNATING
#endif #endif
#ifdef RGB_MATRIX_ENABLE
# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 180 // Limit to vendor-recommended value
#endif
+6 -2
View File
@@ -50,8 +50,12 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define RGB_DI_PIN E2 #define RGB_DI_PIN E2
#define DRIVER_LED_TOTAL 69 #define DRIVER_LED_TOTAL 69
#ifdef RGB_DI_PIN #ifdef RGB_DI_PIN
#define RGBLED_NUM 69 # define RGBLED_NUM 69
#define RGB_MATRIX_KEYPRESSES # define RGB_MATRIX_KEYPRESSES
# define RGBLIGHT_LIMIT_VAL 180 // Limit to vendor-recommended value
#endif
#ifdef RGB_MATRIX_ENABLE
# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 180 // Limit to vendor-recommended value
#endif #endif
// generated by KBFirmware JSON to QMK Parser // generated by KBFirmware JSON to QMK Parser
+6 -3
View File
@@ -50,12 +50,12 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define RGB_DI_PIN E2 #define RGB_DI_PIN E2
#define DRIVER_LED_TOTAL 70 #define DRIVER_LED_TOTAL 70
#ifdef RGB_DI_PIN #ifdef RGB_DI_PIN
#define RGBLED_NUM 70 # define RGBLED_NUM 70
#define RGB_MATRIX_KEYPRESSES # define RGB_MATRIX_KEYPRESSES
// #define RGBLIGHT_HUE_STEP 8 // #define RGBLIGHT_HUE_STEP 8
// #define RGBLIGHT_SAT_STEP 8 // #define RGBLIGHT_SAT_STEP 8
// #define RGBLIGHT_VAL_STEP 8 // #define RGBLIGHT_VAL_STEP 8
// #define RGBLIGHT_LIMIT_VAL 180 /* The maximum brightness level */ # define RGBLIGHT_LIMIT_VAL 180 // Limit to vendor-recommended value
// #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ // #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
/*== all animations enable ==*/ /*== all animations enable ==*/
// #define RGBLIGHT_ANIMATIONS // #define RGBLIGHT_ANIMATIONS
@@ -70,3 +70,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// #define RGBLIGHT_EFFECT_RGB_TEST // #define RGBLIGHT_EFFECT_RGB_TEST
// #define RGBLIGHT_EFFECT_ALTERNATING // #define RGBLIGHT_EFFECT_ALTERNATING
#endif #endif
#ifdef RGB_MATRIX_ENABLE
# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 180 // Limit to vendor-recommended value
#endif
+10 -12
View File
@@ -17,20 +17,18 @@
#include "quantum.h" #include "quantum.h"
#define LAYOUT( \ #define XXX KC_NO
#define LAYOUT_65_iso_blocker( \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, \
K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, \ K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K1D, K2E, \
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \
K40, K41, K42, K46, K49, K4A, K4C, K4D, K4E \ K40, K41, K42, K46, K49, K4A, K4C, K4D, K4E \
) { \ ) { \
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \
{ K20, KC_NO, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E }, \ { K20, XXX, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E }, \
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \ { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \
{ K40, K41, K42, KC_NO, KC_NO, KC_NO, K46, KC_NO, KC_NO, K49, K4A, KC_NO, K4C, K4D, K4E }, \ { K40, K41, K42, XXX, XXX, XXX, K46, XXX, XXX, K49, K4A, XXX, K4C, K4D, K4E }, \
} }
// generated by KBFirmware JSON to QMK Parser
// https://noroadsleft.github.io/kbf_qmk_converter/
Loaded 100 of 1135 files, more files were not shown because too many files have changed in this diff. Show more