Compare commits

..
76 Commits
Author SHA1 Message Date
QMK Bot 2f0dc0fb6d Format code according to conventions (#16419) 2022-02-21 17:44:27 +00:00
peepeetee 3290377918 [Keyboard] infinity81 (#16387) 2022-02-21 09:12:18 -08:00
yiancar 83b9483045 [keyboard] DC01 i2c timeout fix (#16392) 2022-02-21 09:11:49 -08:00
evanmcookandJoel Challis 0b21fbc37b [Keyboard] add evancookaudio sleepingdinosaur (#16320)
Co-authored-by: Joel Challis <[email protected]>
2022-02-21 09:11:23 -08:00
takashicompany 7e4f74d689 [Keyboard] Update Heavy Left (#16354) 2022-02-21 09:11:00 -08:00
peepeetee 59f671744b [Keyboard] ID75 v2 (#16351) 2022-02-21 09:10:19 -08:00
Wolf Van HerrewegheandWolf Van Herreweghe 7fb22706fd [Keyboard] Add sabre (#15964)
Co-authored-by: Wolf Van Herreweghe <[email protected]>
2022-02-21 09:10:06 -08:00
66f9e4eaeandDrashna Jaelre 249eb87102 [Keyboard] [redox_w] add dvorak layout and white led support (#16259)
Co-authored-by: Drashna Jaelre <[email protected]>
2022-02-21 09:09:19 -08:00
Michal Petrikandzvecr b1f8622513 [Docs] Update feature_leader_key.md (#16344)
Co-authored-by: zvecr <[email protected]>
2022-02-21 09:08:36 -08:00
Michal Petrik d3584be431 [Docs] Update newbs_building_firmware.md (#16333) 2022-02-21 09:08:07 -08:00
Takeshi ISHII c204c735af Helix/pico move to split_common (#16418) 2022-02-21 08:30:49 -08:00
Ryan f30f963a0b Internal docs generation updates (#16411) 2022-02-21 15:47:44 +00:00
Takeshi ISHII b1de11c275 Fix a potential bug in encoder_init(). (#16372)
After executing `setPinInputHigh(pin)`, it is necessary to wait for the charging time to read from the corresponding pin. This is the same as requiring `matrix_output_unselect_delay()` after doing `unselect_row()` in matrix.c.
2022-02-21 23:13:06 +09:00
jackytrabbitandRyan ae5f43072f Update the support for lazydesigners/dimple (#14797)
Co-authored-by: Ryan <[email protected]>
2022-02-21 10:03:18 +01:00
QMK Bot f252287b0e Format code according to conventions (#16412) 2022-02-21 00:55:23 -08:00
67b9a722c0 [Keyboard] Add Ellora65 (#14754)
Co-authored-by: Joel Challis <[email protected]>
Co-authored-by: Drashna Jaelre <[email protected]>
Co-authored-by: Ryan <[email protected]>
Co-authored-by: swiftrax <[email protected]>
2022-02-21 00:55:05 -08:00
18490537a5 [Keyboard] Add Snatchpad keyboard (#16330)
Co-authored-by: Drashna Jaelre <[email protected]>
Co-authored-by: Ryan <[email protected]>
Co-authored-by: xia0 <[email protected]>
2022-02-21 00:40:11 -08:00
2d1f2810a4 [Keyboard] add Gizmo Engineering GK6 keyboard (#13907)
Co-authored-by: Ryan <[email protected]>
Co-authored-by: Drashna Jaelre <[email protected]>
2022-02-21 00:38:53 -08:00
019dddcfa3 [Keyboard] Add foundation (#16289)
Co-authored-by: Joel Challis <[email protected]>
Co-authored-by: Ryan <[email protected]>
Co-authored-by: Drashna Jaelre <[email protected]>
2022-02-21 00:28:49 -08:00
deb0fe4bcc [Keyboard] Add glacier in creatkeebs folder (#16079)
Co-authored-by: Joel Challis <[email protected]>
Co-authored-by: Drashna Jaelre <[email protected]>
Co-authored-by: Ryan <[email protected]>
2022-02-20 23:52:39 -08:00
2e31f542dc [Keyboard] Add Obro (#15884)
Co-authored-by: Drashna Jaelre <[email protected]>
Co-authored-by: Ryan <[email protected]>
2022-02-20 23:43:55 -08:00
L. K. Post 14fb3cc8b0 [Keyboard] Add Kyria rev. 2 (#16178) 2022-02-20 22:33:00 -08:00
Ivan GromovandRyan 9bf25d1cd5 [Keyboard] Add Monoflex 60 keyboard (#16234)
Co-authored-by: Ryan <[email protected]>
2022-02-20 22:16:23 -08:00
jack 2d1d44edb7 [Keyboard] Fix Hineybush/h08_ocelot and Hineybush/h65(_hotswap) (#16405) 2022-02-20 22:04:43 -08:00
f7b5d67a7b [Keyboard] Add MW75R2 PCB (#15042)
Co-authored-by: Ryan <[email protected]>
Co-authored-by: James Young <[email protected]>
2022-02-20 22:01:31 -08:00
jack 65af7272f3 [Keyboard] Fix mwstudio/mw65_rgb errors (#16410) 2022-02-20 21:57:11 -08:00
HorrorTroll 3bc8afbb81 Update fix for MW65_rgb and added personal keymap (#15279)
* Update fix for MW65 and added personal keymap

* Resolve fix

* Resolved fix, again

* Added missing GPLv2 license headers

* Resolved issue
2022-02-20 17:18:35 -08:00
RyanandJoel Challis d175ee1d9b rart67m: move OLED and WPM code to default keymap (#16403)
* rart67m: move OLED and WPM code to default keymap

* Apply suggestions from code review

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

Co-authored-by: Joel Challis <[email protected]>
2022-02-20 18:36:15 +00:00
Ryan 60f22831cb clueboard/card: disable Command to reduce size (#16404) 2022-02-20 13:57:03 +00:00
Josh Hinnebusch 38e3be4c74 Add h08_ocelot and h65 PCBs (#14054)
* add h65 start

* add h65 base files

* add ocelot base files

* add via keymap

* Update keyboards/hineybush/h08_ocelot/config.h

* Update keyboards/hineybush/h65/config.h

* add base files for h65 hotswap

* changes made per PR

* finally made updates per PR

* update readmes

* Update keyboards/hineybush/h65_hotswap/config.h

* Update keyboards/hineybush/h65_hotswap/rules.mk

* Update keyboards/hineybush/h65_hotswap/rules.mk

* Update keyboards/hineybush/h65_hotswap/readme.md

* Update keyboards/hineybush/h65_hotswap/info.json

* Update keyboards/hineybush/h65/rules.mk

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

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

* Update keyboards/hineybush/h65_hotswap/h65_hotswap.h

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

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

* Update keyboards/hineybush/h65/rules.mk

* Update keyboards/hineybush/h65/readme.md

* Update keyboards/hineybush/h08_ocelot/h08_ocelot.h

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

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

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

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

* Update keyboards/hineybush/h08_ocelot/readme.md

* Update keyboards/hineybush/h08_ocelot/rules.mk

* Update keyboards/hineybush/h08_ocelot/rules.mk

* Update keyboards/hineybush/h65/h65.h

* Update keyboards/hineybush/h08_ocelot/info.json

* Update keyboards/hineybush/h65/info.json

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

* Apply suggestions from code review

* update jsons for default qmk config layout

* Update keyboards/hineybush/h08_ocelot/rules.mk

* Update keyboards/hineybush/h65/h65.h

* Update keyboards/hineybush/h65/info.json

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

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

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

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

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

* Update keyboards/hineybush/h65_hotswap/rules.mk

* Update keyboards/hineybush/h65/config.h
2022-02-20 00:21:18 -08:00
Benjamin Chausse 60e28544b2 Bliss Hotdox keymaps (#13160)
* Bliss Hotdox keymaps

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

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

* Add GPL License to keymap.c file
Changes to be committed:
	modified:   keymap.c

* make changes requested by fauxpark

* Update keyboards/hotdox/keymaps/bliss/readme.md

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

* Update keyboards/hotdox/keymaps/bliss/readme.md
2022-02-19 23:10:15 -08:00
Matthew Dias 73657a7d58 Add kikkou keyboard (#15291)
* Add kikkou keyboard

* Apply suggestions from code review

* Update keyboards/kikkou/rules.mk

* Apply suggestions from code review1
2022-02-19 21:52:11 -08:00
Ryan 4666d26008 Fix a couple of boards being wrongly identified as AVR (#16377) 2022-02-19 02:53:36 +11:00
Simon 2d12eacb4b [Keyboard] Renamed Frooastboard to Frooastboard Nano (#16373) 2022-02-17 08:59:12 -08:00
Joakim Tufvegren 7dd993fb06 Fix build error for LED Matrix effect solid_reactive_wide. (#16383) 2022-02-17 08:53:06 -08:00
Ryan 548a463fe9 mokey/xox70: clean up layouts (#16375) 2022-02-17 08:43:03 -08:00
Joakim Tufvegren 7f63bcf38b [Bug] Re-add call to suspend_power_down_kb() (#16382) 2022-02-17 08:33:07 -08:00
Takeshi ISHII 7e00fcd7bc [Keyboard] Remove Helix/rev1 (#16389) 2022-02-17 08:18:16 -08:00
Dan Nixon da68083fdf Update USB VID and PID for Aya (#16363) 2022-02-15 18:47:35 +01:00
Ryan 92eb067a63 Add extra braces for trackball keymaps (#16361) 2022-02-15 18:01:54 +11:00
Ryan ac8bee7091 Fix multiple definition errors for trackball "boards" with no keys (#16350) 2022-02-15 01:15:53 +00:00
James Young 485cf920b4 Xenon: correct QMK Configurator key sequence (#16332) 2022-02-13 22:24:52 -08:00
James Young 6b01657a86 Mode M75S Layout Additions, Configurator Data and Code Touch-Up (#16327)
* m75s.h: correct matrix position identifier

`K5C` is actually on row 4, so it should be `K4C`.

* m75s.h: add matrix diagram

* add QMK Configurator data

* polish whitespace

- convert tabs to spaces
- update indent to four spaces
- remove trailing whitespace

* update readme

Didn't seem to be fully updated after being copied from the M65S codebase.

* add LAYOUT_ansi with keymap

ANSI layout with 2u Backspace.

* add LAYOUT_iso with keymap

ISO layout with 2u Backspace.

* add LAYOUT_ansi_tsangan with keymap

ANSI layout with 2u Backspace and 7u Spacebar.

* add LAYOUT_iso_tsangan with keymap

ISO layout with 2u Backspace and 7u Spacebar.

* add LAYOUT_ansi_split_bs with keymap

ANSI layout with Split Backspace.

* add LAYOUT_iso_split_bs with keymap

ISO layout with Split Backspace.

* add LAYOUT_ansi_tsangan_split_bs with keymap

ANSI layout with Split Backspace and 7u Spacebar.

* add LAYOUT_iso_tsangan_split_bs with keymap

ISO layout with Split Backspace and 7u Spacebar.
2022-02-13 22:24:11 -08:00
Ryan b6b7e12029 Digicarp65: fix layouts (#16328) 2022-02-14 13:01:39 +11:00
Max Rumpf 773205cd1f [Keyboard] Convert Maxr1998/Phoebe to use info.json where possible (#16309) 2022-02-11 23:01:25 -08:00
19c57a2a6a [Keyboard] Lulu keyboard by boardsource (#15951)
Co-authored-by: Drashna Jaelre <[email protected]>
Co-authored-by: Ryan <[email protected]>
2022-02-11 20:02:30 -08:00
uqs 40529e89de [Keymap] Add uqs' keymaps for various boards and ploopy mouse (#16265) 2022-02-11 19:22:47 -08:00
Joel Challis 8b48bab54f Add wren configurator data (#16321) 2022-02-12 01:10:48 +00:00
Ryan 5f10387c41 handwired/promethium: fix missing include (#16317) 2022-02-11 12:37:36 +00:00
Ryan 89fc2f166f mechlovin/kay60: fix mismatched layout name (#16314) 2022-02-11 14:37:41 +11:00
Ryan 2bc4a216df maxr1998/pulse4k: Move Combo code to keymap level (#16301)
* maxr1998/pulse4k: Move Combo code to keymap level

* Reorder code
2022-02-11 02:31:19 +00:00
Ryan 63c310f6fd Add 65_iso_split_bs default layout (#16283) 2022-02-11 11:19:18 +11:00
James Young bc5d46aaad Mode 75H Touch-UP (#16310)
* m75h.h: correct matrix position identifier

`K5C` is actually on row 4, so it should be `K4C`.

* m75h.h: add matrix diagram

* add QMK Configurator data

* polish whitespace

- convert tabs to spaces
- update indent to four spaces
- remove trailing whitespace
2022-02-10 21:02:23 +00:00
James Young 195242dc37 keyten kt60-M: rename LAYOUT to LAYOUT_60_tsangan_hhkb (#16307)
* rename LAYOUT to LAYOUT_60_tsangan_hhkb

* info.json: correct maintainer value

Field is meant to reference the maintainer's GitHub username.

* rules.mk: enable Community Layout support
2022-02-10 16:22:42 +00:00
James Young d25bce24cd Keyprez Unicorn: fix QMK Configurator key sequence (#16305)
* info.json: apply friendly formatting

* info.json: fix key sequence
2022-02-10 16:21:38 +00:00
James Young c9e19fe6fc KeebsForAll Freebird Numpad Pro: fix Configurator key positioning (#16303)
* info.json: apply friendly formatting

* info.json: fix key positioning

Fixes the second row being rendered on top of the first row.
2022-02-10 16:19:27 +00:00
James Young 21522e0964 info.json: fix QMK Configurator rendering (#16299) 2022-02-10 16:17:47 +00:00
James Young da4eda8930 info.json: fix key sequence (#16297) 2022-02-10 16:17:12 +00:00
Albert Y f662939037 Sentence structure update (#16306) 2022-02-10 16:16:01 +00:00
Albert Y 3e5cb1da0f Improve description of LED state data sync option (#16302) 2022-02-10 18:12:42 +11:00
James Young cb9142224b Eye Oh Designs SPRH: fix Configurator data (#16296) 2022-02-09 21:24:10 -08:00
James Young c092d716c5 gl516/j73gl: fix Configurator key sequence (#16298) 2022-02-09 21:22:47 -08:00
James Young 66f61ae4cb CMM.Studio Fuji65: correct layout data for real this time (#16295)
Because I apparently can't tell the difference between coordinates and dimensions.
2022-02-09 19:29:25 -08:00
James Young 5475553dd8 Demiurge: correct Configurator Layout data (#16294)
* info.json: apply friendly formatting

* info.json: correct layout data
2022-02-10 01:31:07 +00:00
Sergi Meseguer 628166a3a9 [Keymap] zigotica layout tweaks (#16291) 2022-02-09 17:21:12 -08:00
James Young ae041078e8 CMM.Studio Fuji65: Configurator Data Patch (#16293)
* info.json: correct layout data

* info.json: correct maintainer field
2022-02-10 01:14:32 +00:00
Aric Crosson BouwersandRyan 9d74c95215 [Keymap] submitting ariccb planck keymap (#16177)
Co-authored-by: Ryan <[email protected]>
2022-02-09 17:03:43 -08:00
Arda Kılıçdağı de4f2bf1ff Further update to #13745 on Crkbd keymap (#16284)
* Further update to #13745

Hello, 

This is further update to #13745 , somehow my commit did not get merged 

https://github.com/qmk/qmk_firmware/pull/13745#discussion_r802603490

* Update config.h
2022-02-09 19:47:53 +00:00
c49438feec [Keyboard] Digicarp65 (#15926)
Co-authored-by: Drashna Jaelre <[email protected]>
Co-authored-by: Ryan <[email protected]>
Co-authored-by: swiftrax <[email protected]>
2022-02-08 21:51:51 -08:00
MechMerlinandDrashna Jaelre c212b65e48 New Keyboard: 1upkeyboards super16v2 (#16198)
Co-authored-by: Drashna Jaelre <[email protected]>
2022-02-08 21:51:20 -08:00
peepeeteeandDrashna Jaelre b114b27373 [Keyboard] Idobao ID80 V3 (#15912)
Co-authored-by: Drashna Jaelre <[email protected]>
2022-02-08 21:49:53 -08:00
bomb a75fb03f39 [Keyboard] MelGeek Mach80 rev2 (#15610) 2022-02-08 21:49:40 -08:00
Vino Rodrigues bf4ce41696 [Keyboard] refine LED Matrix LED positions on KBD67 Lite (#15769) 2022-02-08 21:42:01 -08:00
Danny 11e50f5ff1 [Keyboard] Add explicit RGB Matrix defines for Iris Rev. 6 (#16275) 2022-02-08 21:23:25 -08:00
71a48a0102 [Keyboard] Add Kapl (#16255)
Co-authored-by: Drashna Jaelre <[email protected]>
Co-authored-by: Ryan <[email protected]>
2022-02-08 21:19:54 -08:00
IskandarMa 04020da48c [Docs] pr checklist: update doc hyperlinks to relative ones and use IDs (#16263) 2022-02-08 21:12:39 -08:00
445 changed files with 19277 additions and 4260 deletions
-1
View File
@@ -18,7 +18,6 @@
# QMK-specific
api_data/v1
doxygen/
quantum/version.h
*.bin
*.eep
+3 -3
View File
@@ -21,7 +21,7 @@ DOXYFILE_ENCODING = UTF-8
PROJECT_NAME = "QMK Firmware"
PROJECT_NUMBER = https://github.com/qmk/qmk_firmware
PROJECT_BRIEF = "Keyboard controller firmware for Atmel AVR and ARM USB families"
OUTPUT_DIRECTORY = doxygen
OUTPUT_DIRECTORY = .build/doxygen
ALLOW_UNICODE_NAMES = NO
OUTPUT_LANGUAGE = English
BRIEF_MEMBER_DESC = YES
@@ -145,7 +145,7 @@ FILE_PATTERNS = *.c \
RECURSIVE = YES
EXCLUDE =
EXCLUDE_SYMLINKS = NO
EXCLUDE_PATTERNS =
EXCLUDE_PATTERNS = */protocol/arm_atsam/*
EXCLUDE_SYMBOLS =
EXAMPLE_PATH =
EXAMPLE_PATTERNS = *
@@ -209,7 +209,7 @@ EXPAND_ONLY_PREDEF = NO
SEARCH_INCLUDES = YES
INCLUDE_PATH =
INCLUDE_FILE_PATTERNS =
PREDEFINED =
PREDEFINED = __DOXYGEN__ PROGMEM
EXPAND_AS_DEFINED =
SKIP_FUNCTION_MACROS = YES
+1 -1
View File
@@ -85,7 +85,7 @@ bool encoder_update_user(uint8_t index, bool clockwise) {
}
```
!> 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.
!> If you return `true`, it will allow the keyboard level code to run as well. Returning `false` will override the keyboard level code, depending on how the keyboard function is set up.
Layer conditions can also be used with the callback function like the following:
+5 -5
View File
@@ -37,7 +37,7 @@ void matrix_scan_user(void) {
}
```
As you can see, you have a few function. You can use `SEQ_ONE_KEY` for single-key sequences (Leader followed by just one key), and `SEQ_TWO_KEYS`, `SEQ_THREE_KEYS` up to `SEQ_FIVE_KEYS` for longer sequences.
As you can see, you have a few functions. You can use `SEQ_ONE_KEY` for single-key sequences (Leader followed by just one key), and `SEQ_TWO_KEYS`, `SEQ_THREE_KEYS` up to `SEQ_FIVE_KEYS` for longer sequences.
Each of these accepts one or more keycodes as arguments. This is an important point: You can use keycodes from **any layer on your keyboard**. That layer would need to be active for the leader macro to fire, obviously.
@@ -74,9 +74,9 @@ SEQ_THREE_KEYS(KC_C, KC_C, KC_C) {
## Infinite Leader key timeout
Sometimes your leader key is not on a comfortable places as the rest of keys on your sequence. Imagine that your leader key is one of your outer top right keys, you may need to reposition your hand just to reach your leader key.
Sometimes your leader key is not on a comfortable place as the rest of keys on your sequence. Imagine that your leader key is one of your outer top right keys, you may need to reposition your hand just to reach your leader key.
This can make typing the entire sequence on time hard even if you are able to type most of the sequence fast. For example, if your sequence is `Leader + asd` typing `asd` fast is very easy once you have your hands in your home row. However starting the sequence in time after moving your hand out of the home row to reach the leader key and back is not.
To remove the stress this situation produces to your hands you can enable an infinite timeout just for the leader key. This mean that, after you hit the leader key you will have an infinite amount of time to start the rest of the sequence, allowing you to proper position your hands on the best position to type the rest of the sequence comfortably.
To remove the stress this situation produces to your hands you can enable an infinite timeout just for the leader key. This means that after you hit the leader key you will have an infinite amount of time to start the rest of the sequence, allowing you to proper position your hands on the best position to type the rest of the sequence comfortably.
This infinite timeout only affects the leader key, so in our previous example of `Leader + asd` you will have an infinite amount of time between `Leader` and `a`, but once you start the sequence the timeout you have configured (global or per key) will work normally.
This way you can configure a very short `LEADER_TIMEOUT` but still have plenty of time to position your hands.
@@ -89,11 +89,11 @@ In order to enable this, place this in your `config.h`:
By default, the Leader Key feature will filter the keycode out of [`Mod-Tap`](mod_tap.md) and [`Layer Tap`](feature_layers.md#switching-and-toggling-layers) functions when checking for the Leader sequences. That means if you're using `LT(3, KC_A)`, it will pick this up as `KC_A` for the sequence, rather than `LT(3, KC_A)`, giving a more expected behavior for newer users.
While, this may be fine for most, if you want to specify the whole keycode (eg, `LT(3, KC_A)` from the example above) in the sequence, you can enable this by added `#define LEADER_KEY_STRICT_KEY_PROCESSING` to your `config.h` file. This will then disable the filtering, and you'll need to specify the whole keycode.
While, this may be fine for most, if you want to specify the whole keycode (eg, `LT(3, KC_A)` from the example above) in the sequence, you can enable this by adding `#define LEADER_KEY_STRICT_KEY_PROCESSING` to your `config.h` file. This will then disable the filtering, and you'll need to specify the whole keycode.
## Customization
The Leader Key feature has some additional customization to how the Leader Key feature works. It has two functions that can be called at certain parts of the process. Namely `leader_start()` and `leader_end()`.
The Leader Key feature has some additional customization to how the Leader Key feature works. It has two functions that can be called at certain parts of the process. Namely `leader_start()` and `leader_end()`.
The `leader_start()` function is called when you tap the `KC_LEAD` key, and the `leader_end()` function is called when either the leader sequence is completed, or the leader timeout is hit.
+1 -1
View File
@@ -1,6 +1,6 @@
# LED Indicators
?> This feature requires additional configuration to work on both halves of a split keyboard see [Data sync options](feature_split_keyboard.md#data-sync-options)
?> LED indicators on split keyboards will require state information synced to the slave half (e.g. `#define SPLIT_LED_STATE_ENABLE`). See [data sync options](feature_split_keyboard.md#data-sync-options) for more details.
QMK provides methods to read 5 of the LEDs defined in the HID spec:
+1 -1
View File
@@ -1,6 +1,6 @@
# Building Your First Firmware
Now that you have setup your build environment you are ready to start building custom firmware. For this section of the guide we will bounce between 3 programs- your file manager, your text editor, and your terminal window. Keep all 3 open until you are done and happy with your keyboard firmware.
Now that you have set up your build environment you are ready to start building custom firmware. For this section of the guide we will bounce between 3 programs- your file manager, your text editor, and your terminal window. Keep all 3 open until you are done and happy with your keyboard firmware.
## Configure Your Build Environment Defaults (Optional)
+7 -7
View File
@@ -8,7 +8,7 @@ If there are any inconsistencies with these recommendations, you're best off [cr
- PR should be submitted using a non-`master` branch on the source repository
- this does not mean you target a different branch for your PR, rather that you're not working out of your own master branch
- if submitter _does_ use their own `master` branch, they'll be given a link to the ["how to git"](https://docs.qmk.fm/#/newbs_git_using_your_master_branch) page after merging -- (end of this document will contain the contents of the message)
- if submitter _does_ use their own `master` branch, they'll be given a link to the ["how to git"](newbs_git_using_your_master_branch.md) page after merging -- (end of this document will contain the contents of the message)
- newly-added directories and filenames must be lowercase
- this rule may be relaxed if upstream sources originally had uppercase characters (e.g. LUFA, ChibiOS, or imported files from other repositories etc.)
- if there is valid justification (i.e. consistency with existing core files etc.) this can be relaxed
@@ -76,9 +76,9 @@ https://github.com/qmk/qmk_firmware/pulls?q=is%3Apr+is%3Aclosed+label%3Akeyboard
- `<keyboard>.c`
- empty `xxxx_xxxx_kb()` or other weak-defined default implemented functions removed
- commented-out functions removed too
- `matrix_init_board()` etc. migrated to `keyboard_pre_init_kb()`, see: [keyboard_pre_init*](https://docs.qmk.fm/#/custom_quantum_functions?id=keyboard_pre_init_-function-documentation)
- prefer `CUSTOM_MATRIX = lite` if custom matrix used, allows for standard debounce, see [custom matrix 'lite'](https://docs.qmk.fm/#/custom_matrix?id=lite)
- prefer LED indicator [Configuration Options](https://docs.qmk.fm/#/feature_led_indicators?id=configuration-options) to custom `led_update_*()` implementations where possible
- `matrix_init_board()` etc. migrated to `keyboard_pre_init_kb()`, see: [keyboard_pre_init*](custom_quantum_functions.md?id=keyboard_pre_init_-function-documentation)
- prefer `CUSTOM_MATRIX = lite` if custom matrix used, allows for standard debounce, see [custom matrix 'lite'](custom_matrix.md?id=lite)
- prefer LED indicator [Configuration Options](feature_led_indicators.md?id=configuration-options) to custom `led_update_*()` implementations where possible
- `<keyboard>.h`
- `#include "quantum.h"` appears at the top
- `LAYOUT` macros should use standard definitions if applicable
@@ -111,13 +111,13 @@ Also, specific to ChibiOS:
- example: For an STM32L082KZ, given the similarity to an STM32L073RZ, you can use `BOARD = ST_NUCLEO64_L073RZ` in rules.mk
- QMK is migrating to not having custom board definitions if at all possible, due to the ongoing maintenance burden when upgrading ChibiOS
- New board definitions must not be embedded in a keyboard PR
- See _Core PRs_ below for the procedure for adding a new board to QMK
- See [Core PRs](#core-pr) below for the procedure for adding a new board to QMK
- if a board definition is unavoidable, `board.c` must have a standard `__early_init()` (as per normal ChibiOS board defs) and an empty `boardInit()`:
- see Arm/ChibiOS [early initialization](https://docs.qmk.fm/#/platformdev_chibios_earlyinit?id=board-init)
- see Arm/ChibiOS [early initialization](platformdev_chibios_earlyinit.md?id=board-init)
- `__early_init()` should be replaced by either `early_hardware_init_pre()` or `early_hardware_init_post()` as appropriate
- `boardInit()` should be migrated to `board_init()`
## Core PRs
## Core PRs :id=core-pr
- must now target `develop` branch, which will subsequently be merged back to `master` on the breaking changes timeline
- any new boards adding support for new hardware now requires a corresponding test board under `keyboards/handwired/onekey`
+2 -3
View File
@@ -125,11 +125,10 @@ uint8_t ps2_host_recv_response(void) {
// Command may take 25ms/20ms at most([5]p.46, [3]p.21)
// 250 * 100us(wait for start bit in ps2_host_recv)
uint8_t data = 0;
uint8_t try
= 250;
uint8_t try = 250;
do {
data = ps2_host_recv();
} while (try --&&ps2_error);
} while (try-- && ps2_error);
return data;
}
+151
View File
@@ -0,0 +1,151 @@
/* Copyright 2022 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/>.
*/
#pragma once
#include "config_common.h"
/* USB Device descriptor parameter */
#define VENDOR_ID 0x6F75 // OU
#define PRODUCT_ID 0x5517
#define DEVICE_VER 0x0001
#define MANUFACTURER 1upkeyboards
#define PRODUCT super16v2
/* key matrix size */
#define MATRIX_ROWS 4
#define MATRIX_COLS 4
/*
* 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)
*
*/
// 0 1 2 3
#define MATRIX_ROW_PINS { D1, D2, D3, D4 }
#define MATRIX_COL_PINS { D5, D6, C2, D0 }
#define UNUSED_PINS
/* COL2ROW, ROW2COL */
#define DIODE_DIRECTION COL2ROW
/*
* Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN.
*/
#define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6
//#define LED_NUM_LOCK_PIN B0
//#define LED_CAPS_LOCK_PIN B1
//#define LED_SCROLL_LOCK_PIN B2
//#define LED_COMPOSE_PIN B3
//#define LED_KANA_PIN B4
//#define BACKLIGHT_PIN B7
//#define BACKLIGHT_LEVELS 3
//#define BACKLIGHT_BREATHING
#define RGB_DI_PIN B5
#ifdef RGB_DI_PIN
# define RGBLED_NUM 20
# define RGBLIGHT_HUE_STEP 8
# define RGBLIGHT_SAT_STEP 8
# define RGBLIGHT_VAL_STEP 8
# define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
# define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
# define RGBLIGHT_EFFECT_BREATHING
# define RGBLIGHT_EFFECT_RAINBOW_MOOD
# define RGBLIGHT_EFFECT_RAINBOW_SWIRL
# define RGBLIGHT_EFFECT_SNAKE
# define RGBLIGHT_EFFECT_KNIGHT
# define RGBLIGHT_EFFECT_CHRISTMAS
# define RGBLIGHT_EFFECT_STATIC_GRADIENT
# define RGBLIGHT_EFFECT_RGB_TEST
# define RGBLIGHT_EFFECT_ALTERNATING
/*== customize breathing effect ==*/
/*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/
//# define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64
/*==== use exp() and sin() ====*/
//# define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7
//# define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255
#endif
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 5
/* define if matrix has ghost (lacks anti-ghosting diodes) */
//#define MATRIX_HAS_GHOST
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
* This is useful for the Windows task manager shortcut (ctrl+shift+esc).
*/
//#define GRAVE_ESC_CTRL_OVERRIDE
/*
* Force NKRO
*
* Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
* state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
* makefile for this to work.)
*
* If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
* until the next keyboard reset.
*
* NKRO may prevent your keystrokes from being detected in the BIOS, but it is
* fully operational during normal computer usage.
*
* For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
* or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
* bootmagic, NKRO mode will always be enabled until it is toggled again during a
* power-up.
*
*/
//#define FORCE_NKRO
/*
* Feature disable options
* These options are also useful to firmware size reduction.
*/
/* disable debug print */
//#define NO_DEBUG
/* disable print */
//#define NO_PRINT
/* disable action features */
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
/* disable these deprecated features by default */
#define NO_ACTION_MACRO
#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
@@ -0,0 +1,10 @@
{
"keyboard_name": "super16v2",
"url": "",
"maintainer": "qmk",
"layouts": {
"LAYOUT_ortho_4x4": {
"layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}]
}
}
}
@@ -0,0 +1,34 @@
/* Copyright 2022 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
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_ortho_4x4( /* Base */
KC_P7, KC_P8, KC_P9, KC_PMNS,
KC_P4, KC_P5, KC_P6, KC_PPLS,
KC_P1, KC_P2, KC_P3, KC_PSLS,
MO(1), KC_P0, KC_PDOT, KC_PENT
),
[1] = LAYOUT_ortho_4x4( /* Fn Layer */
RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI,
RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, RESET
),
};
@@ -0,0 +1 @@
# The default keymap for Super 16 V2
@@ -0,0 +1,48 @@
/* Copyright 2022 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
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_ortho_4x4( /* Base */
KC_P7, KC_P8, KC_P9, KC_PMNS,
KC_P4, KC_P5, KC_P6, KC_PPLS,
KC_P1, KC_P2, KC_P3, KC_PSLS,
MO(1), KC_P0, KC_PDOT, KC_PENT
),
[1] = LAYOUT_ortho_4x4( /* Fn Layer */
RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI,
RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, RESET
),
[2] = LAYOUT_ortho_4x4(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
),
[3] = LAYOUT_ortho_4x4(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
),
};
@@ -0,0 +1 @@
# The default keymap for Super 16 V2
@@ -0,0 +1,25 @@
# Super 16 V2
A 4x4 macropad with RGB inswitch lighting and underglow.
* Keyboard Maintainer: [MechMerlin](https://github.com/mechmerlin)
* Hardware Supported: 1upkeyboards Super 16 V2
* Hardware Availability: [1upkeyboards](https://1upkeyboards.com/)
Make example for this keyboard (after setting up your build environment):
make 1upkeyboards/super16v2:default
Flashing example for this keyboard:
make 1upkeyboards/super16v2:default:flash
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
## Bootloader
Enter the bootloader in 3 ways:
* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead
* **Keycode in layout**: Press the key mapped to `RESET` if it is available
+18
View File
@@ -0,0 +1,18 @@
# MCU name
MCU = atmega32u2
# Bootloader selection
BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
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
NKRO_ENABLE = no # Enable N-Key Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
AUDIO_ENABLE = no # Audio output
@@ -0,0 +1,17 @@
/* Copyright 2022 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 "super16v2.h"
@@ -0,0 +1,39 @@
/* Copyright 2022 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/>.
*/
#pragma once
#include "quantum.h"
/* This is a shortcut to help you visually see your layout.
*
* The first section contains all of the arguments representing the physical
* layout of the board and position of the keys.
*
* The second converts the arguments into a two-dimensional array which
* represents the switch matrix.
*/
#define LAYOUT_ortho_4x4( \
k00, k01, k02, k03, \
k10, k11, k12, k13, \
k20, k21, k22, k23, \
k30, k31, k32, k33 \
) { \
{ k00, k01, k02, k03 }, \
{ k10, k11, k12, k13 }, \
{ k20, k21, k22, k23 }, \
{ k30, k31, k32, k33 } \
}
+126
View File
@@ -0,0 +1,126 @@
// Copyright 2022 peepeetee (@peepeetee)
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#include "config_common.h"
/* USB Device descriptor parameter */
#define VENDOR_ID 0xADA0
#define PRODUCT_ID 0x0081
#define DEVICE_VER 0x0001
#define MANUFACTURER Ada
#define PRODUCT infinity81
/* key matrix size */
#define MATRIX_ROWS 6
#define MATRIX_COLS 15
/*
* 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 { B3, B2, B1, B0, F6, B7 }
#define MATRIX_COL_PINS { D1, D2, D3, D5, D4, D6, D7, B4, B5, B6, C6, C7, F5, F1, F4 }
#define UNUSED_PINS
/* COL2ROW, ROW2COL */
#define DIODE_DIRECTION COL2ROW
//#define LED_NUM_LOCK_PIN B0
//#define LED_CAPS_LOCK_PIN B1
//#define LED_SCROLL_LOCK_PIN B2
//#define LED_COMPOSE_PIN B3
//#define LED_KANA_PIN B4
//#define BACKLIGHT_PIN B7
//#define BACKLIGHT_LEVELS 3
//#define BACKLIGHT_BREATHING
#define RGB_DI_PIN D0
#ifdef RGB_DI_PIN
# define RGBLED_NUM 107
# define RGBLIGHT_HUE_STEP 8
# define RGBLIGHT_SAT_STEP 8
# define RGBLIGHT_VAL_STEP 8
# define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
# define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
#define RGBLIGHT_EFFECT_BREATHING
#define RGBLIGHT_EFFECT_RAINBOW_MOOD
#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
#define RGBLIGHT_EFFECT_SNAKE
#define RGBLIGHT_EFFECT_KNIGHT
#define RGBLIGHT_EFFECT_CHRISTMAS
#define RGBLIGHT_EFFECT_STATIC_GRADIENT
#define RGBLIGHT_EFFECT_RGB_TEST
#define RGBLIGHT_EFFECT_ALTERNATING
#define RGBLIGHT_EFFECT_TWINKLE
#endif
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 5
/* define if matrix has ghost (lacks anti-ghosting diodes) */
//#define MATRIX_HAS_GHOST
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
* This is useful for the Windows task manager shortcut (ctrl+shift+esc).
*/
//#define GRAVE_ESC_CTRL_OVERRIDE
/*
* Force NKRO
*
* Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
* state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
* makefile for this to work.)
*
* If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
* until the next keyboard reset.
*
* NKRO may prevent your keystrokes from being detected in the BIOS, but it is
* fully operational during normal computer usage.
*
* For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
* or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
* bootmagic, NKRO mode will always be enabled until it is toggled again during a
* power-up.
*
*/
//#define FORCE_NKRO
/*
* Feature disable options
* These options are also useful to firmware size reduction.
*/
/* disable debug print */
//#define NO_DEBUG
/* disable print */
//#define NO_PRINT
/* disable action features */
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
/* disable these deprecated features by default */
#define NO_ACTION_MACRO
#define NO_ACTION_FUNCTION
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
+4
View File
@@ -0,0 +1,4 @@
// Copyright 2022 peepeetee (@peepeetee)
// SPDX-License-Identifier: GPL-2.0-or-later
#include "infinity81.h"
+30
View File
@@ -0,0 +1,30 @@
// Copyright 2022 peepeetee (@peepeetee)
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#include "quantum.h"
/* This is a shortcut to help you visually see your layout.
*
* The first section contains all of the arguments representing the physical
* layout of the board and position of the keys.
*
* The second converts the arguments into a two-dimensional array which
* represents the switch matrix.
*/
#define LAYOUT( \
K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, \
K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \
K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, \
K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K313, K314, \
K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K413, K414, \
K500, K501, K502, K505, K510, K511, K512, K513, K514 \
) { \
{ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, KC_NO, KC_NO }, \
{ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \
{ K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214 }, \
{ K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, KC_NO, K313, K314 }, \
{ K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, KC_NO, K413, K414 }, \
{ K500, K501, K502, KC_NO, KC_NO, K505, KC_NO, KC_NO, KC_NO, KC_NO, K510, K511, K512, K513, K514 } \
}
+92
View File
@@ -0,0 +1,92 @@
{
"keyboard_name": "infinity81",
"url": "",
"maintainer": "qmk",
"layouts": {
"LAYOUT": {
"layout": [
{ "label": "K00 (B3,D1)", "x": 0, "y": 0 },
{ "label": "K01 (B3,D2)", "x": 1.25, "y": 0 },
{ "label": "K02 (B3,D3)", "x": 2.25, "y": 0 },
{ "label": "K03 (B3,D5)", "x": 3.25, "y": 0 },
{ "label": "K04 (B3,D4)", "x": 4.25, "y": 0 },
{ "label": "K05 (B3,D6)", "x": 5.5, "y": 0 },
{ "label": "K06 (B3,D7)", "x": 6.5, "y": 0 },
{ "label": "K07 (B3,B4)", "x": 7.5, "y": 0 },
{ "label": "K08 (B3,B5)", "x": 8.5, "y": 0 },
{ "label": "K09 (B3,B6)", "x": 9.75, "y": 0 },
{ "label": "K0A (B3,C6)", "x": 10.75, "y": 0 },
{ "label": "K0B (B3,C7)", "x": 11.75, "y": 0 },
{ "label": "K0C (B3,F5)", "x": 12.75, "y": 0 },
{ "label": "K10 (B2,D1)", "x": 0, "y": 1.25 },
{ "label": "K11 (B2,D2)", "x": 1, "y": 1.25 },
{ "label": "K12 (B2,D3)", "x": 2, "y": 1.25 },
{ "label": "K13 (B2,D5)", "x": 3, "y": 1.25 },
{ "label": "K14 (B2,D4)", "x": 4, "y": 1.25 },
{ "label": "K15 (B2,D6)", "x": 5, "y": 1.25 },
{ "label": "K16 (B2,D7)", "x": 6, "y": 1.25 },
{ "label": "K17 (B2,B4)", "x": 7, "y": 1.25 },
{ "label": "K18 (B2,B5)", "x": 8, "y": 1.25 },
{ "label": "K19 (B2,B6)", "x": 9, "y": 1.25 },
{ "label": "K1A (B2,C6)", "x": 10, "y": 1.25 },
{ "label": "K1B (B2,C7)", "x": 11, "y": 1.25 },
{ "label": "K1C (B2,F5)", "x": 12, "y": 1.25 },
{ "label": "K1D (B2,F1)", "x": 13, "y": 1.25, "w": 2 },
{ "label": "K1E (B2,F4)", "x": 15, "y": 1.25 },
{ "label": "K20 (B1,D1)", "x": 0, "y": 2.25, "w": 1.5 },
{ "label": "K21 (B1,D2)", "x": 1.5, "y": 2.25 },
{ "label": "K22 (B1,D3)", "x": 2.5, "y": 2.25 },
{ "label": "K23 (B1,D5)", "x": 3.5, "y": 2.25 },
{ "label": "K24 (B1,D4)", "x": 4.5, "y": 2.25 },
{ "label": "K25 (B1,D6)", "x": 5.5, "y": 2.25 },
{ "label": "K26 (B1,D7)", "x": 6.5, "y": 2.25 },
{ "label": "K27 (B1,B4)", "x": 7.5, "y": 2.25 },
{ "label": "K28 (B1,B5)", "x": 8.5, "y": 2.25 },
{ "label": "K29 (B1,B6)", "x": 9.5, "y": 2.25 },
{ "label": "K2A (B1,C6)", "x": 10.5, "y": 2.25 },
{ "label": "K2B (B1,C7)", "x": 11.5, "y": 2.25 },
{ "label": "K2C (B1,F5)", "x": 12.5, "y": 2.25 },
{ "label": "K2D (B1,F1)", "x": 13.5, "y": 2.25, "w": 1.5 },
{ "label": "K2E (B1,F4)", "x": 15, "y": 2.25 },
{ "label": "K30 (B0,D1)", "x": 0, "y": 3.25, "w": 1.75 },
{ "label": "K31 (B0,D2)", "x": 1.75, "y": 3.25 },
{ "label": "K32 (B0,D3)", "x": 2.75, "y": 3.25 },
{ "label": "K33 (B0,D5)", "x": 3.75, "y": 3.25 },
{ "label": "K34 (B0,D4)", "x": 4.75, "y": 3.25 },
{ "label": "K35 (B0,D6)", "x": 5.75, "y": 3.25 },
{ "label": "K36 (B0,D7)", "x": 6.75, "y": 3.25 },
{ "label": "K37 (B0,B4)", "x": 7.75, "y": 3.25 },
{ "label": "K38 (B0,B5)", "x": 8.75, "y": 3.25 },
{ "label": "K39 (B0,B6)", "x": 9.75, "y": 3.25 },
{ "label": "K3A (B0,C6)", "x": 10.75, "y": 3.25 },
{ "label": "K3B (B0,C7)", "x": 11.75, "y": 3.25 },
{ "label": "K3D (B0,F1)", "x": 12.75, "y": 3.25, "w": 2.25 },
{ "label": "K3E (B0,F4)", "x": 15, "y": 3.25 },
{ "label": "K40 (F6,D1)", "x": 0, "y": 4.25, "w": 2.25 },
{ "label": "K41 (F6,D2)", "x": 2.25, "y": 4.25 },
{ "label": "K42 (F6,D3)", "x": 3.25, "y": 4.25 },
{ "label": "K43 (F6,D5)", "x": 4.25, "y": 4.25 },
{ "label": "K44 (F6,D4)", "x": 5.25, "y": 4.25 },
{ "label": "K45 (F6,D6)", "x": 6.25, "y": 4.25 },
{ "label": "K46 (F6,D7)", "x": 7.25, "y": 4.25 },
{ "label": "K47 (F6,B4)", "x": 8.25, "y": 4.25 },
{ "label": "K48 (F6,B5)", "x": 9.25, "y": 4.25 },
{ "label": "K49 (F6,B6)", "x": 10.25, "y": 4.25 },
{ "label": "K4A (F6,C6)", "x": 11.25, "y": 4.25 },
{ "label": "K4B (F6,C7)", "x": 12.25, "y": 4.25, "w": 1.75 },
{ "label": "K4D (F6,F1)", "x": 14, "y": 4.25 },
{ "label": "K4E (F6,F4)", "x": 15, "y": 4.25 },
{ "label": "K50 (B7,D1)", "x": 0, "y": 5.25, "w": 1.25 },
{ "label": "K51 (B7,D2)", "x": 1.25, "y": 5.25, "w": 1.25 },
{ "label": "K52 (B7,D3)", "x": 2.5, "y": 5.25, "w": 1.25 },
{ "label": "K55 (B7,D6)", "x": 3.75, "y": 5.25, "w": 6.25 },
{ "label": "K5A (B7,C6)", "x": 10, "y": 5.25, "w": 1.25 },
{ "label": "K5B (B7,C7)", "x": 11.25, "y": 5.25, "w": 1.25 },
{ "label": "K5C (B7,F5)", "x": 13, "y": 5.25 },
{ "label": "K5D (B7,F1)", "x": 14, "y": 5.25 },
{ "label": "K5E (B7,F4)", "x": 15, "y": 5.25 }
]
}
}
,"meta": "https://noroadsleft.github.io/kbf_qmk_converter/"
}
@@ -0,0 +1,23 @@
// Copyright 2022 peepeetee (@peepeetee)
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = 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_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_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_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_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_LCTL, KC_LEFT, KC_DOWN, KC_RGHT),
[1] = LAYOUT(
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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
};
@@ -0,0 +1 @@
# The default keymap for infinity81
+27
View File
@@ -0,0 +1,27 @@
# infinity81
![infinity81](https://i.imgur.com/9d6IcuA.jpg)
A per key RGB 75% with blocker keyboard
* Keyboard Maintainer: [peepeetee](https://github.com/peepeetee)
* Hardware Supported: infinity81
* Hardware Availability: no longer avaliable - future groupbuy possible
Make example for this keyboard (after setting up your build environment):
make ada/infinity81:default
Flashing example for this keyboard:
make ada/infinity81:default:flash
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
## Bootloader
Enter the bootloader in 3 ways:
* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
* **Physical reset button**: Briefly press the button on the back of the PCB
* **Keycode in layout**: Press the key mapped to `RESET` if it is available
+18
View File
@@ -0,0 +1,18 @@
# MCU name
MCU = atmega32u4
# Bootloader selection
BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
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
NKRO_ENABLE = no # Enable N-Key Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
AUDIO_ENABLE = no # Audio output
+2 -2
View File
@@ -18,8 +18,8 @@
#include "config_common.h"
#define VENDOR_ID 0xBEEF
#define PRODUCT_ID 0x0003
#define VENDOR_ID 0x1209
#define PRODUCT_ID 0x2925
#define DEVICE_VER 0x0001
#define MANUFACTURER DanNixon
#define PRODUCT Aya
+47
View File
@@ -0,0 +1,47 @@
// Copyright 2022 Cole Smith <[email protected]>
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#include "config_common.h"
#define VENDOR_ID 0x4273
#define PRODUCT_ID 0x7685
#define DEVICE_VER 0x0000
#define MANUFACTURER Boardsource
#define PRODUCT lulu
#define MATRIX_ROWS 10
#define MATRIX_COLS 6
#define MATRIX_ROW_PINS {C6, D7, E6, B4, B5}
// wiring of each half
#define MATRIX_COL_PINS {F6, F7, B1, B3, B2, B6}
#define USE_SERIAL
#define SOFT_SERIAL_PIN D2
#define SPLIT_USB_DETECT
#define RGB_DI_PIN D3
#define ENCODERS_PAD_A { F0 }
#define ENCODERS_PAD_B { F1 }
#define ENCODERS_PAD_A_RIGHT { F0 }
#define ENCODERS_PAD_B_RIGHT { F1 }
/* Set 0 if debouncing isn't needed */
#define DEBOUNCE 5
#define DIODE_DIRECTION COL2ROW
#ifdef RGB_MATRIX_ENABLE
#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150
#define RGBLED_NUM 70 // Number of LEDs
#define DRIVER_LED_TOTAL RGBLED_NUM
#define RGB_MATRIX_SPLIT { 35, 35 }
#define SPLIT_TRANSPORT_MIRROR
#define RGBLIGHT_LIMIT_VAL 150
#define ENABLE_RGB_MATRIX_ALPHAS_MODS
#define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
#define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
#define ENABLE_RGB_MATRIX_BREATHING
#define ENABLE_RGB_MATRIX_BAND_SAT
#define ENABLE_RGB_MATRIX_BAND_VAL
#endif
+16
View File
@@ -0,0 +1,16 @@
{
"keyboard_name": "Lulu",
"url": "https://boardsource.xyz/store/61d0b772319a1f3cc53ba2fb",
"maintainer": "boardsource",
"layouts": {
"LAYOUT": {
"layout": [
{"x":0, "y":0.5}, {"x":1, "y":0.375}, {"x":2, "y":0.125}, {"x":3, "y":0}, {"x":4, "y":0.125}, {"x":5, "y":0.25}, {"x":10.5, "y":0.25}, {"x":11.5, "y":0.125}, {"x":12.5, "y":0}, {"x":13.5, "y":0.125}, {"x":14.5, "y":0.375}, {"x":15.5, "y":0.5},
{"x":0, "y":1.5}, {"x":1, "y":1.375}, {"x":2, "y":1.125}, {"x":3, "y":1}, {"x":4, "y":1.125}, {"x":5, "y":1.25}, {"x":10.5, "y":1.25}, {"x":11.5, "y":1.125}, {"x":12.5, "y":1}, {"x":13.5, "y":1.125}, {"x":14.5, "y":1.375}, {"x":15.5, "y":1.5},
{"x":0, "y":2.5}, {"x":1, "y":2.375}, {"x":2, "y":2.125}, {"x":3, "y":2}, {"x":4, "y":2.125}, {"x":5, "y":2.25}, {"x":10.5, "y":2.25}, {"x":11.5, "y":2.125}, {"x":12.5, "y":2}, {"x":13.5, "y":2.125}, {"x":14.5, "y":2.375}, {"x":15.5, "y":2.5},
{"x":0, "y":3.5}, {"x":1, "y":3.375}, {"x":2, "y":3.125}, {"x":3, "y":3}, {"x":4, "y":3.125}, {"x":5, "y":3.25}, {"x":6, "y":2.75}, {"x":9.5, "y":2.75}, {"x":10.5, "y":3.25}, {"x":11.5, "y":3.125}, {"x":12.5, "y":3}, {"x":13.5, "y":3.125}, {"x":14.5, "y":3.375}, {"x":15.5, "y":3.5},
{"x":2.5, "y":4.125}, {"x":3.5, "y":4.15}, {"x":4.5, "y":4.25}, {"x":6, "y":4.25, "h":1.5}, {"x":9.5, "y":4.25, "h":1.5}, {"x":11, "y":4.25}, {"x":12, "y":4.15}, {"x":13, "y":4.15}
]
}
}
}
@@ -0,0 +1,129 @@
// Copyright 2022 Cole Smith <[email protected]>
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
enum layers {
_QWERTY,
_RAISE,
_LOWER,
_ADJUST
};
#define RAISE MO(_RAISE)
#define LOWER MO(_LOWER)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* QWERTY
* ,-----------------------------------------. ,-----------------------------------------.
* | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ` |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | Tab | Q | W | E | R | T | | Y | U | I | O | P | - |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* |LCTRL | A | S | D | F | G |-------. ,-------| H | J | K | L | ; | ' |
* |------+------+------+------+------+------| [ | | ] |------+------+------+------+------+------|
* |LShift| Z | X | C | V | B |-------| |-------| N | M | , | . | / |RShift|
* `-----------------------------------------/ / \ \-----------------------------------------'
* | LAlt | LGUI |LOWER | /Space / \Enter \ |RAISE |BackSP| RGUI |
* | | | |/ / \ \ | | | |
* `----------------------------' '------''--------------------'
*/
[_QWERTY] = LAYOUT(
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_GRV,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_MINS,
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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LBRC, KC_RBRC, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_ENT, RAISE, KC_BSPC, KC_RGUI
),
/* LOWER
* ,-----------------------------------------. ,-----------------------------------------.
* | | | | | | | | | | | | | |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | ` | ! | @ | # | $ | % |-------. ,-------| ^ | & | * | ( | ) | - |
* |------+------+------+------+------+------| [ | | ] |------+------+------+------+------+------|
* | | | | | | |-------| |-------| | _ | + | { | } | | |
* `-----------------------------------------/ / \ \-----------------------------------------'
* | LAlt | LGUI |LOWER | /Space / \Enter \ |RAISE |BackSP| RGUI |
* | | | |/ / \ \ | | | |
* `----------------------------' '------''--------------------'
*/
[_LOWER] = LAYOUT(
_______, _______, _______, _______, _______, _______, _______, _______, _______,_______, _______, _______,
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_TILD,
_______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
_______, _______, _______, _______, _______, _______, _______, _______
),
/* RAISE
* ,-----------------------------------------. ,-----------------------------------------.
* |MOD | MODR | S+ | S- | B+ | B- | | | | | | | |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | F1 | F2 | F3 | F4 | F5 | F6 |-------. ,-------| | Left | Down | Up |Right | |
* |------+------+------+------+------+------|RGB_TOG| | ] |------+------+------+------+------+------|
* | F7 | F8 | F9 | F10 | F11 | F12 |-------| |-------| + | - | = | [ | ] | \ |
* `-----------------------------------------/ / \ \-----------------------------------------'
* | LAlt | LGUI |LOWER | /Space / \Enter \ |RAISE |BackSP| RGUI |
* | | | |/ / \ \ | | | |
* `----------------------------' '------''--------------------'
*/
[_RAISE] = LAYOUT(
RGB_MOD, RGB_RMOD,RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______,
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______,
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, XXXXXXX,
KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, RGB_TOG, _______, KC_PLUS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
_______, _______, _______, _______, _______, _______, _______, _______
),
/* ADJUST
* ,-----------------------------------------. ,-----------------------------------------.
* | | | | | | | | | | | | | |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | | | | | | | | | | | | | |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | | | | | | |-------. ,-------| | |RGB ON| HUE+ | SAT+ | VAL+ |
* |------+------+------+------+------+------| | | |------+------+------+------+------+------|
* | | | | | | |-------| |-------| | | MODE | HUE- | SAT- | VAL- |
* `-----------------------------------------/ / \ \-----------------------------------------'
* | LAlt | LGUI |LOWER | /Space / \Enter \ |RAISE |BackSP| RGUI |
* | | | |/ / \ \ | | | |
* `----------------------------' '------''--------------------'
*/
[_ADJUST] = LAYOUT(
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, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
_______, _______, _______, _______, _______, _______, _______, _______
)
};
layer_state_t layer_state_set_user(layer_state_t state) {
return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
}
#ifdef ENCODER_ENABLE
bool encoder_update_user(uint8_t index, bool clockwise) {
if (index == 0) {
// Volume control
if (clockwise) {
tap_code(KC_VOLU);
} else {
tap_code(KC_VOLD);
}
} else if (index == 1) {
// Page up/Page down
if (clockwise) {
tap_code(KC_PGDN);
} else {
tap_code(KC_PGUP);
}
}
return false;
}
#endif
@@ -0,0 +1,105 @@
// Copyright 2022 Cole Smith <[email protected]>
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
enum layers {
_QWERTY,
_RAISE,
_LOWER,
_ADJUST
};
#define RAISE MO(_RAISE)
#define LOWER MO(_LOWER)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* QWERTY
* ,-----------------------------------------. ,-----------------------------------------.
* | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ` |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | Tab | Q | W | E | R | T | | Y | U | I | O | P | - |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* |LCTRL | A | S | D | F | G |-------. ,-------| H | J | K | L | ; | ' |
* |------+------+------+------+------+------| [ | | ] |------+------+------+------+------+------|
* |LShift| Z | X | C | V | B |-------| |-------| N | M | , | . | / |RShift|
* `-----------------------------------------/ / \ \-----------------------------------------'
* | LAlt | LGUI |LOWER | /Space / \Enter \ |RAISE |BackSP| RGUI |
* | | | |/ / \ \ | | | |
* `----------------------------' '------''--------------------'
*/
[_QWERTY] = LAYOUT(
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_GRV,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_MINS,
KC_LCTRL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LBRC, KC_RBRC, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_ENT, RAISE, KC_BSPC, KC_RGUI
),
/* LOWER
* ,-----------------------------------------. ,-----------------------------------------.
* | | | | | | | | | | | | | |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | ` | ! | @ | # | $ | % |-------. ,-------| ^ | & | * | ( | ) | - |
* |------+------+------+------+------+------| [ | | ] |------+------+------+------+------+------|
* | | | | | | |-------| |-------| | _ | + | { | } | | |
* `-----------------------------------------/ / \ \-----------------------------------------'
* | LAlt | LGUI |LOWER | /Space / \Enter \ |RAISE |BackSP| RGUI |
* | | | |/ / \ \ | | | |
* `----------------------------' '------''--------------------'
*/
[_LOWER] = LAYOUT(
_______, _______, _______, _______, _______, _______, _______, _______, _______,_______, _______, _______,
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_TILD,
_______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
_______, _______, _______, _______, _______, _______, _______, _______
),
/* RAISE
* ,-----------------------------------------. ,-----------------------------------------.
* |MOD | MODR | S+ | S- | B+ | B- | | | | | | | |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | F1 | F2 | F3 | F4 | F5 | F6 |-------. ,-------| | Left | Down | Up |Right | |
* |------+------+------+------+------+------|RGB_TOG| | ] |------+------+------+------+------+------|
* | F7 | F8 | F9 | F10 | F11 | F12 |-------| |-------| + | - | = | [ | ] | \ |
* `-----------------------------------------/ / \ \-----------------------------------------'
* | LAlt | LGUI |LOWER | /Space / \Enter \ |RAISE |BackSP| RGUI |
* | | | |/ / \ \ | | | |
* `----------------------------' '------''--------------------'
*/
[_RAISE] = LAYOUT(
RGB_MOD, RGB_RMOD,RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______,
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______,
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, XXXXXXX,
KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, RGB_TOG, _______, KC_PLUS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
_______, _______, _______, _______, _______, _______, _______, _______
),
/* ADJUST
* ,-----------------------------------------. ,-----------------------------------------.
* | | | | | | | | | | | | | |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | | | | | | | | | | | | | |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | | | | | | |-------. ,-------| | |RGB ON| HUE+ | SAT+ | VAL+ |
* |------+------+------+------+------+------| | | |------+------+------+------+------+------|
* | | | | | | |-------| |-------| | | MODE | HUE- | SAT- | VAL- |
* `-----------------------------------------/ / \ \-----------------------------------------'
* | LAlt | LGUI |LOWER | /Space / \Enter \ |RAISE |BackSP| RGUI |
* | | | |/ / \ \ | | | |
* `----------------------------' '------''--------------------'
*/
[_ADJUST] = LAYOUT(
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, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
_______, _______, _______, _______, _______, _______, _______, _______
)
};
@@ -0,0 +1 @@
VIA_ENABLE = yes
+280
View File
@@ -0,0 +1,280 @@
// Copyright 2022 Cole Smith <[email protected]>
// SPDX-License-Identifier: GPL-2.0-or-later
#include "lulu.h"
#ifdef RGB_MATRIX_ENABLE
led_config_t g_led_config = { {
{12,11,10,9 ,8 ,7 },
{18,17,16,15,14,13},
{24,23,22,21,20,19},
{30,29,28,27,26,25},
{NO_LED,35,34,33,32,31},
{42,43,44,45,46,47},
{48,49,50,51,52,53},
{54,55,56,57,58,59},
{60,61,62,63,64,65},
{NO_LED,66,67,68,69,70}
},{
{86,55},{51,55},{17,40},{17,10},{51,10},{86,10},
{0,0}, {17,0}, {34,0}, {51,0}, {68,0}, {86,0},
{0,16},{17,16},{34,16},{51,16},{68,16},{86,16},
{0,32},{17,32},{34,32},{51,32},{68,32},{86,32},
{0,48},{17,48},{34,48},{51,48},{68,48},{86,48},{103,48},
{34,64},{51,64},{68,64},{86,64},
{137,55},{172,55},{206,40},{206,10},{172,10},{137,10},
{137,0}, {155,0}, {172,0}, {189,0}, {206,0}, {224,0},
{137,16},{155,16},{172,16},{189,16},{206,16},{224,16},
{137,32},{155,32},{172,32},{189,32},{206,32},{224,32},
{137,48},{155,48},{172,48},{189,48},{155,48},{137,48},{120,48},
{172,64},{189,64},{155,64},{137,64}
},{2,2,2,2,2,2,
4,4,4,4,4,1,
1,4,4,4,4,4,
4,4,4,4,4,1,
1,4,4,4,4,4,
1,4,1,1,1,
2,2,2,2,2,2,
4,4,4,4,4,1,
1,4,4,4,4,4,
4,4,4,4,4,1,
1,4,4,4,4,4,
1,4,1,1,1
}};
#endif
#ifdef OLED_ENABLE
oled_rotation_t oled_init_kb(oled_rotation_t rotation) {
if (!is_keyboard_master()) {
return OLED_ROTATION_180; // flips the display 180 degrees if offhand
}
return rotation;
}
void render_layer1_logo(void){
static const char PROGMEM layer_logo[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xfc, 0x18, 0x30, 0x60, 0xe0, 0xc0, 0x80,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0,
0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0,
0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0,
0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc8, 0xf8, 0xf0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x0f, 0x0f, 0x02, 0x02, 0x02, 0x02, 0x03, 0x03,
0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0,
0xfc, 0x0e, 0x07, 0x03, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xf0, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0x80, 0x00,
0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xf0, 0x60,
0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x70, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x07, 0x03, 0x01, 0x03, 0x07,
0x07, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00,
0x00, 0x01, 0x03, 0x07, 0x06, 0x0c, 0x0c, 0x0c, 0x0c, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00
};
oled_write_raw_P(layer_logo, sizeof(layer_logo));
}
void render_layer2_logo(void){
static const char PROGMEM layer_logo[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xfc, 0x18, 0x30, 0x60, 0xe0, 0xc0, 0x80,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0,
0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc8, 0xf8, 0xf0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x0f, 0x0f, 0x02, 0x02, 0x02, 0x02, 0x03, 0x03,
0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xf0, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0x80, 0x00,
0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f,
0x3f, 0x70, 0xe0, 0xc0, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xf0, 0x60,
0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x70, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x07, 0x03, 0x01, 0x03, 0x07,
0x07, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03,
0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03,
0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00,
0x00, 0x01, 0x03, 0x07, 0x06, 0x0c, 0x0c, 0x0c, 0x0c, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00
};
oled_write_raw_P(layer_logo, sizeof(layer_logo));
}
void render_layer3_logo(void){
static const char PROGMEM layer_logo[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xfc, 0x18, 0x30, 0x60, 0xe0, 0xc0, 0x80,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0,
0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc8, 0xf8, 0xf0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x0f, 0x0f, 0x02, 0x02, 0x02, 0x02, 0x03, 0x03,
0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xf0, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0x80, 0x00,
0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0xc0, 0xc0, 0xe0, 0x70, 0x38, 0x1f, 0x07,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xf0, 0x60,
0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x70, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x07, 0x03, 0x01, 0x03, 0x07,
0x07, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00,
0x00, 0x01, 0x03, 0x07, 0x06, 0x0c, 0x0c, 0x0c, 0x0c, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00
};
oled_write_raw_P(layer_logo, sizeof(layer_logo));
}
void render_layer4_logo(void){
static const char PROGMEM layer_logo[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xfc, 0x18, 0x30, 0x60, 0xe0, 0xc0, 0x80,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0,
0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0,
0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0,
0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc8, 0xf8, 0xf0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x0f, 0x0f, 0x02, 0x02, 0x02, 0x02, 0x03, 0x03,
0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x03, 0x07, 0x0e, 0xfc, 0xf0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xf0, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0x80, 0x00,
0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xf0, 0x60,
0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x70, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x07, 0x03, 0x01, 0x03, 0x07,
0x07, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00,
0x00, 0x01, 0x03, 0x07, 0x06, 0x0c, 0x0c, 0x0c, 0x0c, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00
};
oled_write_raw_P(layer_logo, sizeof(layer_logo));
}
void render_logo(void) {
static const char PROGMEM logo[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xc0, 0xc0, 0x60, 0x60, 0x60,
0x60, 0x60, 0xc0, 0xc0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0xe0, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00,
0x00, 0xe0, 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xfc, 0x1e, 0x07, 0x03, 0x01, 0x00, 0x00, 0x00, 0x80, 0xc0,
0x80, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x0e, 0xfc, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff,
0xe0, 0xc0, 0x80, 0x80, 0xc0, 0xc0, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00,
0x00, 0x1f, 0xff, 0xff, 0xc0, 0xc0, 0x80, 0xc0, 0xc0, 0xe0, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x1f, 0x78, 0xe0, 0xc0, 0x80, 0x80, 0x00, 0x00, 0x00, 0x01,
0x01, 0x00, 0x00, 0x80, 0x80, 0xc0, 0xe0, 0x78, 0x3f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00,
0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03,
0x03, 0x03, 0x03, 0x03, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
oled_write_raw_P(logo, sizeof(logo));
}
enum Layers{
_QWERTY,
_RAISE,
_LOWER,
_ADJUST
};
void process_layer_state(void) {
switch (get_highest_layer(layer_state)) {
case _QWERTY:
render_layer1_logo();
break;
case _LOWER:
render_layer2_logo();
break;
case _RAISE:
render_layer3_logo();
break;
case _ADJUST:
render_layer4_logo();
break;
}
}
bool oled_task_kb(void) {
if (!oled_task_user()) { return false; }
if (is_keyboard_master()) {
process_layer_state();
} else {
render_logo();
}
return false;
}
#endif
+29
View File
@@ -0,0 +1,29 @@
// Copyright 2022 Cole Smith <[email protected]>
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#include "quantum.h"
#include "split_util.h"
#define has_usb() is_keyboard_master()
#define is_master is_keyboard_master()
#define LAYOUT( \
L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \
L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \
L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, \
L30, L31, L32, L33, L34, L35, L45, R40, R30, R31, R32, R33, R34, R35, \
L41, L42, L43, L44, R41, R42, R43, R44 \
) \
{ \
{ L00, L01, L02, L03, L04, L05 }, \
{ L10, L11, L12, L13, L14, L15 }, \
{ L20, L21, L22, L23, L24, L25 }, \
{ L30, L31, L32, L33, L34, L35 }, \
{ KC_NO, L41, L42, L43, L44, L45 }, \
{ R05, R04, R03, R02, R01, R00 }, \
{ R15, R14, R13, R12, R11, R10 }, \
{ R25, R24, R23, R22, R21, R20 }, \
{ R35, R34, R33, R32, R31, R30 }, \
{ KC_NO, R44, R43, R42, R41, R40 } \
}
+24
View File
@@ -0,0 +1,24 @@
# Lulu
![boardsource Lulu](https://i.imgur.com/tjvUoXTh.png)
The lulu is what the ergo community has needed for a long time, a high-end aesthetic split ergo 60%. With this project we not only tried to create a beautiful product but we also wanted to unify the some what split 60% community. With hotswap, per key rgb & underglow, swappable encoder and adjustable tenting with out giving up anything.
* Keyboard Maintainer: [Boardsource](https://github.com/daysgobye)
* Hardware Supported: lulu v1
* Hardware Availability: this keyboard is available from the [Boardsource store](https://boardsource.xyz/store/61d0b772319a1f3cc53ba2fb)
Make example for this keyboard (after setting up your build environment):
make boardsource/lulu:default
Flashing example for this keyboard:
make boardsource/lulu:default:flash
Reset keyboard by holding down top left key while you plug in the usb cable. Or by pushing the reset switch on 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).
+26
View File
@@ -0,0 +1,26 @@
# MCU name
MCU = atmega32u4
# Bootloader selection
BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
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
NKRO_ENABLE = yes # Enable N-Key Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
AUDIO_ENABLE = no # Audio output
SPLIT_KEYBOARD = yes
RGB_MATRIX_ENABLE = yes
RGB_MATRIX_DRIVER = WS2812
RGB_MATRIX_SUPPORTED = yes
OLED_ENABLE = yes
OLED_DRIVER = SSD1306
LTO_ENABLE = yes
ENCODER_ENABLE = yes
+1 -1
View File
@@ -10,7 +10,7 @@
"backlight": true,
"bluetooth": false,
"bootmagic": false,
"command": true,
"command": false,
"console": true,
"extrakey": true,
"lto": true,
@@ -1,9 +1,4 @@
BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
MOUSEKEY_ENABLE = no # Mouse keys
EXTRAKEY_ENABLE = no # Audio control and System control
CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
MOUSEKEY_ENABLE = no
EXTRAKEY_ENABLE = no
NKRO_ENABLE = yes
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
AUDIO_ENABLE = no # Audio output
RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
AUDIO_ENABLE = no
@@ -1,9 +1,4 @@
BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
MOUSEKEY_ENABLE = no # Mouse keys(+4700)
EXTRAKEY_ENABLE = no # Audio control and System control(+450)
CONSOLE_ENABLE = yes # Console for debug(+400)
COMMAND_ENABLE = yes # Commands for debug and configuration
MOUSEKEY_ENABLE = no
EXTRAKEY_ENABLE = no
NKRO_ENABLE = yes
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
AUDIO_ENABLE = no # Audio output
RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
AUDIO_ENABLE = no
+2 -2
View File
@@ -1,7 +1,7 @@
{
"keyboard_name": "cmm.studio fuji65",
"url": "",
"maintainer": "qmk",
"maintainer": "CMMS-Freather",
"layouts": {
"LAYOUT": {
"layout": [
@@ -20,7 +20,7 @@
{ "label": "K0C (B5,D2)", "x": 12, "y": 0 },
{ "label": "K0D (B5,D1)", "x": 13, "y": 0 },
{ "label": "K0E (B5,D0)", "x": 14, "y": 0 },
{ "label": "K10 (B4,F7)", "x": 0, "y": 1 },
{ "label": "K10 (B4,F7)", "x": 0, "y": 1, "w": 1.5 },
{ "label": "K11 (B4,F6)", "x": 1.5, "y": 1 },
{ "label": "K12 (B4,F5)", "x": 2.5, "y": 1 },
{ "label": "K13 (B4,F4)", "x": 3.5, "y": 1 },
+70
View File
@@ -0,0 +1,70 @@
/* Copyright 2022 Tim (https://github.com/Timliuzhaolu)
*
* 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 0xFEED
#define PRODUCT_ID 0x6060
#define DEVICE_VER 0x0001
#define MANUFACTURER creatkeebs
#define PRODUCT glacier
/* key matrix size */
#define MATRIX_ROWS 6
#define MATRIX_COLS 17
/* key matrix pins */
#define MATRIX_ROW_PINS { F0, F1, F4, E6, F5, D0 }
#define MATRIX_COL_PINS { D4, D6, D7, B4, B5, F6, B0, B6, C6, C7, B1, B2, B3, B7, D3, D2, D1 }
#define UNUSED_PINS
/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW
/* number of backlight levels */
#ifdef BACKLIGHT_PIN
#define BACKLIGHT_LEVELS 0
#endif
/* Set 0 if debouncing isn't needed */
#define DEBOUNCE 5
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
#ifdef RGB_DI_PIN
#define RGBLIGHT_EFFECT_BREATHING
#define RGBLIGHT_EFFECT_RAINBOW_MOOD
#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
#define RGBLIGHT_EFFECT_SNAKE
#define RGBLIGHT_EFFECT_KNIGHT
#define RGBLIGHT_EFFECT_CHRISTMAS
#define RGBLIGHT_EFFECT_STATIC_GRADIENT
#define RGBLIGHT_EFFECT_RGB_TEST
#define RGBLIGHT_EFFECT_ALTERNATING
#define RGBLIGHT_EFFECT_TWINKLE
#define RGBLED_NUM 0
#define RGBLIGHT_HUE_STEP 8
#define RGBLIGHT_SAT_STEP 8
#define RGBLIGHT_VAL_STEP 8
#endif
+17
View File
@@ -0,0 +1,17 @@
/* Copyright 2022 Tim (https://github.com/Timliuzhaolu)
*
* 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 "glacier.h"
+35
View File
@@ -0,0 +1,35 @@
/* Copyright 2022 Tim (https://github.com/Timliuzhaolu)
*
* 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( \
K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016, \
K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, K116, \
K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, K315, \
K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K313, \
K400, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K413, K415, \
K500, K501, K502, K505, K510, K511, K513, K514, K515, K516 \
) { \
{ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016 }, \
{ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 K115, K116 }, \
{ K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214 K215, K216 }, \
{ K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, KC_NO, K313, KC_NO KC_NO, KC_NO }, \
{ K400, KC_NO, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, KC_NO, K413, KC_NO K415, KC_NO }, \
{ K500, K501, K502, KC_NO, KC_NO, K505, KC_NO, KC_NO, KC_NO, KC_NO, K510, K511, KC_NO, K513, K514 K515, K516 } \
}
+98
View File
@@ -0,0 +1,98 @@
{
"keyboard_name": "glacier",
"url": "",
"maintainer": "Tim",
"layouts": {
"LAYOUT": {
"layout": [
{"x":0, "y":0},
{"x":1.25, "y":0},
{"x":2.25, "y":0},
{"x":3.25, "y":0},
{"x":4.25, "y":0},
{"x":5.5, "y":0},
{"x":6.5, "y":0},
{"x":7.5, "y":0},
{"x":8.5, "y":0},
{"x":9.75, "y":0},
{"x":10.75, "y":0},
{"x":11.75, "y":0},
{"x":12.75, "y":0},
{"x":14, "y":0},
{"x":15.25, "y":0},
{"x":16.25, "y":0},
{"x":17.25, "y":0},
{"x":0, "y":1.25},
{"x":1, "y":1.25},
{"x":2, "y":1.25},
{"x":3, "y":1.25},
{"x":4, "y":1.25},
{"x":5, "y":1.25},
{"x":6, "y":1.25},
{"x":7, "y":1.25},
{"x":8, "y":1.25},
{"x":9, "y":1.25},
{"x":10, "y":1.25},
{"x":11, "y":1.25},
{"x":12, "y":1.25},
{"x":13, "y":1.25, "w":2},
{"x":15.25, "y":1.25},
{"x":16.25, "y":1.25},
{"x":17.25, "y":1.25},
{"x":0, "y":2.25, "w":1.5},
{"x":1.5, "y":2.25},
{"x":2.5, "y":2.25},
{"x":3.5, "y":2.25},
{"x":4.5, "y":2.25},
{"x":5.5, "y":2.25},
{"x":6.5, "y":2.25},
{"x":7.5, "y":2.25},
{"x":8.5, "y":2.25},
{"x":9.5, "y":2.25},
{"x":10.5, "y":2.25},
{"x":11.5, "y":2.25},
{"x":12.5, "y":2.25},
{"x":13.5, "y":2.25, "w":1.5},
{"x":15.25, "y":2.25},
{"x":16.25, "y":2.25},
{"x":17.25, "y":2.25},
{"x":0, "y":3.25, "w":1.75},
{"x":1.75, "y":3.25},
{"x":2.75, "y":3.25},
{"x":3.75, "y":3.25},
{"x":4.75, "y":3.25},
{"x":5.75, "y":3.25},
{"x":6.75, "y":3.25},
{"x":7.75, "y":3.25},
{"x":8.75, "y":3.25},
{"x":9.75, "y":3.25},
{"x":10.75, "y":3.25},
{"x":11.75, "y":3.25},
{"x":12.75, "y":3.25, "w":2.25},
{"x":0, "y":4.25, "w":2.25},
{"x":2.25, "y":4.25},
{"x":3.25, "y":4.25},
{"x":4.25, "y":4.25},
{"x":5.25, "y":4.25},
{"x":6.25, "y":4.25},
{"x":7.25, "y":4.25},
{"x":8.25, "y":4.25},
{"x":9.25, "y":4.25},
{"x":10.25, "y":4.25},
{"x":11.25, "y":4.25},
{"x":12.25, "y":4.25, "w":2.75},
{"x":16.25, "y":4.25},
{"x":0, "y":5.25, "w":1.5},
{"x":1.5, "y":5.25},
{"x":2.5, "y":5.25, "w":1.5},
{"x":4, "y":5.25, "w":7},
{"x":11, "y":5.25, "w":1.5},
{"x":12.5, "y":5.25},
{"x":13.5, "y":5.25, "w":1.5},
{"x":15.25, "y":5.25},
{"x":16.25, "y":5.25},
{"x":17.25, "y":5.25}
]
}
}
}
@@ -0,0 +1,31 @@
/* Copyright 2022 Tim
*
* 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_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_PSCR, KC_SLCK, KC_PAUS,
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_HOME, KC_PGUP,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT
)
};
+27
View File
@@ -0,0 +1,27 @@
# glacier
A 80% keyboard
![glacier](https://i.imgur.com/BeyreN1.png)
### Features
* PCB gasket
* Nickel-cobalt weight
### Additional Information
* Keyboard Maintainer: [Tim](https://github.com/Timliuzhaolu/qmk_firmware)
* Hardware Supported: glacier PCB
* Hardware Availability: [ESCHIT.com](https://eschit.com/products/gb-thera75)
### Entering Bootloader
Enter the bootloader in 2 ways:
* Physical reset button: Press the `RESET` button on the back of the PCB.
* Keycode in layout: Press the key mapped to `RESET` if it is available.
### Building the Firmware
Make example for this keyboard (after setting up your build environment):
make creatkeebs/glacier:default
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).
+18
View File
@@ -0,0 +1,18 @@
# MCU name
MCU = atmega32u4
# Bootloader selection
BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
MOUSEKEY_ENABLE = yes # Mouse keys
EXTRAKEY_ENABLE = yes # Audio control and System control
CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = no # Enable N-Key Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
AUDIO_ENABLE = no # Enable keyboard RGB underglow
RGBLIGHT_ENABLE = no # Audio output
+4 -1
View File
@@ -24,6 +24,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* Select hand configuration */
#define MASTER_LEFT
#define SPLIT_WPM_ENABLE
// #define MASTER_RIGHT
// #define EE_HANDS
@@ -54,4 +57,4 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define NO_ACTION_ONESHOT
// Size optimisations END
*/
*/
+1 -1
View File
@@ -249,7 +249,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
};
#ifdef OLED_DRIVER_ENABLE
#ifdef OLED_ENABLE
// #include <stdio.h>
// bongo cat
+1 -1
View File
@@ -55,7 +55,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// #define BACKLIGHT_LEVELS 3
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 5
#define DEBOUNCE 0
/* define if matrix has ghost (lacks anti-ghosting diodes) */
//#define MATRIX_HAS_GHOST
+1 -1
View File
@@ -419,7 +419,7 @@ static void unselect_cols(void)
// Complete rows from other modules over i2c
i2c_status_t i2c_transaction(uint8_t address, uint32_t mask, uint8_t col_offset) {
i2c_status_t status = i2c_start(address, 50);
i2c_status_t status = i2c_start(address, 5);
if (status < 0) {
goto error;
}
+82 -5
View File
@@ -1,10 +1,87 @@
{
"keyboard_name": "Demiurge",
"url": "",
"maintainer": "ojthetiny",
"keyboard_name": "Demiurge",
"url": "",
"maintainer": "ojthetiny",
"layouts": {
"LAYOUT_all": {
"layout": [{"label":"F1", "x":0, "y":0}, {"label":"F2", "x":1, "y":0}, {"label":"Esc", "x":2.5, "y":0}, {"label":"!", "x":3.5, "y":0}, {"label":"@", "x":4.5, "y":0}, {"label":"#", "x":5.5, "y":0}, {"label":"$", "x":6.5, "y":0}, {"label":"%", "x":7.5, "y":0}, {"label":"^", "x":8.5, "y":0}, {"label":"&", "x":9.5, "y":0}, {"label":"*", "x":10.5, "y":0}, {"label":"(", "x":11.5, "y":0}, {"label":")", "x":12.5, "y":0}, {"label":"_", "x":13.5, "y":0}, {"label":"+", "x":14.5, "y":0}, {"label":"|", "x":15.5, "y":0}, {"label":"Backspace", "x":15.5, "y":0, "w":2}, {"label":"Del", "x":16.5, "y":0}, {"label":"F3", "x":0, "y":1}, {"label":"F4", "x":1, "y":1}, {"label":"Tab", "x":2.5, "y":1, "w":1.5}, {"label":"Q", "x":4, "y":1}, {"label":"W", "x":5, "y":1}, {"label":"E", "x":6, "y":1}, {"label":"R", "x":7, "y":1}, {"label":"T", "x":8, "y":1}, {"label":"Y", "x":9, "y":1}, {"label":"U", "x":10, "y":1}, {"label":"I", "x":11, "y":1}, {"label":"O", "x":12, "y":1}, {"label":"P", "x":13, "y":1}, {"label":"{", "x":14, "y":1}, {"label":"}", "x":15, "y":1}, {"label":"Backspace", "x":16, "y":1, "w":1.5}, {"label":"F5", "x":0, "y":2}, {"label":"F6", "x":1, "y":2}, {"label":"Caps Lock", "x":2.5, "y":2, "w":1.75}, {"label":"A", "x":4.25, "y":2}, {"label":"S", "x":5.25, "y":2}, {"label":"D", "x":6.25, "y":2}, {"label":"F", "x":7.25, "y":2}, {"label":"G", "x":8.25, "y":2}, {"label":"H", "x":9.25, "y":2}, {"label":"J", "x":10.25, "y":2}, {"label":"K", "x":11.25, "y":2}, {"label":"L", "x":12.25, "y":2}, {"label":":", "x":13.25, "y":2}, {"label":"\"", "x":14.25, "y":2}, {"label":"Enter", "x":15.25, "y":2, "w":2.25}, {"label":"F7", "x":0, "y":3}, {"label":"F8", "x":1, "y":3}, {"label":"Shift", "x":2.5, "y":3, "w":2.25}, {"label":"Z", "x":4.75, "y":3}, {"label":"X", "x":5.75, "y":3}, {"label":"C", "x":6.75, "y":3}, {"label":"V", "x":7.75, "y":3}, {"label":"B", "x":8.75, "y":3}, {"label":"N", "x":9.75, "y":3}, {"label":"M", "x":10.75, "y":3}, {"label":"<", "x":11.75, "y":3}, {"label":">", "x":12.75, "y":3}, {"label":"?", "x":13.75, "y":3}, {"label":"Shift", "x":14.75, "y":3, "w":1.75}, {"label":"Shift", "x":14.75, "y":3, "w":2.75}, {"label":"Fn", "x":16.5, "y":3}, {"label":"F9", "x":0, "y":4}, {"label":"F10", "x":1, "y":4}, {"label":"Ctrl", "x":2.5, "y":4, "w":1.5}, {"label":"Alt", "x":5, "y":4, "w":1.5}, {"x":6.5, "y":4, "w":7}, {"label":"Alt", "x":13.5, "y":4, "w":1.5}, {"label":"Ctrl", "x":16, "y":4, "w":1.5}]
"layout": [
{"label":"F1", "x":0, "y":0},
{"label":"F2", "x":1, "y":0},
{"label":"Esc", "x":2.5, "y":0},
{"label":"1!", "x":3.5, "y":0},
{"label":"2@", "x":4.5, "y":0},
{"label":"3#", "x":5.5, "y":0},
{"label":"4$", "x":6.5, "y":0},
{"label":"5%", "x":7.5, "y":0},
{"label":"6^", "x":8.5, "y":0},
{"label":"7&", "x":9.5, "y":0},
{"label":"8*", "x":10.5, "y":0},
{"label":"9(", "x":11.5, "y":0},
{"label":"0)", "x":12.5, "y":0},
{"label":"-_", "x":13.5, "y":0},
{"label":"=+", "x":14.5, "y":0},
{"label":"Backspace", "x":15.5, "y":0},
{"label":"Del", "x":16.5, "y":0},
{"label":"F3", "x":0, "y":1},
{"label":"F4", "x":1, "y":1},
{"label":"Tab", "x":2.5, "y":1, "w":1.5},
{"label":"Q", "x":4, "y":1},
{"label":"W", "x":5, "y":1},
{"label":"E", "x":6, "y":1},
{"label":"R", "x":7, "y":1},
{"label":"T", "x":8, "y":1},
{"label":"Y", "x":9, "y":1},
{"label":"U", "x":10, "y":1},
{"label":"I", "x":11, "y":1},
{"label":"O", "x":12, "y":1},
{"label":"P", "x":13, "y":1},
{"label":"[{", "x":14, "y":1},
{"label":"]}", "x":15, "y":1},
{"label":"\\|", "x":16, "y":1, "w":1.5},
{"label":"F5", "x":0, "y":2},
{"label":"F6", "x":1, "y":2},
{"label":"Caps Lock", "x":2.5, "y":2, "w":1.75},
{"label":"A", "x":4.25, "y":2},
{"label":"S", "x":5.25, "y":2},
{"label":"D", "x":6.25, "y":2},
{"label":"F", "x":7.25, "y":2},
{"label":"G", "x":8.25, "y":2},
{"label":"H", "x":9.25, "y":2},
{"label":"J", "x":10.25, "y":2},
{"label":"K", "x":11.25, "y":2},
{"label":"L", "x":12.25, "y":2},
{"label":";:", "x":13.25, "y":2},
{"label":"'\"", "x":14.25, "y":2},
{"label":"Enter", "x":15.25, "y":2, "w":2.25},
{"label":"F7", "x":0, "y":3},
{"label":"F8", "x":1, "y":3},
{"label":"Shift", "x":2.5, "y":3, "w":2.25},
{"label":"Z", "x":4.75, "y":3},
{"label":"X", "x":5.75, "y":3},
{"label":"C", "x":6.75, "y":3},
{"label":"V", "x":7.75, "y":3},
{"label":"B", "x":8.75, "y":3},
{"label":"N", "x":9.75, "y":3},
{"label":"M", "x":10.75, "y":3},
{"label":",<", "x":11.75, "y":3},
{"label":".>", "x":12.75, "y":3},
{"label":"/?", "x":13.75, "y":3},
{"label":"Shift", "x":14.75, "y":3, "w":1.75},
{"label":"Fn", "x":16.5, "y":3},
{"label":"F9", "x":0, "y":4},
{"label":"F10", "x":1, "y":4},
{"label":"Ctrl", "x":2.5, "y":4, "w":1.5},
{"label":"GUI", "x":4, "y":4},
{"label":"Alt", "x":5, "y":4, "w":1.5},
{"label":"Space", "x":6.5, "y":4, "w":7},
{"label":"Alt", "x":13.5, "y":4, "w":1.5},
{"label":"GUI", "x":15, "y":4},
{"label":"Ctrl", "x":16, "y":4, "w":1.5}
]
}
}
}
}
@@ -0,0 +1,44 @@
/* Copyright 2022 evan cook <[email protected]>
*
* 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 0x636F
#define PRODUCT_ID 0x0002
#define DEVICE_VER 0x0000
#define MANUFACTURER evancook.audio
#define PRODUCT sleepingdinosaur
/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW
/* Set 0 if debouncing isn't needed */
#define DEBOUNCE 5
/* key matrix size */
#define MATRIX_ROWS 5
#define MATRIX_COLS 6
/* key matrix pins */
#define MATRIX_ROW_PINS {D0, D1, D4, C6, D7}
#define MATRIX_COL_PINS {F4, F5, F6, F7, B1, B3}
#define UNUSED_PINS {B2, B6, B7, D5, C7, F1, F0, B4, E6}
@@ -0,0 +1,44 @@
{
"keyboard_name": "evancook.audio sleepingdinosaur",
"url": "https://evancook.audio/",
"maintainer": "evanmcook",
"layouts": {
"LAYOUT": {
"layout": [
{"label":"1", "x":0, "y":0},
{"label":"2", "x":1, "y":0},
{"label":"3", "x":2, "y":0},
{"label":"4", "x":3, "y":0},
{"label":"5", "x":4, "y":0},
{"label":"-", "x":5, "y":0},
{"label":"6", "x":0, "y":1},
{"label":"7", "x":1, "y":1},
{"label":"8", "x":2, "y":1},
{"label":"9", "x":3, "y":1},
{"label":"0", "x":4, "y":1},
{"label":"R", "x":5, "y":1},
{"label":"/", "x":0, "y":2},
{"label":"Q", "x":1, "y":2},
{"label":"W", "x":2, "y":2},
{"label":"E", "x":3, "y":2},
{"label":"U", "x":4, "y":2},
{"label":"V", "x":5, "y":2},
{"label":"Enter", "x":0, "y":3, "h":2},
{"label":"A", "x":1, "y":3},
{"label":"S", "x":2, "y":3},
{"label":"D", "x":3, "y":3},
{"label":"Space", "x":4, "y":3, "h":2},
{"label":"O", "x":5, "y":3},
{"label":"Z", "x":1, "y":4},
{"label":"X", "x":2, "y":4},
{"label":"C", "x":3, "y":4},
{"label":"N", "x":5, "y":4}
]
}
}
}
@@ -0,0 +1,40 @@
/* Copyright 2022 evan cook <[email protected]>
*
* 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] = {
/* LAYER 0
* ,-----------------------------------------------.
* | 1 | 2 | 3 | 4 | 5 | - |
* |-------+-------+-------|-------|-------|-------|
* | 6 | 7 | 8 | 9 | 0 | R |
* |-------+-------+-------|-------|-------|-------|
* | / | Q | W | E | U | V |
* -------+-------+-------|-------|-------|-------|
* | ENTER | A | S | D | SPACE | O |
* | |-------+-------+-------| |-------|
* | | Z | X | C | | N |
* ,-----------------------------------------------.
*/
[0] = LAYOUT(
KC_1, KC_2, KC_3, KC_4, KC_5, KC_MINS,
KC_6, KC_7, KC_8, KC_9, KC_0, KC_R,
KC_SLSH, KC_Q, KC_W, KC_E, KC_U, KC_V,
KC_ENT, KC_A, KC_S, KC_D, KC_SPC, KC_O,
KC_Z, KC_X, KC_C, KC_N
)
};
@@ -0,0 +1,17 @@
# tenpad macropad
A 28 button macropad, in a format that is closest to a 5x6 grid, designed by evan cook
[Default Layout](https://raw.githubusercontent.com/evanmcook/sleepingdinosaur/main/images/layouts/sleepingdinosaurdefault.jpg)
* Keyboard Maintainer: [evan cook](https://github.com/evanmcook/)
* Hardware Supported: sleepingdinosaur Macropad PCB
* Hardware Availability: [tenpad Github](https://github.com/evanmcook/sleepingdinosaur)
Make example for this keyboard (after setting up your build environment):
make evancookaudio/sleepingdinosaur:default
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).
## Enter the bootloader:
* **Physical reset button**: On the underside of the board, near the USB connector and microcontroller, press and hold the small button labeled reset for more than one second to enter the bootloader.
@@ -0,0 +1,18 @@
# MCU name
MCU = atmega32u4
# Bootloader selection
BOOTLOADER = caterina
# Build Options
# change yes to no to disable
#
BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
MOUSEKEY_ENABLE = no # Mouse keys
EXTRAKEY_ENABLE = no # Audio control and System control
CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = no # Enable N-Key Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
AUDIO_ENABLE = no # Audio output
@@ -0,0 +1,17 @@
/* Copyright 2022 evan cook <[email protected]>
*
* 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 "sleepingdinosaur.h"
@@ -0,0 +1,41 @@
/* Copyright 2022 evan cook <[email protected]>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#include "quantum.h"
/* This is a shortcut to help you visually see your layout.
*
* The first section contains all of the arguments representing the physical
* layout of the board and position of the keys.
*
* The second converts the arguments into a two-dimensional array which
* represents the switch matrix.
*/
#define LAYOUT(\
k00, k01, k02, k03, k04, k05, \
k06, k07, k08, k09, k10, k11, \
k12, k13, k14, k15, k16, k17, \
k18, k19, k20, k21, k22, k23, \
k24, k25, k26, k27 \
) \
{ \
{k00, k01, k02, k03, k04, k05},\
{k06, k07, k08, k09, k10, k11},\
{k12, k13, k14, k15, k16, k17},\
{k18, k19, k20, k21, k22, k23},\
{KC_NO, k24, k25, k26, KC_NO, k27},\
}
+581 -13
View File
@@ -1,31 +1,599 @@
{
"keyboard_name": "sprh",
"url": "https://github.com/joedinkle/eyeohdesigns/tree/main/keyboards/sprh",
"maintainer": "eye oh designs",
"keyboard_name": "sprh",
"url": "https://github.com/joedinkle/eyeohdesigns/tree/main/keyboards/sprh",
"maintainer": "joedinkle",
"layouts": {
"LAYOUT_default": {
"layout": [{"label":"Mute", "x":0.5, "y":0}, {"label":"Esc", "x":1.5, "y":0}, {"label":"1", "x":2.5, "y":0}, {"label":"2", "x":3.5, "y":0}, {"label":"3", "x":4.5, "y":0}, {"label":"4", "x":5.5, "y":0}, {"label":"5", "x":6.5, "y":0}, {"label":"6", "x":7.5, "y":0}, {"label":"7", "x":8.5, "y":0}, {"label":"8", "x":9.5, "y":0}, {"label":"9", "x":10.5, "y":0}, {"label":"0", "x":11.5, "y":0}, {"label":"_", "x":12.5, "y":0}, {"label":"+", "x":13.5, "y":0}, {"label":"Backspace", "x":14.5, "y":0, "w":2}, {"label":"Tab", "x":1, "y":1, "w":1.5}, {"label":"Q", "x":2.5, "y":1}, {"label":"W", "x":3.5, "y":1}, {"label":"E", "x":4.5, "y":1}, {"label":"R", "x":5.5, "y":1}, {"label":"T", "x":6.5, "y":1}, {"label":"Y", "x":7.5, "y":1}, {"label":"U", "x":8.5, "y":1}, {"label":"I", "x":9.5, "y":1}, {"label":"O", "x":10.5, "y":1}, {"label":"P", "x":11.5, "y":1}, {"label":"[", "x":12.5, "y":1}, {"label":"]", "x":13.5, "y":1}, {"label":"\\", "x":14.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0.75, "y":2, "w":1.75}, {"label":"A", "x":2.5, "y":2}, {"label":"S", "x":3.5, "y":2}, {"label":"D", "x":4.5, "y":2}, {"label":"F", "x":5.5, "y":2}, {"label":"G", "x":6.5, "y":2}, {"label":"H", "x":7.5, "y":2}, {"label":"J", "x":8.5, "y":2}, {"label":"K", "x":9.5, "y":2}, {"label":"L", "x":10.5, "y":2}, {"label":";", "x":11.5, "y":2}, {"label":"'", "x":12.5, "y":2}, {"label":"Enter", "x":13.5, "y":2, "w":2.25}, {"label":"Shift", "x":0.25, "y":3, "w":2.25}, {"label":"Z", "x":2.5, "y":3}, {"label":"X", "x":3.5, "y":3}, {"label":"C", "x":4.5, "y":3}, {"label":"V", "x":5.5, "y":3}, {"label":"B", "x":6.5, "y":3}, {"label":"N", "x":7.5, "y":3}, {"label":"M", "x":8.5, "y":3}, {"label":",", "x":9.5, "y":3}, {"label":".", "x":10.5, "y":3}, {"label":"/", "x":11.5, "y":3}, {"label":"Shift", "x":12.5, "y":3, "w":2.75}, {"label":"\u2191", "x":15.25, "y":3}, {"label":"Super", "x":0, "y":4, "w":1.25}, {"label":"Ctrl", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":3.37, "y":4, "w":1.25}, {"x":4.62, "y":4, "w":6.25}, {"label":"Alt", "x":10.87, "y":4, "w":1.25}, {"label":"Function", "x":12.12, "y":4, "w":1.25}, {"label":"\u2190", "x":14.25, "y":4}, {"label":"\u2193", "x":15.25, "y":4}, {"label":"\u2192", "x":16.25, "y":4}]
"LAYOUT_ac5": {
"layout": [
{"label":"Mute", "x":0.5, "y":0},
{"label":"Esc", "x":1.5, "y":0},
{"label":"1", "x":2.5, "y":0},
{"label":"2", "x":3.5, "y":0},
{"label":"3", "x":4.5, "y":0},
{"label":"4", "x":5.5, "y":0},
{"label":"5", "x":6.5, "y":0},
{"label":"6", "x":7.5, "y":0},
{"label":"7", "x":8.5, "y":0},
{"label":"8", "x":9.5, "y":0},
{"label":"9", "x":10.5, "y":0},
{"label":"0", "x":11.5, "y":0},
{"label":"_", "x":12.5, "y":0},
{"label":"+", "x":13.5, "y":0},
{"label":"Backspace", "x":14.5, "y":0, "w":2},
{"label":"Tab", "x":1, "y":1, "w":1.5},
{"label":"Q", "x":2.5, "y":1},
{"label":"W", "x":3.5, "y":1},
{"label":"E", "x":4.5, "y":1},
{"label":"R", "x":5.5, "y":1},
{"label":"T", "x":6.5, "y":1},
{"label":"Y", "x":7.5, "y":1},
{"label":"U", "x":8.5, "y":1},
{"label":"I", "x":9.5, "y":1},
{"label":"O", "x":10.5, "y":1},
{"label":"P", "x":11.5, "y":1},
{"label":"[", "x":12.5, "y":1},
{"label":"]", "x":13.5, "y":1},
{"label":"\\", "x":14.5, "y":1, "w":1.5},
{"label":"Caps Lock", "x":0.75, "y":2, "w":1.75},
{"label":"A", "x":2.5, "y":2},
{"label":"S", "x":3.5, "y":2},
{"label":"D", "x":4.5, "y":2},
{"label":"F", "x":5.5, "y":2},
{"label":"G", "x":6.5, "y":2},
{"label":"H", "x":7.5, "y":2},
{"label":"J", "x":8.5, "y":2},
{"label":"K", "x":9.5, "y":2},
{"label":"L", "x":10.5, "y":2},
{"label":";", "x":11.5, "y":2},
{"label":"'", "x":12.5, "y":2},
{"label":"Enter", "x":13.5, "y":2, "w":2.25},
{"label":"Shift", "x":0.25, "y":3, "w":2.25},
{"label":"Z", "x":2.5, "y":3},
{"label":"X", "x":3.5, "y":3},
{"label":"C", "x":4.5, "y":3},
{"label":"V", "x":5.5, "y":3},
{"label":"B", "x":6.5, "y":3},
{"label":"N", "x":7.5, "y":3},
{"label":"M", "x":8.5, "y":3},
{"label":",", "x":9.5, "y":3},
{"label":".", "x":10.5, "y":3},
{"label":"/", "x":11.5, "y":3},
{"label":"Shift", "x":12.5, "y":3, "w":2.75},
{"label":"\u2191", "x":15.25, "y":3},
{"label":"Super", "x":0, "y":4, "w":1.25},
{"label":"Ctrl", "x":1.25, "y":4, "w":1.25},
{"label":"Alt", "x":3.37, "y":4, "w":1.25},
{"x":4.62, "y":4, "w":6.25},
{"label":"Alt", "x":10.87, "y":4, "w":1.25},
{"label":"Function", "x":12.12, "y":4, "w":1.25},
{"label":"\u2190", "x":14.25, "y":4},
{"label":"\u2193", "x":15.25, "y":4},
{"label":"\u2192", "x":16.25, "y":4}
]
},
"LAYOUT_acs": {
"layout": [{"label":"Mute", "x":0.5, "y":0}, {"label":"Esc", "x":1.5, "y":0}, {"label":"1", "x":2.5, "y":0}, {"label":"2", "x":3.5, "y":0}, {"label":"3", "x":4.5, "y":0}, {"label":"4", "x":5.5, "y":0}, {"label":"5", "x":6.5, "y":0}, {"label":"6", "x":7.5, "y":0}, {"label":"7", "x":8.5, "y":0}, {"label":"8", "x":9.5, "y":0}, {"label":"9", "x":10.5, "y":0}, {"label":"0", "x":11.5, "y":0}, {"label":"_", "x":12.5, "y":0}, {"label":"+", "x":13.5, "y":0}, {"label":"Backspace", "x":14.5, "y":0, "w":2}, {"label":"Tab", "x":1, "y":1, "w":1.5}, {"label":"Q", "x":2.5, "y":1}, {"label":"W", "x":3.5, "y":1}, {"label":"E", "x":4.5, "y":1}, {"label":"R", "x":5.5, "y":1}, {"label":"T", "x":6.5, "y":1}, {"label":"Y", "x":7.5, "y":1}, {"label":"U", "x":8.5, "y":1}, {"label":"I", "x":9.5, "y":1}, {"label":"O", "x":10.5, "y":1}, {"label":"P", "x":11.5, "y":1}, {"label":"[", "x":12.5, "y":1}, {"label":"]", "x":13.5, "y":1}, {"label":"\\", "x":14.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0.75, "y":2, "w":1.75}, {"label":"A", "x":2.5, "y":2}, {"label":"S", "x":3.5, "y":2}, {"label":"D", "x":4.5, "y":2}, {"label":"F", "x":5.5, "y":2}, {"label":"G", "x":6.5, "y":2}, {"label":"H", "x":7.5, "y":2}, {"label":"J", "x":8.5, "y":2}, {"label":"K", "x":9.5, "y":2}, {"label":"L", "x":10.5, "y":2}, {"label":";", "x":11.5, "y":2}, {"label":"'", "x":12.5, "y":2}, {"label":"Enter", "x":13.5, "y":2, "w":2.25}, {"label":"Shift", "x":0.25, "y":3, "w":2.25}, {"label":"Z", "x":2.5, "y":3}, {"label":"X", "x":3.5, "y":3}, {"label":"C", "x":4.5, "y":3}, {"label":"V", "x":5.5, "y":3}, {"label":"B", "x":6.5, "y":3}, {"label":"N", "x":7.5, "y":3}, {"label":"M", "x":8.5, "y":3}, {"label":",", "x":9.5, "y":3}, {"label":".", "x":10.5, "y":3}, {"label":"/", "x":11.5, "y":3}, {"label":"Shift", "x":12.5, "y":3, "w":2.75}, {"label":"\u2191", "x":15.25, "y":3}, {"label":"Super", "x":0, "y":4, "w":1.25}, {"label":"Ctrl", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":3.37, "y":4, "w":1.25}, {"x":4.62, "y":4, "w":2.75}, {"x":7.37, "y":4, "w":2.25}, {"x":9.62, "y":4, "w":1.25}, {"label":"Alt", "x":10.87, "y":4, "w":1.25}, {"label":"Function", "x":12.12, "y":4, "w":1.25}, {"label":"\u2190", "x":14.25, "y":4}, {"label":"\u2193", "x":15.25, "y":4}, {"label":"\u2192", "x":16.25, "y":4}]
"layout": [
{"label":"Mute", "x":0.5, "y":0},
{"label":"Esc", "x":1.5, "y":0},
{"label":"1", "x":2.5, "y":0},
{"label":"2", "x":3.5, "y":0},
{"label":"3", "x":4.5, "y":0},
{"label":"4", "x":5.5, "y":0},
{"label":"5", "x":6.5, "y":0},
{"label":"6", "x":7.5, "y":0},
{"label":"7", "x":8.5, "y":0},
{"label":"8", "x":9.5, "y":0},
{"label":"9", "x":10.5, "y":0},
{"label":"0", "x":11.5, "y":0},
{"label":"_", "x":12.5, "y":0},
{"label":"+", "x":13.5, "y":0},
{"label":"Backspace", "x":14.5, "y":0, "w":2},
{"label":"Tab", "x":1, "y":1, "w":1.5},
{"label":"Q", "x":2.5, "y":1},
{"label":"W", "x":3.5, "y":1},
{"label":"E", "x":4.5, "y":1},
{"label":"R", "x":5.5, "y":1},
{"label":"T", "x":6.5, "y":1},
{"label":"Y", "x":7.5, "y":1},
{"label":"U", "x":8.5, "y":1},
{"label":"I", "x":9.5, "y":1},
{"label":"O", "x":10.5, "y":1},
{"label":"P", "x":11.5, "y":1},
{"label":"[", "x":12.5, "y":1},
{"label":"]", "x":13.5, "y":1},
{"label":"\\", "x":14.5, "y":1, "w":1.5},
{"label":"Caps Lock", "x":0.75, "y":2, "w":1.75},
{"label":"A", "x":2.5, "y":2},
{"label":"S", "x":3.5, "y":2},
{"label":"D", "x":4.5, "y":2},
{"label":"F", "x":5.5, "y":2},
{"label":"G", "x":6.5, "y":2},
{"label":"H", "x":7.5, "y":2},
{"label":"J", "x":8.5, "y":2},
{"label":"K", "x":9.5, "y":2},
{"label":"L", "x":10.5, "y":2},
{"label":";", "x":11.5, "y":2},
{"label":"'", "x":12.5, "y":2},
{"label":"Enter", "x":13.5, "y":2, "w":2.25},
{"label":"Shift", "x":0.25, "y":3, "w":2.25},
{"label":"Z", "x":2.5, "y":3},
{"label":"X", "x":3.5, "y":3},
{"label":"C", "x":4.5, "y":3},
{"label":"V", "x":5.5, "y":3},
{"label":"B", "x":6.5, "y":3},
{"label":"N", "x":7.5, "y":3},
{"label":"M", "x":8.5, "y":3},
{"label":",", "x":9.5, "y":3},
{"label":".", "x":10.5, "y":3},
{"label":"/", "x":11.5, "y":3},
{"label":"Shift", "x":12.5, "y":3, "w":2.75},
{"label":"\u2191", "x":15.25, "y":3},
{"label":"Super", "x":0, "y":4, "w":1.25},
{"label":"Ctrl", "x":1.25, "y":4, "w":1.25},
{"label":"Alt", "x":3.37, "y":4, "w":1.25},
{"x":4.62, "y":4, "w":2.75},
{"x":7.37, "y":4, "w":2.25},
{"x":9.62, "y":4, "w":1.25},
{"label":"Alt", "x":10.87, "y":4, "w":1.25},
{"label":"Function", "x":12.12, "y":4, "w":1.25},
{"label":"\u2190", "x":14.25, "y":4},
{"label":"\u2193", "x":15.25, "y":4},
{"label":"\u2192", "x":16.25, "y":4}
]
},
"LAYOUT_ad5": {
"layout": [{"label":"Mute", "x":0.5, "y":0}, {"label":"Esc", "x":1.5, "y":0}, {"label":"1", "x":2.5, "y":0}, {"label":"2", "x":3.5, "y":0}, {"label":"3", "x":4.5, "y":0}, {"label":"4", "x":5.5, "y":0}, {"label":"5", "x":6.5, "y":0}, {"label":"6", "x":7.5, "y":0}, {"label":"7", "x":8.5, "y":0}, {"label":"8", "x":9.5, "y":0}, {"label":"9", "x":10.5, "y":0}, {"label":"0", "x":11.5, "y":0}, {"label":"_", "x":12.5, "y":0}, {"label":"+", "x":13.5, "y":0}, {"label":"Backspace", "x":14.5, "y":0, "w":2}, {"label":"Tab", "x":1, "y":1, "w":1.5}, {"label":"Q", "x":2.5, "y":1}, {"label":"W", "x":3.5, "y":1}, {"label":"E", "x":4.5, "y":1}, {"label":"R", "x":5.5, "y":1}, {"label":"T", "x":6.5, "y":1}, {"label":"Y", "x":7.5, "y":1}, {"label":"U", "x":8.5, "y":1}, {"label":"I", "x":9.5, "y":1}, {"label":"O", "x":10.5, "y":1}, {"label":"P", "x":11.5, "y":1}, {"label":"[", "x":12.5, "y":1}, {"label":"]", "x":13.5, "y":1}, {"label":"\\", "x":14.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0.75, "y":2, "w":1.75}, {"label":"A", "x":2.5, "y":2}, {"label":"S", "x":3.5, "y":2}, {"label":"D", "x":4.5, "y":2}, {"label":"F", "x":5.5, "y":2}, {"label":"G", "x":6.5, "y":2}, {"label":"H", "x":7.5, "y":2}, {"label":"J", "x":8.5, "y":2}, {"label":"K", "x":9.5, "y":2}, {"label":"L", "x":10.5, "y":2}, {"label":";", "x":11.5, "y":2}, {"label":"'", "x":12.5, "y":2}, {"label":"Enter", "x":13.5, "y":2, "w":2.25}, {"label":"Shift", "x":0.25, "y":3, "w":2.25}, {"label":"Z", "x":2.5, "y":3}, {"label":"X", "x":3.5, "y":3}, {"label":"C", "x":4.5, "y":3}, {"label":"V", "x":5.5, "y":3}, {"label":"B", "x":6.5, "y":3}, {"label":"N", "x":7.5, "y":3}, {"label":"M", "x":8.5, "y":3}, {"label":",", "x":9.5, "y":3}, {"label":".", "x":10.5, "y":3}, {"label":"/", "x":11.5, "y":3}, {"label":"Shift", "x":12.5, "y":3, "w":1.75}, {"label":"Fn", "x":14.25, "y":3}, {"label":"\u2191", "x":15.25, "y":3}, {"label":"Super", "x":0, "y":4, "w":1.25}, {"label":"Ctrl", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":3.37, "y":4, "w":1.25}, {"x":4.62, "y":4, "w":6.25}, {"label":"Alt", "x":10.87, "y":4, "w":1.25}, {"label":"Function", "x":12.12, "y":4, "w":1.25}, {"label":"\u2190", "x":14.25, "y":4}, {"label":"\u2193", "x":15.25, "y":4}, {"label":"\u2192", "x":16.25, "y":4}]
"layout": [
{"label":"Mute", "x":0.5, "y":0},
{"label":"Esc", "x":1.5, "y":0},
{"label":"1", "x":2.5, "y":0},
{"label":"2", "x":3.5, "y":0},
{"label":"3", "x":4.5, "y":0},
{"label":"4", "x":5.5, "y":0},
{"label":"5", "x":6.5, "y":0},
{"label":"6", "x":7.5, "y":0},
{"label":"7", "x":8.5, "y":0},
{"label":"8", "x":9.5, "y":0},
{"label":"9", "x":10.5, "y":0},
{"label":"0", "x":11.5, "y":0},
{"label":"_", "x":12.5, "y":0},
{"label":"+", "x":13.5, "y":0},
{"label":"Backspace", "x":14.5, "y":0, "w":2},
{"label":"Tab", "x":1, "y":1, "w":1.5},
{"label":"Q", "x":2.5, "y":1},
{"label":"W", "x":3.5, "y":1},
{"label":"E", "x":4.5, "y":1},
{"label":"R", "x":5.5, "y":1},
{"label":"T", "x":6.5, "y":1},
{"label":"Y", "x":7.5, "y":1},
{"label":"U", "x":8.5, "y":1},
{"label":"I", "x":9.5, "y":1},
{"label":"O", "x":10.5, "y":1},
{"label":"P", "x":11.5, "y":1},
{"label":"[", "x":12.5, "y":1},
{"label":"]", "x":13.5, "y":1},
{"label":"\\", "x":14.5, "y":1, "w":1.5},
{"label":"Caps Lock", "x":0.75, "y":2, "w":1.75},
{"label":"A", "x":2.5, "y":2},
{"label":"S", "x":3.5, "y":2},
{"label":"D", "x":4.5, "y":2},
{"label":"F", "x":5.5, "y":2},
{"label":"G", "x":6.5, "y":2},
{"label":"H", "x":7.5, "y":2},
{"label":"J", "x":8.5, "y":2},
{"label":"K", "x":9.5, "y":2},
{"label":"L", "x":10.5, "y":2},
{"label":";", "x":11.5, "y":2},
{"label":"'", "x":12.5, "y":2},
{"label":"Enter", "x":13.5, "y":2, "w":2.25},
{"label":"Shift", "x":0.25, "y":3, "w":2.25},
{"label":"Z", "x":2.5, "y":3},
{"label":"X", "x":3.5, "y":3},
{"label":"C", "x":4.5, "y":3},
{"label":"V", "x":5.5, "y":3},
{"label":"B", "x":6.5, "y":3},
{"label":"N", "x":7.5, "y":3},
{"label":"M", "x":8.5, "y":3},
{"label":",", "x":9.5, "y":3},
{"label":".", "x":10.5, "y":3},
{"label":"/", "x":11.5, "y":3},
{"label":"Shift", "x":12.5, "y":3, "w":1.75},
{"label":"Fn", "x":14.25, "y":3},
{"label":"\u2191", "x":15.25, "y":3},
{"label":"Super", "x":0, "y":4, "w":1.25},
{"label":"Ctrl", "x":1.25, "y":4, "w":1.25},
{"label":"Alt", "x":3.37, "y":4, "w":1.25},
{"x":4.62, "y":4, "w":6.25},
{"label":"Alt", "x":10.87, "y":4, "w":1.25},
{"label":"Function", "x":12.12, "y":4, "w":1.25},
{"label":"\u2190", "x":14.25, "y":4},
{"label":"\u2193", "x":15.25, "y":4},
{"label":"\u2192", "x":16.25, "y":4}
]
},
"LAYOUT_ads": {
"layout": [{"label":"Mute", "x":0.5, "y":0}, {"label":"Esc", "x":1.5, "y":0}, {"label":"1", "x":2.5, "y":0}, {"label":"2", "x":3.5, "y":0}, {"label":"3", "x":4.5, "y":0}, {"label":"4", "x":5.5, "y":0}, {"label":"5", "x":6.5, "y":0}, {"label":"6", "x":7.5, "y":0}, {"label":"7", "x":8.5, "y":0}, {"label":"8", "x":9.5, "y":0}, {"label":"9", "x":10.5, "y":0}, {"label":"0", "x":11.5, "y":0}, {"label":"_", "x":12.5, "y":0}, {"label":"+", "x":13.5, "y":0}, {"label":"Backspace", "x":14.5, "y":0, "w":2}, {"label":"Tab", "x":1, "y":1, "w":1.5}, {"label":"Q", "x":2.5, "y":1}, {"label":"W", "x":3.5, "y":1}, {"label":"E", "x":4.5, "y":1}, {"label":"R", "x":5.5, "y":1}, {"label":"T", "x":6.5, "y":1}, {"label":"Y", "x":7.5, "y":1}, {"label":"U", "x":8.5, "y":1}, {"label":"I", "x":9.5, "y":1}, {"label":"O", "x":10.5, "y":1}, {"label":"P", "x":11.5, "y":1}, {"label":"[", "x":12.5, "y":1}, {"label":"]", "x":13.5, "y":1}, {"label":"\\", "x":14.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0.75, "y":2, "w":1.75}, {"label":"A", "x":2.5, "y":2}, {"label":"S", "x":3.5, "y":2}, {"label":"D", "x":4.5, "y":2}, {"label":"F", "x":5.5, "y":2}, {"label":"G", "x":6.5, "y":2}, {"label":"H", "x":7.5, "y":2}, {"label":"J", "x":8.5, "y":2}, {"label":"K", "x":9.5, "y":2}, {"label":"L", "x":10.5, "y":2}, {"label":";", "x":11.5, "y":2}, {"label":"'", "x":12.5, "y":2}, {"label":"Enter", "x":13.5, "y":2, "w":2.25}, {"label":"Shift", "x":0.25, "y":3, "w":2.25}, {"label":"Z", "x":2.5, "y":3}, {"label":"X", "x":3.5, "y":3}, {"label":"C", "x":4.5, "y":3}, {"label":"V", "x":5.5, "y":3}, {"label":"B", "x":6.5, "y":3}, {"label":"N", "x":7.5, "y":3}, {"label":"M", "x":8.5, "y":3}, {"label":",", "x":9.5, "y":3}, {"label":".", "x":10.5, "y":3}, {"label":"/", "x":11.5, "y":3}, {"label":"Shift", "x":12.5, "y":3, "w":1.75}, {"label":"Fn", "x":14.25, "y":3}, {"label":"\u2191", "x":15.25, "y":3}, {"label":"Super", "x":0, "y":4, "w":1.25}, {"label":"Ctrl", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":3.37, "y":4, "w":1.25}, {"x":4.62, "y":4, "w":2.75}, {"x":7.37, "y":4, "w":2.25}, {"x":9.62, "y":4, "w":1.25}, {"label":"Alt", "x":10.87, "y":4, "w":1.25}, {"label":"Function", "x":12.12, "y":4, "w":1.25}, {"label":"\u2190", "x":14.25, "y":4}, {"label":"\u2193", "x":15.25, "y":4}, {"label":"\u2192", "x":16.25, "y":4}]
"layout": [
{"label":"Mute", "x":0.5, "y":0},
{"label":"Esc", "x":1.5, "y":0},
{"label":"1", "x":2.5, "y":0},
{"label":"2", "x":3.5, "y":0},
{"label":"3", "x":4.5, "y":0},
{"label":"4", "x":5.5, "y":0},
{"label":"5", "x":6.5, "y":0},
{"label":"6", "x":7.5, "y":0},
{"label":"7", "x":8.5, "y":0},
{"label":"8", "x":9.5, "y":0},
{"label":"9", "x":10.5, "y":0},
{"label":"0", "x":11.5, "y":0},
{"label":"_", "x":12.5, "y":0},
{"label":"+", "x":13.5, "y":0},
{"label":"Backspace", "x":14.5, "y":0, "w":2},
{"label":"Tab", "x":1, "y":1, "w":1.5},
{"label":"Q", "x":2.5, "y":1},
{"label":"W", "x":3.5, "y":1},
{"label":"E", "x":4.5, "y":1},
{"label":"R", "x":5.5, "y":1},
{"label":"T", "x":6.5, "y":1},
{"label":"Y", "x":7.5, "y":1},
{"label":"U", "x":8.5, "y":1},
{"label":"I", "x":9.5, "y":1},
{"label":"O", "x":10.5, "y":1},
{"label":"P", "x":11.5, "y":1},
{"label":"[", "x":12.5, "y":1},
{"label":"]", "x":13.5, "y":1},
{"label":"\\", "x":14.5, "y":1, "w":1.5},
{"label":"Caps Lock", "x":0.75, "y":2, "w":1.75},
{"label":"A", "x":2.5, "y":2},
{"label":"S", "x":3.5, "y":2},
{"label":"D", "x":4.5, "y":2},
{"label":"F", "x":5.5, "y":2},
{"label":"G", "x":6.5, "y":2},
{"label":"H", "x":7.5, "y":2},
{"label":"J", "x":8.5, "y":2},
{"label":"K", "x":9.5, "y":2},
{"label":"L", "x":10.5, "y":2},
{"label":";", "x":11.5, "y":2},
{"label":"'", "x":12.5, "y":2},
{"label":"Enter", "x":13.5, "y":2, "w":2.25},
{"label":"Shift", "x":0.25, "y":3, "w":2.25},
{"label":"Z", "x":2.5, "y":3},
{"label":"X", "x":3.5, "y":3},
{"label":"C", "x":4.5, "y":3},
{"label":"V", "x":5.5, "y":3},
{"label":"B", "x":6.5, "y":3},
{"label":"N", "x":7.5, "y":3},
{"label":"M", "x":8.5, "y":3},
{"label":",", "x":9.5, "y":3},
{"label":".", "x":10.5, "y":3},
{"label":"/", "x":11.5, "y":3},
{"label":"Shift", "x":12.5, "y":3, "w":1.75},
{"label":"Fn", "x":14.25, "y":3},
{"label":"\u2191", "x":15.25, "y":3},
{"label":"Super", "x":0, "y":4, "w":1.25},
{"label":"Ctrl", "x":1.25, "y":4, "w":1.25},
{"label":"Alt", "x":3.37, "y":4, "w":1.25},
{"x":4.62, "y":4, "w":2.75},
{"x":7.37, "y":4, "w":2.25},
{"x":9.62, "y":4, "w":1.25},
{"label":"Alt", "x":10.87, "y":4, "w":1.25},
{"label":"Function", "x":12.12, "y":4, "w":1.25},
{"label":"\u2190", "x":14.25, "y":4},
{"label":"\u2193", "x":15.25, "y":4},
{"label":"\u2192", "x":16.25, "y":4}
]
},
"LAYOUT_bc5": {
"layout": [{"label":"Mute", "x":0.5, "y":0}, {"label":"Esc", "x":1.5, "y":0}, {"label":"1", "x":2.5, "y":0}, {"label":"2", "x":3.5, "y":0}, {"label":"3", "x":4.5, "y":0}, {"label":"4", "x":5.5, "y":0}, {"label":"5", "x":6.5, "y":0}, {"label":"6", "x":7.5, "y":0}, {"label":"7", "x":8.5, "y":0}, {"label":"8", "x":9.5, "y":0}, {"label":"9", "x":10.5, "y":0}, {"label":"0", "x":11.5, "y":0}, {"label":"_", "x":12.5, "y":0}, {"label":"+", "x":13.5, "y":0}, {"label":"\u2190", "x":14.5, "y":0}, {"label":"Del", "x":15.5, "y":0}, {"label":"Tab", "x":1, "y":1, "w":1.5}, {"label":"Q", "x":2.5, "y":1}, {"label":"W", "x":3.5, "y":1}, {"label":"E", "x":4.5, "y":1}, {"label":"R", "x":5.5, "y":1}, {"label":"T", "x":6.5, "y":1}, {"label":"Y", "x":7.5, "y":1}, {"label":"U", "x":8.5, "y":1}, {"label":"I", "x":9.5, "y":1}, {"label":"O", "x":10.5, "y":1}, {"label":"P", "x":11.5, "y":1}, {"label":"[", "x":12.5, "y":1}, {"label":"]", "x":13.5, "y":1}, {"label":"\\", "x":14.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0.75, "y":2, "w":1.75}, {"label":"A", "x":2.5, "y":2}, {"label":"S", "x":3.5, "y":2}, {"label":"D", "x":4.5, "y":2}, {"label":"F", "x":5.5, "y":2}, {"label":"G", "x":6.5, "y":2}, {"label":"H", "x":7.5, "y":2}, {"label":"J", "x":8.5, "y":2}, {"label":"K", "x":9.5, "y":2}, {"label":"L", "x":10.5, "y":2}, {"label":";", "x":11.5, "y":2}, {"label":"'", "x":12.5, "y":2}, {"label":"Enter", "x":13.5, "y":2, "w":2.25}, {"label":"Shift", "x":0.25, "y":3, "w":2.25}, {"label":"Z", "x":2.5, "y":3}, {"label":"X", "x":3.5, "y":3}, {"label":"C", "x":4.5, "y":3}, {"label":"V", "x":5.5, "y":3}, {"label":"B", "x":6.5, "y":3}, {"label":"N", "x":7.5, "y":3}, {"label":"M", "x":8.5, "y":3}, {"label":",", "x":9.5, "y":3}, {"label":".", "x":10.5, "y":3}, {"label":"/", "x":11.5, "y":3}, {"label":"Shift", "x":12.5, "y":3, "w":2.75}, {"label":"\u2191", "x":15.25, "y":3}, {"label":"Super", "x":0, "y":4, "w":1.25}, {"label":"Ctrl", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":3.37, "y":4, "w":1.25}, {"x":4.62, "y":4, "w":6.25}, {"label":"Alt", "x":10.87, "y":4, "w":1.25}, {"label":"Function", "x":12.12, "y":4, "w":1.25}, {"label":"\u2190", "x":14.25, "y":4}, {"label":"\u2193", "x":15.25, "y":4}, {"label":"\u2192", "x":16.25, "y":4}]
"layout": [
{"label":"Mute", "x":0.5, "y":0},
{"label":"Esc", "x":1.5, "y":0},
{"label":"1", "x":2.5, "y":0},
{"label":"2", "x":3.5, "y":0},
{"label":"3", "x":4.5, "y":0},
{"label":"4", "x":5.5, "y":0},
{"label":"5", "x":6.5, "y":0},
{"label":"6", "x":7.5, "y":0},
{"label":"7", "x":8.5, "y":0},
{"label":"8", "x":9.5, "y":0},
{"label":"9", "x":10.5, "y":0},
{"label":"0", "x":11.5, "y":0},
{"label":"_", "x":12.5, "y":0},
{"label":"+", "x":13.5, "y":0},
{"label":"\u2190", "x":14.5, "y":0},
{"label":"Del", "x":15.5, "y":0},
{"label":"Tab", "x":1, "y":1, "w":1.5},
{"label":"Q", "x":2.5, "y":1},
{"label":"W", "x":3.5, "y":1},
{"label":"E", "x":4.5, "y":1},
{"label":"R", "x":5.5, "y":1},
{"label":"T", "x":6.5, "y":1},
{"label":"Y", "x":7.5, "y":1},
{"label":"U", "x":8.5, "y":1},
{"label":"I", "x":9.5, "y":1},
{"label":"O", "x":10.5, "y":1},
{"label":"P", "x":11.5, "y":1},
{"label":"[", "x":12.5, "y":1},
{"label":"]", "x":13.5, "y":1},
{"label":"\\", "x":14.5, "y":1, "w":1.5},
{"label":"Caps Lock", "x":0.75, "y":2, "w":1.75},
{"label":"A", "x":2.5, "y":2},
{"label":"S", "x":3.5, "y":2},
{"label":"D", "x":4.5, "y":2},
{"label":"F", "x":5.5, "y":2},
{"label":"G", "x":6.5, "y":2},
{"label":"H", "x":7.5, "y":2},
{"label":"J", "x":8.5, "y":2},
{"label":"K", "x":9.5, "y":2},
{"label":"L", "x":10.5, "y":2},
{"label":";", "x":11.5, "y":2},
{"label":"'", "x":12.5, "y":2},
{"label":"Enter", "x":13.5, "y":2, "w":2.25},
{"label":"Shift", "x":0.25, "y":3, "w":2.25},
{"label":"Z", "x":2.5, "y":3},
{"label":"X", "x":3.5, "y":3},
{"label":"C", "x":4.5, "y":3},
{"label":"V", "x":5.5, "y":3},
{"label":"B", "x":6.5, "y":3},
{"label":"N", "x":7.5, "y":3},
{"label":"M", "x":8.5, "y":3},
{"label":",", "x":9.5, "y":3},
{"label":".", "x":10.5, "y":3},
{"label":"/", "x":11.5, "y":3},
{"label":"Shift", "x":12.5, "y":3, "w":2.75},
{"label":"\u2191", "x":15.25, "y":3},
{"label":"Super", "x":0, "y":4, "w":1.25},
{"label":"Ctrl", "x":1.25, "y":4, "w":1.25},
{"label":"Alt", "x":3.37, "y":4, "w":1.25},
{"x":4.62, "y":4, "w":6.25},
{"label":"Alt", "x":10.87, "y":4, "w":1.25},
{"label":"Function", "x":12.12, "y":4, "w":1.25},
{"label":"\u2190", "x":14.25, "y":4},
{"label":"\u2193", "x":15.25, "y":4},
{"label":"\u2192", "x":16.25, "y":4}
]
},
"LAYOUT_bcs": {
"layout": [{"label":"Mute", "x":0.5, "y":0}, {"label":"Esc", "x":1.5, "y":0}, {"label":"1", "x":2.5, "y":0}, {"label":"2", "x":3.5, "y":0}, {"label":"3", "x":4.5, "y":0}, {"label":"4", "x":5.5, "y":0}, {"label":"5", "x":6.5, "y":0}, {"label":"6", "x":7.5, "y":0}, {"label":"7", "x":8.5, "y":0}, {"label":"8", "x":9.5, "y":0}, {"label":"9", "x":10.5, "y":0}, {"label":"0", "x":11.5, "y":0}, {"label":"_", "x":12.5, "y":0}, {"label":"+", "x":13.5, "y":0}, {"label":"\u2190", "x":14.5, "y":0}, {"label":"Del", "x":15.5, "y":0}, {"label":"Tab", "x":1, "y":1, "w":1.5}, {"label":"Q", "x":2.5, "y":1}, {"label":"W", "x":3.5, "y":1}, {"label":"E", "x":4.5, "y":1}, {"label":"R", "x":5.5, "y":1}, {"label":"T", "x":6.5, "y":1}, {"label":"Y", "x":7.5, "y":1}, {"label":"U", "x":8.5, "y":1}, {"label":"I", "x":9.5, "y":1}, {"label":"O", "x":10.5, "y":1}, {"label":"P", "x":11.5, "y":1}, {"label":"[", "x":12.5, "y":1}, {"label":"]", "x":13.5, "y":1}, {"label":"\\", "x":14.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0.75, "y":2, "w":1.75}, {"label":"A", "x":2.5, "y":2}, {"label":"S", "x":3.5, "y":2}, {"label":"D", "x":4.5, "y":2}, {"label":"F", "x":5.5, "y":2}, {"label":"G", "x":6.5, "y":2}, {"label":"H", "x":7.5, "y":2}, {"label":"J", "x":8.5, "y":2}, {"label":"K", "x":9.5, "y":2}, {"label":"L", "x":10.5, "y":2}, {"label":";", "x":11.5, "y":2}, {"label":"'", "x":12.5, "y":2}, {"label":"Enter", "x":13.5, "y":2, "w":2.25}, {"label":"Shift", "x":0.25, "y":3, "w":2.25}, {"label":"Z", "x":2.5, "y":3}, {"label":"X", "x":3.5, "y":3}, {"label":"C", "x":4.5, "y":3}, {"label":"V", "x":5.5, "y":3}, {"label":"B", "x":6.5, "y":3}, {"label":"N", "x":7.5, "y":3}, {"label":"M", "x":8.5, "y":3}, {"label":",", "x":9.5, "y":3}, {"label":".", "x":10.5, "y":3}, {"label":"/", "x":11.5, "y":3}, {"label":"Shift", "x":12.5, "y":3, "w":2.75}, {"label":"\u2191", "x":15.25, "y":3}, {"label":"Super", "x":0, "y":4, "w":1.25}, {"label":"Ctrl", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":3.37, "y":4, "w":1.25}, {"x":4.62, "y":4, "w":2.75}, {"x":7.37, "y":4, "w":2.25}, {"x":9.62, "y":4, "w":1.25}, {"label":"Alt", "x":10.87, "y":4, "w":1.25}, {"label":"Function", "x":12.12, "y":4, "w":1.25}, {"label":"\u2190", "x":14.25, "y":4}, {"label":"\u2193", "x":15.25, "y":4}, {"label":"\u2192", "x":16.25, "y":4}]
"layout": [
{"label":"Mute", "x":0.5, "y":0},
{"label":"Esc", "x":1.5, "y":0},
{"label":"1", "x":2.5, "y":0},
{"label":"2", "x":3.5, "y":0},
{"label":"3", "x":4.5, "y":0},
{"label":"4", "x":5.5, "y":0},
{"label":"5", "x":6.5, "y":0},
{"label":"6", "x":7.5, "y":0},
{"label":"7", "x":8.5, "y":0},
{"label":"8", "x":9.5, "y":0},
{"label":"9", "x":10.5, "y":0},
{"label":"0", "x":11.5, "y":0},
{"label":"_", "x":12.5, "y":0},
{"label":"+", "x":13.5, "y":0},
{"label":"\u2190", "x":14.5, "y":0},
{"label":"Del", "x":15.5, "y":0},
{"label":"Tab", "x":1, "y":1, "w":1.5},
{"label":"Q", "x":2.5, "y":1},
{"label":"W", "x":3.5, "y":1},
{"label":"E", "x":4.5, "y":1},
{"label":"R", "x":5.5, "y":1},
{"label":"T", "x":6.5, "y":1},
{"label":"Y", "x":7.5, "y":1},
{"label":"U", "x":8.5, "y":1},
{"label":"I", "x":9.5, "y":1},
{"label":"O", "x":10.5, "y":1},
{"label":"P", "x":11.5, "y":1},
{"label":"[", "x":12.5, "y":1},
{"label":"]", "x":13.5, "y":1},
{"label":"\\", "x":14.5, "y":1, "w":1.5},
{"label":"Caps Lock", "x":0.75, "y":2, "w":1.75},
{"label":"A", "x":2.5, "y":2},
{"label":"S", "x":3.5, "y":2},
{"label":"D", "x":4.5, "y":2},
{"label":"F", "x":5.5, "y":2},
{"label":"G", "x":6.5, "y":2},
{"label":"H", "x":7.5, "y":2},
{"label":"J", "x":8.5, "y":2},
{"label":"K", "x":9.5, "y":2},
{"label":"L", "x":10.5, "y":2},
{"label":";", "x":11.5, "y":2},
{"label":"'", "x":12.5, "y":2},
{"label":"Enter", "x":13.5, "y":2, "w":2.25},
{"label":"Shift", "x":0.25, "y":3, "w":2.25},
{"label":"Z", "x":2.5, "y":3},
{"label":"X", "x":3.5, "y":3},
{"label":"C", "x":4.5, "y":3},
{"label":"V", "x":5.5, "y":3},
{"label":"B", "x":6.5, "y":3},
{"label":"N", "x":7.5, "y":3},
{"label":"M", "x":8.5, "y":3},
{"label":",", "x":9.5, "y":3},
{"label":".", "x":10.5, "y":3},
{"label":"/", "x":11.5, "y":3},
{"label":"Shift", "x":12.5, "y":3, "w":2.75},
{"label":"\u2191", "x":15.25, "y":3},
{"label":"Super", "x":0, "y":4, "w":1.25},
{"label":"Ctrl", "x":1.25, "y":4, "w":1.25},
{"label":"Alt", "x":3.37, "y":4, "w":1.25},
{"x":4.62, "y":4, "w":2.75},
{"x":7.37, "y":4, "w":2.25},
{"x":9.62, "y":4, "w":1.25},
{"label":"Alt", "x":10.87, "y":4, "w":1.25},
{"label":"Function", "x":12.12, "y":4, "w":1.25},
{"label":"\u2190", "x":14.25, "y":4},
{"label":"\u2193", "x":15.25, "y":4},
{"label":"\u2192", "x":16.25, "y":4}
]
},
"LAYOUT_bd5": {
"layout": [{"label":"Mute", "x":0.5, "y":0}, {"label":"Esc", "x":1.5, "y":0}, {"label":"1", "x":2.5, "y":0}, {"label":"2", "x":3.5, "y":0}, {"label":"3", "x":4.5, "y":0}, {"label":"4", "x":5.5, "y":0}, {"label":"5", "x":6.5, "y":0}, {"label":"6", "x":7.5, "y":0}, {"label":"7", "x":8.5, "y":0}, {"label":"8", "x":9.5, "y":0}, {"label":"9", "x":10.5, "y":0}, {"label":"0", "x":11.5, "y":0}, {"label":"_", "x":12.5, "y":0}, {"label":"+", "x":13.5, "y":0}, {"label":"\u2190", "x":14.5, "y":0}, {"label":"Del", "x":15.5, "y":0}, {"label":"Tab", "x":1, "y":1, "w":1.5}, {"label":"Q", "x":2.5, "y":1}, {"label":"W", "x":3.5, "y":1}, {"label":"E", "x":4.5, "y":1}, {"label":"R", "x":5.5, "y":1}, {"label":"T", "x":6.5, "y":1}, {"label":"Y", "x":7.5, "y":1}, {"label":"U", "x":8.5, "y":1}, {"label":"I", "x":9.5, "y":1}, {"label":"O", "x":10.5, "y":1}, {"label":"P", "x":11.5, "y":1}, {"label":"[", "x":12.5, "y":1}, {"label":"]", "x":13.5, "y":1}, {"label":"\\", "x":14.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0.75, "y":2, "w":1.75}, {"label":"A", "x":2.5, "y":2}, {"label":"S", "x":3.5, "y":2}, {"label":"D", "x":4.5, "y":2}, {"label":"F", "x":5.5, "y":2}, {"label":"G", "x":6.5, "y":2}, {"label":"H", "x":7.5, "y":2}, {"label":"J", "x":8.5, "y":2}, {"label":"K", "x":9.5, "y":2}, {"label":"L", "x":10.5, "y":2}, {"label":";", "x":11.5, "y":2}, {"label":"'", "x":12.5, "y":2}, {"label":"Enter", "x":13.5, "y":2, "w":2.25}, {"label":"Shift", "x":0.25, "y":3, "w":2.25}, {"label":"Z", "x":2.5, "y":3}, {"label":"X", "x":3.5, "y":3}, {"label":"C", "x":4.5, "y":3}, {"label":"V", "x":5.5, "y":3}, {"label":"B", "x":6.5, "y":3}, {"label":"N", "x":7.5, "y":3}, {"label":"M", "x":8.5, "y":3}, {"label":",", "x":9.5, "y":3}, {"label":".", "x":10.5, "y":3}, {"label":"/", "x":11.5, "y":3}, {"label":"Shift", "x":12.5, "y":3, "w":1.75}, {"label":"Fn", "x":14.25, "y":3}, {"label":"\u2191", "x":15.25, "y":3}, {"label":"Super", "x":0, "y":4, "w":1.25}, {"label":"Ctrl", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":3.37, "y":4, "w":1.25}, {"x":4.62, "y":4, "w":6.25}, {"label":"Alt", "x":10.87, "y":4, "w":1.25}, {"label":"Function", "x":12.12, "y":4, "w":1.25}, {"label":"\u2190", "x":14.25, "y":4}, {"label":"\u2193", "x":15.25, "y":4}, {"label":"\u2192", "x":16.25, "y":4}]
"layout": [
{"label":"Mute", "x":0.5, "y":0},
{"label":"Esc", "x":1.5, "y":0},
{"label":"1", "x":2.5, "y":0},
{"label":"2", "x":3.5, "y":0},
{"label":"3", "x":4.5, "y":0},
{"label":"4", "x":5.5, "y":0},
{"label":"5", "x":6.5, "y":0},
{"label":"6", "x":7.5, "y":0},
{"label":"7", "x":8.5, "y":0},
{"label":"8", "x":9.5, "y":0},
{"label":"9", "x":10.5, "y":0},
{"label":"0", "x":11.5, "y":0},
{"label":"_", "x":12.5, "y":0},
{"label":"+", "x":13.5, "y":0},
{"label":"\u2190", "x":14.5, "y":0},
{"label":"Del", "x":15.5, "y":0},
{"label":"Tab", "x":1, "y":1, "w":1.5},
{"label":"Q", "x":2.5, "y":1},
{"label":"W", "x":3.5, "y":1},
{"label":"E", "x":4.5, "y":1},
{"label":"R", "x":5.5, "y":1},
{"label":"T", "x":6.5, "y":1},
{"label":"Y", "x":7.5, "y":1},
{"label":"U", "x":8.5, "y":1},
{"label":"I", "x":9.5, "y":1},
{"label":"O", "x":10.5, "y":1},
{"label":"P", "x":11.5, "y":1},
{"label":"[", "x":12.5, "y":1},
{"label":"]", "x":13.5, "y":1},
{"label":"\\", "x":14.5, "y":1, "w":1.5},
{"label":"Caps Lock", "x":0.75, "y":2, "w":1.75},
{"label":"A", "x":2.5, "y":2},
{"label":"S", "x":3.5, "y":2},
{"label":"D", "x":4.5, "y":2},
{"label":"F", "x":5.5, "y":2},
{"label":"G", "x":6.5, "y":2},
{"label":"H", "x":7.5, "y":2},
{"label":"J", "x":8.5, "y":2},
{"label":"K", "x":9.5, "y":2},
{"label":"L", "x":10.5, "y":2},
{"label":";", "x":11.5, "y":2},
{"label":"'", "x":12.5, "y":2},
{"label":"Enter", "x":13.5, "y":2, "w":2.25},
{"label":"Shift", "x":0.25, "y":3, "w":2.25},
{"label":"Z", "x":2.5, "y":3},
{"label":"X", "x":3.5, "y":3},
{"label":"C", "x":4.5, "y":3},
{"label":"V", "x":5.5, "y":3},
{"label":"B", "x":6.5, "y":3},
{"label":"N", "x":7.5, "y":3},
{"label":"M", "x":8.5, "y":3},
{"label":",", "x":9.5, "y":3},
{"label":".", "x":10.5, "y":3},
{"label":"/", "x":11.5, "y":3},
{"label":"Shift", "x":12.5, "y":3, "w":1.75},
{"label":"Fn", "x":14.25, "y":3},
{"label":"\u2191", "x":15.25, "y":3},
{"label":"Super", "x":0, "y":4, "w":1.25},
{"label":"Ctrl", "x":1.25, "y":4, "w":1.25},
{"label":"Alt", "x":3.37, "y":4, "w":1.25},
{"x":4.62, "y":4, "w":6.25},
{"label":"Alt", "x":10.87, "y":4, "w":1.25},
{"label":"Function", "x":12.12, "y":4, "w":1.25},
{"label":"\u2190", "x":14.25, "y":4},
{"label":"\u2193", "x":15.25, "y":4},
{"label":"\u2192", "x":16.25, "y":4}
]
},
"LAYOUT_bds": {
"layout": [{"label":"Mute", "x":0.5, "y":0}, {"label":"Esc", "x":1.5, "y":0}, {"label":"1", "x":2.5, "y":0}, {"label":"2", "x":3.5, "y":0}, {"label":"3", "x":4.5, "y":0}, {"label":"4", "x":5.5, "y":0}, {"label":"5", "x":6.5, "y":0}, {"label":"6", "x":7.5, "y":0}, {"label":"7", "x":8.5, "y":0}, {"label":"8", "x":9.5, "y":0}, {"label":"9", "x":10.5, "y":0}, {"label":"0", "x":11.5, "y":0}, {"label":"_", "x":12.5, "y":0}, {"label":"+", "x":13.5, "y":0}, {"label":"\u2190", "x":14.5, "y":0}, {"label":"Del", "x":15.5, "y":0}, {"label":"Tab", "x":1, "y":1, "w":1.5}, {"label":"Q", "x":2.5, "y":1}, {"label":"W", "x":3.5, "y":1}, {"label":"E", "x":4.5, "y":1}, {"label":"R", "x":5.5, "y":1}, {"label":"T", "x":6.5, "y":1}, {"label":"Y", "x":7.5, "y":1}, {"label":"U", "x":8.5, "y":1}, {"label":"I", "x":9.5, "y":1}, {"label":"O", "x":10.5, "y":1}, {"label":"P", "x":11.5, "y":1}, {"label":"[", "x":12.5, "y":1}, {"label":"]", "x":13.5, "y":1}, {"label":"\\", "x":14.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0.75, "y":2, "w":1.75}, {"label":"A", "x":2.5, "y":2}, {"label":"S", "x":3.5, "y":2}, {"label":"D", "x":4.5, "y":2}, {"label":"F", "x":5.5, "y":2}, {"label":"G", "x":6.5, "y":2}, {"label":"H", "x":7.5, "y":2}, {"label":"J", "x":8.5, "y":2}, {"label":"K", "x":9.5, "y":2}, {"label":"L", "x":10.5, "y":2}, {"label":";", "x":11.5, "y":2}, {"label":"'", "x":12.5, "y":2}, {"label":"Enter", "x":13.5, "y":2, "w":2.25}, {"label":"Shift", "x":0.25, "y":3, "w":2.25}, {"label":"Z", "x":2.5, "y":3}, {"label":"X", "x":3.5, "y":3}, {"label":"C", "x":4.5, "y":3}, {"label":"V", "x":5.5, "y":3}, {"label":"B", "x":6.5, "y":3}, {"label":"N", "x":7.5, "y":3}, {"label":"M", "x":8.5, "y":3}, {"label":",", "x":9.5, "y":3}, {"label":".", "x":10.5, "y":3}, {"label":"/", "x":11.5, "y":3}, {"label":"Shift", "x":12.5, "y":3, "w":1.75}, {"label":"Fn", "x":14.25, "y":3}, {"label":"\u2191", "x":15.25, "y":3}, {"label":"Super", "x":0, "y":4, "w":1.25}, {"label":"Ctrl", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":3.37, "y":4, "w":1.25}, {"x":4.62, "y":4, "w":2.75}, {"x":7.37, "y":4, "w":2.25}, {"x":9.62, "y":4, "w":1.25}, {"label":"Alt", "x":10.87, "y":4, "w":1.25}, {"label":"Function", "x":12.12, "y":4, "w":1.25}, {"label":"\u2190", "x":14.25, "y":4}, {"label":"\u2193", "x":15.25, "y":4}, {"label":"\u2192", "x":16.25, "y":4}]
"layout": [
{"label":"Mute", "x":0.5, "y":0},
{"label":"Esc", "x":1.5, "y":0},
{"label":"1", "x":2.5, "y":0},
{"label":"2", "x":3.5, "y":0},
{"label":"3", "x":4.5, "y":0},
{"label":"4", "x":5.5, "y":0},
{"label":"5", "x":6.5, "y":0},
{"label":"6", "x":7.5, "y":0},
{"label":"7", "x":8.5, "y":0},
{"label":"8", "x":9.5, "y":0},
{"label":"9", "x":10.5, "y":0},
{"label":"0", "x":11.5, "y":0},
{"label":"_", "x":12.5, "y":0},
{"label":"+", "x":13.5, "y":0},
{"label":"\u2190", "x":14.5, "y":0},
{"label":"Del", "x":15.5, "y":0},
{"label":"Tab", "x":1, "y":1, "w":1.5},
{"label":"Q", "x":2.5, "y":1},
{"label":"W", "x":3.5, "y":1},
{"label":"E", "x":4.5, "y":1},
{"label":"R", "x":5.5, "y":1},
{"label":"T", "x":6.5, "y":1},
{"label":"Y", "x":7.5, "y":1},
{"label":"U", "x":8.5, "y":1},
{"label":"I", "x":9.5, "y":1},
{"label":"O", "x":10.5, "y":1},
{"label":"P", "x":11.5, "y":1},
{"label":"[", "x":12.5, "y":1},
{"label":"]", "x":13.5, "y":1},
{"label":"\\", "x":14.5, "y":1, "w":1.5},
{"label":"Caps Lock", "x":0.75, "y":2, "w":1.75},
{"label":"A", "x":2.5, "y":2},
{"label":"S", "x":3.5, "y":2},
{"label":"D", "x":4.5, "y":2},
{"label":"F", "x":5.5, "y":2},
{"label":"G", "x":6.5, "y":2},
{"label":"H", "x":7.5, "y":2},
{"label":"J", "x":8.5, "y":2},
{"label":"K", "x":9.5, "y":2},
{"label":"L", "x":10.5, "y":2},
{"label":";", "x":11.5, "y":2},
{"label":"'", "x":12.5, "y":2},
{"label":"Enter", "x":13.5, "y":2, "w":2.25},
{"label":"Shift", "x":0.25, "y":3, "w":2.25},
{"label":"Z", "x":2.5, "y":3},
{"label":"X", "x":3.5, "y":3},
{"label":"C", "x":4.5, "y":3},
{"label":"V", "x":5.5, "y":3},
{"label":"B", "x":6.5, "y":3},
{"label":"N", "x":7.5, "y":3},
{"label":"M", "x":8.5, "y":3},
{"label":",", "x":9.5, "y":3},
{"label":".", "x":10.5, "y":3},
{"label":"/", "x":11.5, "y":3},
{"label":"Shift", "x":12.5, "y":3, "w":1.75},
{"label":"Fn", "x":14.25, "y":3},
{"label":"\u2191", "x":15.25, "y":3},
{"label":"Super", "x":0, "y":4, "w":1.25},
{"label":"Ctrl", "x":1.25, "y":4, "w":1.25},
{"label":"Alt", "x":3.37, "y":4, "w":1.25},
{"x":4.62, "y":4, "w":2.75},
{"x":7.37, "y":4, "w":2.25},
{"x":9.62, "y":4, "w":1.25},
{"label":"Alt", "x":10.87, "y":4, "w":1.25},
{"label":"Function", "x":12.12, "y":4, "w":1.25},
{"label":"\u2190", "x":14.25, "y":4},
{"label":"\u2193", "x":15.25, "y":4},
{"label":"\u2192", "x":16.25, "y":4}
]
}
}
}
}
@@ -1,4 +1,4 @@
/* Copyright 2021 frooastside
/* Copyright 2021-2022 frooastside
*
* 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
@@ -20,7 +20,7 @@
/* USB Device descriptor parameter */
#define MANUFACTURER frooastside
#define PRODUCT Frooastboard
#define PRODUCT Frooastboard Nano
/* key matrix size */
#define MATRIX_ROWS 2
@@ -1,6 +1,6 @@
{
"keyboard_name": "Frooastboard",
"url": "https://github.com/frooastside/qmk_firmware/tree/master/keyboards/frooastboard",
"keyboard_name": "Frooastboard Nano",
"url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/frooastboard/nano",
"maintainer": "frooastside",
"debounce": 5,
"diode_direction": "COL2ROW",
@@ -1,4 +1,4 @@
/* Copyright 2021 frooastside
/* Copyright 2021-2022 frooastside
*
* 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
@@ -1,4 +1,4 @@
/* Copyright 2021 frooastside
/* Copyright 2021-2022 frooastside
*
* 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
@@ -1,4 +1,4 @@
/* Copyright 2021 frooastside
/* Copyright 2021-2022 frooastside
*
* 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
@@ -1,4 +1,4 @@
/* Copyright 2021 frooastside
/* Copyright 2021-2022 frooastside
*
* 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
@@ -1,4 +1,4 @@
/* Copyright 2021 frooastside
/* Copyright 2021-2022 frooastside
*
* 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
@@ -14,4 +14,4 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "frooastboard.h"
#include "nano.h"
@@ -1,4 +1,4 @@
/* Copyright 2021 frooastside
/* Copyright 2021-2022 frooastside
*
* 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
@@ -1,19 +1,19 @@
# Frooastboard
# Frooastboard Nano
![Frooastboard](https://i.imgur.com/f26O8JLh.jpg)
![Frooastboard Nano](https://i.imgur.com/f26O8JLh.jpg)
* Keyboard Maintainer: [Frooastside](https://github.com/frooastside)
* Hardware Supported: Frooastboard
* Hardware Supported: Frooastboard Nano
* Hardware Availability: https://github.com/Frooastside/Frooastboard
**Reset Key:** Hold down the key located at `K00`, commonly programmed as ESCAPE while plugging in the keyboard. (If via is used it is the key located at `K10`.)
Make example for this keyboard (after setting up your build environment):
make frooastboard:default
make frooastboard/nano:default
Flashing example for this keyboard:
make frooastboard:default:flash
make frooastboard/nano:default:flash
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
+83
View File
@@ -0,0 +1,83 @@
/*
Copyright 2021 Gizmo Engineering
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 0x6532
#define PRODUCT_ID 0x0001
#define DEVICE_VER 0x3031
#define MANUFACTURER Gizmo Engineering
#define PRODUCT GK6
/* key matrix size */
#define MATRIX_ROWS 5
#define MATRIX_COLS 12
/*
* Keyboard Matrix Assignments
*/
#define MATRIX_ROW_PINS { B6, B4, D7, D6, D4}
#define MATRIX_COL_PINS { B5, C6, C7, F7, F6, D5, D3, D2, F1, F4, B7, F5 }
#define UNUSED_PINS
/* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION ROW2COL
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 5
// Use ~ key for the bootloader
#define BOOTMAGIC_LITE_ROW 0
#define BOOTMAGIC_LITE_COLUMN 0
// RGB Matrix
#define DRIVER_ADDR_1 0b1110100
#define DRIVER_ADDR_2 0b1110111
#define DRIVER_COUNT 2
#define DRIVER_1_LED_TOTAL 32
#define DRIVER_2_LED_TOTAL 32
#define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
#define RGB_MATRIX_KEYPRESSES
#define RGB_DISABLE_WHEN_USB_SUSPENDED
#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
#define RGB_MATRIX_KEYPRESSES
#define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_LEFT_RIGHT
#define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS
#define RGB_MATRIX_STARTUP_SPD 127
// RGB Matrix Animation modes. Explicitly enabled
// For full list of effects, see:
// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects
#define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN
#define ENABLE_RGB_MATRIX_BREATHING
#define ENABLE_RGB_MATRIX_BAND_VAL
#define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
#define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
#define ENABLE_RGB_MATRIX_HUE_BREATHING
#define ENABLE_RGB_MATRIX_TYPING_HEATMAP
#define RGB_MATRIX_TYPING_HEATMAP_DECREASE_DELAY_MS 25
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
+183
View File
@@ -0,0 +1,183 @@
/* Copyright 2021 Gizmo Engineering
*
* 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 "gk6.h"
#ifdef RGB_MATRIX_ENABLE
const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = {
{0, C1_8, C2_8, C3_8}, //0 led1
{0, C1_7, C2_7, C3_7}, //1 led2
{0, C1_6, C2_6, C3_6}, //2 led3
{0, C1_5, C2_5, C3_5}, //3 led4
{0, C1_4, C2_4, C3_4}, //4 led5
{0, C1_3, C2_3, C3_3}, //5 led6
{0, C1_2, C2_2, C4_3}, //6 led7
{0, C1_1, C3_2, C4_2}, //7 led7b
{0, C9_1, C8_1, C7_1}, //8 led8
{0, C9_2, C8_2, C7_2}, //9 led9
{0, C9_3, C8_3, C7_3}, //10 led10
{0, C9_4, C8_4, C7_4}, //11 led11
{0, C9_5, C8_5, C7_5}, //12 led12
{0, C9_6, C8_6, C7_6}, //13 led13
{0, C9_7, C8_7, C6_6}, //14 led14
{0, C9_8, C7_7, C6_7}, //15 led15
{0, C1_16, C2_16, C3_16}, //16 led16
{0, C1_15, C2_15, C3_15}, //17 led17
{0, C1_14, C2_14, C3_14}, //18 led18
{0, C1_13, C2_13, C3_13}, //19 led19
{0, C1_12, C2_12, C3_12}, //20 led20
{0, C1_11, C2_11, C3_11}, //21 led21
{0, C1_10, C2_10, C4_11}, //22 led22
{0, C9_9, C8_9, C7_9}, //23 led23
{0, C9_10, C8_10, C7_10}, //24 led24 missing on [default]
{0, C9_11, C8_11, C7_11}, //25 led25 missing on [1x2u, 12x5]
{0, C9_12, C8_12, C7_12}, //26 led26
{0, C9_13, C8_13, C7_13}, //27 led27
{0, C9_14, C8_14, C7_14}, //28 led28
{0, C9_15, C8_15, C6_14}, //29 led29
{0, C9_16, C7_15, C6_15}, //30 led30 missing on [default, 1x2u]
{1, C1_8, C2_8, C3_8}, //31 led31
{1, C1_7, C2_7, C3_7}, //32 led32
{1, C1_6, C2_6, C3_6}, //33 led33
{1, C1_5, C2_5, C3_5}, //34 led34
{1, C1_4, C2_4, C3_4}, //35 led35 missing on [default, 1x2u]
{1, C1_3, C2_3, C3_3}, //36 led36 missing on [default, 12x5]
{1, C1_2, C2_2, C4_3}, //37 led37
{1, C1_1, C3_2, C4_2}, //38 led37b
{1, C9_1, C8_1, C7_1}, //39 led38
{1, C9_2, C8_2, C7_2}, //40 led39
{1, C9_3, C8_3, C7_3}, //41 led40 missing on [default]
{1, C9_4, C8_4, C7_4}, //42 led41 missing on [1x2u, 12x5]
{1, C9_5, C8_5, C7_5}, //43 led42
{1, C9_6, C8_6, C7_6}, //44 led43
{1, C9_7, C8_7, C6_6}, //45 led44
{1, C9_8, C7_7, C6_7}, //46 led45
{1, C1_16, C2_16, C3_16}, //47 led46
{1, C1_15, C2_15, C3_15}, //48 led47
{1, C1_14, C2_14, C3_14}, //49 led48
{1, C1_13, C2_13, C3_13}, //50 led49
{1, C1_12, C2_12, C3_12}, //51 led50
{1, C1_11, C2_11, C3_11}, //52 led51
{1, C1_10, C2_10, C4_11}, //53 led52
{1, C1_9, C3_10, C4_10}, //54 led52b
{1, C9_9, C8_9, C7_9}, //55 led53
{1, C9_10, C8_10, C7_10}, //56 led54
{1, C9_11, C8_11, C7_11}, //57 led55
{1, C9_12, C8_12, C7_12}, //58 led56
{1, C9_13, C8_13, C7_13}, //59 led57
{1, C9_14, C8_14, C7_14}, //60 led58
{1, C9_15, C8_15, C6_14}, //61 led59
{1, C9_16, C7_15, C6_15}, //62 led60
};
led_config_t g_led_config = { {
// Key Matrix to LED Index
// 1, 6, 10, 15, 20, 26, 31, 37, 42, 47, 52, 56
{0, 5, 10, 15, 20, 26, 31, 37, 43, 48, 53, 58},
// 2, 7, 11, 16, 21, 27, 32, 37b, 43, 48, 52b, 57
{1, 6, 11, 16, 21, 27, 32, 38, 44, 49, 54, 59},
// 3, 7b, 12, 17, 22, 28, 33, 38, 44, 49, 53, 58
{2, 7, 12, 17, 22, 28, 33, 39, 45, 50, 55, 60},
// 4, 8, 13, 18, 23, 29, 34, 39, 45, 50, 54, 59
{3, 8, 13, 18, 23, 29, 34, 40, 46, 51, 56, 61},
// 5, 9, 14, 19, 25, NO_LED, NO_LED, 41, 46, 51, 55, 60
{4, 9, 14, 19, 25, NO_LED, NO_LED, 42, 47, 52, 57, 62},
}, {
// LED Index to Physical Position
{0, 0}, // 0
{0, 16}, // 1
{0, 32}, // 2
{0, 48}, // 3
{0, 64}, // 4
{21, 0}, // 5
{21, 16}, // 6
{21, 32}, // 7
{21, 48}, // 8
{21, 64}, // 9
{41, 0}, // 10
{41, 16}, // 11
{41, 32}, // 12
{41, 48}, // 13
{41, 64}, // 14
{61, 0}, // 15
{61, 16}, // 16
{61, 32}, // 17
{61, 48}, // 18
{61, 64}, // 19
{82, 0}, // 20
{82, 16}, // 21
{82, 32}, // 22
{82, 48}, // 23
{82, 64}, // 24
{92, 64}, // 25
{102, 0}, // 26
{102, 16}, // 27
{102, 32}, // 28
{102, 48}, // 29
{102, 64}, // 30
{122, 0}, // 31
{122, 16}, // 32
{122, 32}, // 33
{122, 48}, // 34
{122, 64}, // 35
{112, 64}, // 36
{142, 0}, // 37
{142, 16}, // 38
{142, 32}, // 39
{142, 48}, // 40
{142, 64}, // 41
{132, 64}, // 42
{163, 0}, // 43
{163, 16}, // 44
{163, 32}, // 45
{163, 48}, // 46
{163, 64}, // 47
{183, 0}, // 48
{183, 16}, // 49
{183, 32}, // 50
{183, 48}, // 51
{183, 64}, // 52
{203, 0}, // 53
{203, 16}, // 54
{203, 32}, // 55
{203, 48}, // 56
{203, 64}, // 57
{224, 0}, // 58
{224, 16}, // 59
{224, 32}, // 60
{224, 48}, // 61
{224, 64}, // 62
}, {
// LED Index to Flag
0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,
0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,
0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,
0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,
0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,
0x04, 0x04, 0x04
} };
#endif
+64
View File
@@ -0,0 +1,64 @@
/* Copyright 2021 Gizmo Engineering
*
* 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_gk6_2x2u( \
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, \
k40, k41, k42, k43, k44, k47, k48, k49, k4a, k4b \
) \
{ \
{ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \
{ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \
{ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \
{ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b }, \
{ k40, k41, k42, k43, k44, KC_NO, KC_NO, k47, k48, k49, k4a, k4b }, \
}
#define LAYOUT_gk6_1x2u( \
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, \
k40, k41, k42, k43, k44, k46, k47, k48, k49, k4a, k4b \
) \
{ \
{ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \
{ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \
{ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \
{ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b }, \
{ k40, k41, k42, k43, k44, KC_NO, k46, k47, k48, k49, k4a, k4b }, \
}
#define LAYOUT_ortho_5x12( \
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, \
k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b \
) \
{ \
{ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \
{ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \
{ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \
{ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b }, \
{ k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b }, \
}
+209
View File
@@ -0,0 +1,209 @@
{
"keyboard_name": "Gizmo Engineering GK6",
"keyboard_folder": "gk6",
"url": "https://gizmo.engineering/",
"maintainer": "federicoweber",
"layouts": {
"LAYOUT_gk6_2x2u": {
"layout": [
{"x": 0, "y": 0},
{"x": 1, "y": 0},
{"x": 2, "y": 0},
{"x": 3, "y": 0},
{"x": 4, "y": 0},
{"x": 5, "y": 0},
{"x": 6, "y": 0},
{"x": 7, "y": 0},
{"x": 8, "y": 0},
{"x": 9, "y": 0},
{"x": 10, "y": 0},
{"x": 11, "y": 0},
{"x": 0, "y": 1},
{"x": 1, "y": 1},
{"x": 2, "y": 1},
{"x": 3, "y": 1},
{"x": 4, "y": 1},
{"x": 5, "y": 1},
{"x": 6, "y": 1},
{"x": 7, "y": 1},
{"x": 8, "y": 1},
{"x": 9, "y": 1},
{"x": 10, "y": 1},
{"x": 11, "y": 1},
{"x": 0, "y": 2},
{"x": 1, "y": 2},
{"x": 2, "y": 2},
{"x": 3, "y": 2},
{"x": 4, "y": 2},
{"x": 5, "y": 2},
{"x": 6, "y": 2},
{"x": 7, "y": 2},
{"x": 8, "y": 2},
{"x": 9, "y": 2},
{"x": 10, "y": 2},
{"x": 11, "y": 2},
{"x": 0, "y": 3},
{"x": 1, "y": 3},
{"x": 2, "y": 3},
{"x": 3, "y": 3},
{"x": 4, "y": 3},
{"x": 5, "y": 3},
{"x": 6, "y": 3},
{"x": 7, "y": 3},
{"x": 8, "y": 3},
{"x": 9, "y": 3},
{"x": 10, "y": 3},
{"x": 11, "y": 3},
{"x": 0, "y": 4},
{"x": 1, "y": 4},
{"x": 2, "y": 4},
{"x": 3, "y": 4},
{"x": 4, "y": 4, "w": 2},
{"x": 6, "y": 4, "w": 2},
{"x": 8, "y": 4},
{"x": 9, "y": 4},
{"x": 10, "y": 4},
{"x": 11, "y": 4}
]
},
"LAYOUT_ortho_5x12": {
"layout": [
{"x": 0, "y": 0},
{"x": 1, "y": 0},
{"x": 2, "y": 0},
{"x": 3, "y": 0},
{"x": 4, "y": 0},
{"x": 5, "y": 0},
{"x": 6, "y": 0},
{"x": 7, "y": 0},
{"x": 8, "y": 0},
{"x": 9, "y": 0},
{"x": 10, "y": 0},
{"x": 11, "y": 0},
{"x": 0, "y": 1},
{"x": 1, "y": 1},
{"x": 2, "y": 1},
{"x": 3, "y": 1},
{"x": 4, "y": 1},
{"x": 5, "y": 1},
{"x": 6, "y": 1},
{"x": 7, "y": 1},
{"x": 8, "y": 1},
{"x": 9, "y": 1},
{"x": 10, "y": 1},
{"x": 11, "y": 1},
{"x": 0, "y": 2},
{"x": 1, "y": 2},
{"x": 2, "y": 2},
{"x": 3, "y": 2},
{"x": 4, "y": 2},
{"x": 5, "y": 2},
{"x": 6, "y": 2},
{"x": 7, "y": 2},
{"x": 8, "y": 2},
{"x": 9, "y": 2},
{"x": 10, "y": 2},
{"x": 11, "y": 2},
{"x": 0, "y": 3},
{"x": 1, "y": 3},
{"x": 2, "y": 3},
{"x": 3, "y": 3},
{"x": 4, "y": 3},
{"x": 5, "y": 3},
{"x": 6, "y": 3},
{"x": 7, "y": 3},
{"x": 8, "y": 3},
{"x": 9, "y": 3},
{"x": 10, "y": 3},
{"x": 11, "y": 3},
{"x": 0, "y": 4},
{"x": 1, "y": 4},
{"x": 2, "y": 4},
{"x": 3, "y": 4},
{"x": 4, "y": 4},
{"x": 5, "y": 4},
{"x": 6, "y": 4},
{"x": 7, "y": 4},
{"x": 8, "y": 4},
{"x": 9, "y": 4},
{"x": 10, "y": 4},
{"x": 11, "y": 4}
]
},
"LAYOUT_gk6_1x2u": {
"layout": [
{"x": 0, "y": 0},
{"x": 1, "y": 0},
{"x": 2, "y": 0},
{"x": 3, "y": 0},
{"x": 4, "y": 0},
{"x": 5, "y": 0},
{"x": 6, "y": 0},
{"x": 7, "y": 0},
{"x": 8, "y": 0},
{"x": 9, "y": 0},
{"x": 10, "y": 0},
{"x": 11, "y": 0},
{"x": 0, "y": 1},
{"x": 1, "y": 1},
{"x": 2, "y": 1},
{"x": 3, "y": 1},
{"x": 4, "y": 1},
{"x": 5, "y": 1},
{"x": 6, "y": 1},
{"x": 7, "y": 1},
{"x": 8, "y": 1},
{"x": 9, "y": 1},
{"x": 10, "y": 1},
{"x": 11, "y": 1},
{"x": 0, "y": 2},
{"x": 1, "y": 2},
{"x": 2, "y": 2},
{"x": 3, "y": 2},
{"x": 4, "y": 2},
{"x": 5, "y": 2},
{"x": 6, "y": 2},
{"x": 7, "y": 2},
{"x": 8, "y": 2},
{"x": 9, "y": 2},
{"x": 10, "y": 2},
{"x": 11, "y": 2},
{"x": 0, "y": 3},
{"x": 1, "y": 3},
{"x": 2, "y": 3},
{"x": 3, "y": 3},
{"x": 4, "y": 3},
{"x": 5, "y": 3},
{"x": 6, "y": 3},
{"x": 7, "y": 3},
{"x": 8, "y": 3},
{"x": 9, "y": 3},
{"x": 10, "y": 3},
{"x": 11, "y": 3},
{"x": 0, "y": 4},
{"x": 1, "y": 4},
{"x": 2, "y": 4},
{"x": 3, "y": 4},
{"x": 4, "y": 4},
{"x": 5, "y": 4, "w": 2},
{"x": 7, "y": 4},
{"x": 8, "y": 4},
{"x": 9, "y": 4},
{"x": 10, "y": 4},
{"x": 11, "y": 4}
]
}
}
}
+118
View File
@@ -0,0 +1,118 @@
/* Copyright 2021 Gizmo Engineering
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
enum layers {
_QWERTY,
_LOWER,
_RAISE,
};
#define LOWER MO(_LOWER)
#define RAISE MO(_RAISE)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Qwerty
* ,-----------------------------------------------------------------------------------.
* | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | / |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | Tab | Q | W | E | R | T | Y | U | I | O | P | Del |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | CTRL | A | S | D | F | G | H | J | K | L | ; | ' |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | Shift| Z | X | C | V | B | N | M | , | . | Up |Enter |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | Esc | GUI | Alt |Lower | Back|Space |Space | Alt |Raise | Left | Down |Right |
* `-----------------------------------------------------------------------------------'
*/
[_QWERTY] = LAYOUT_ortho_5x12(
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_SLSH,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL,
KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_ENT,
KC_LCTL, KC_LGUI, KC_LALT, LOWER, KC_BSPC, KC_SPC, KC_SPC, KC_RALT, RAISE, KC_LEFT, KC_DOWN, KC_RGHT
),
/* Raise
* ,-----------------------------------------------------------------------------------.
* | | | | | | | | | | | | |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | | | | | | | | _ | + | { | } | |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | | | | | | | | - | = | [ | ] | |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | |RGB_TG|RGB_M |RGB_HU|RGB_SI|RGB_VI|RGB_SP| | | | | | \ |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* |Debug | | | | | | | | | | | |
* `-----------------------------------------------------------------------------------'
*/
[_RAISE] = LAYOUT_ortho_5x12(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, _______,
_______, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, _______,
_______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, _______, _______, _______, KC_PIPE, KC_BSLS,
DEBUG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
),
/* Lower
* ,-----------------------------------------------------------------------------------.
* | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | CAPS | PSCR | | | | | | | | | | |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | | Home | End | Ins | Play | | | | | | | |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | | << | >> | Mute | Vol- | Vol+ | | | | | PgUp | |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | | | | | | | | | | PgDn | |
* `-----------------------------------------------------------------------------------'
*/
[_LOWER] = LAYOUT_ortho_5x12(
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_CAPS, KC_PSCR, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, KC_HOME, KC_END, KC_INS, KC_MPLY, _______, _______, _______, _______, _______, _______, _______,
_______, KC_MPRV, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, KC_PGUP, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGDN, _______
),
};
#ifdef RGB_MATRIX_ENABLE
void rgb_matrix_indicators_user(void)
{
rgb_matrix_set_color(25, 0, 0, 0);
rgb_matrix_set_color(36, 0, 0, 0);
rgb_matrix_set_color(42, 0, 0, 0);
}
void keyboard_pre_init_user(void) {
// 5, 9, 14, 19, 24, 30, 35, 40, 46, 51, 55, 60
g_led_config.matrix_co[4][0] = 5;
g_led_config.matrix_co[4][1] = 9;
g_led_config.matrix_co[4][2] = 14;
g_led_config.matrix_co[4][3] = 19;
g_led_config.matrix_co[4][4] = 24;
g_led_config.matrix_co[4][5] = 30;
g_led_config.matrix_co[4][6] = 35;
g_led_config.matrix_co[4][7] = 41;
g_led_config.matrix_co[4][8] = 47;
g_led_config.matrix_co[4][9] = 52;
g_led_config.matrix_co[4][10] = 57;
g_led_config.matrix_co[4][11] = 62;
}
#endif
+119
View File
@@ -0,0 +1,119 @@
/* Copyright 2021 Gizmo Engineering
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
enum layers {
_QWERTY,
_LOWER,
_RAISE,
};
#define LOWER MO(_LOWER)
#define RAISE MO(_RAISE)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Qwerty
* ,-----------------------------------------------------------------------------------.
* | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | / |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | Tab | Q | W | E | R | T | Y | U | I | O | P | Del |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | CTRL | A | S | D | F | G | H | J | K | L | ; | ' |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | Shift| Z | X | C | V | B | N | M | , | . | Up |Enter |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | Esc | GUI | Alt |Lower | Back| Space | Alt |Raise | Left | Down |Right |
* `-----------------------------------------------------------------------------------'
*/
[_QWERTY] = LAYOUT_gk6_1x2u(
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_SLSH,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL,
KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_ENT,
KC_LCTL, KC_LGUI, KC_LALT, LOWER, KC_BSPC, KC_SPC, KC_RALT, RAISE, KC_LEFT, KC_DOWN, KC_RGHT
),
/* Raise
* ,-----------------------------------------------------------------------------------.
* | | | | | | | | | | | | |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | | | | | | | | _ | + | { | } | |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | | | | | | | | - | = | [ | ] | |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | |RGB_TG|RGB_M |RGB_HU|RGB_SI|RGB_VI|RGB_SP| | | | | | \ |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* |Debug | | | | | | | | | | |
* `-----------------------------------------------------------------------------------'
*/
[_RAISE] = LAYOUT_gk6_1x2u(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, _______,
_______, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, _______,
_______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, _______, _______, _______, KC_PIPE, KC_BSLS,
DEBUG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
),
/* Lower
* ,-----------------------------------------------------------------------------------.
* | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | CAPS | PSCR | | | | | | | | | | |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | | Home | End | Ins | Play | | | | | | | |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | | << | >> | Mute | Vol- | Vol+ | | | | | PgUp | |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | | | | | | | | | PgDn | |
* `-----------------------------------------------------------------------------------'
*/
[_LOWER] = LAYOUT_gk6_1x2u(
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_CAPS, KC_PSCR, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, KC_HOME, KC_END, KC_INS, KC_MPLY, _______, _______, _______, _______, _______, _______, _______,
_______, KC_MPRV, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, KC_PGUP, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGDN, _______
),
};
#ifdef RGB_MATRIX_ENABLE
void rgb_matrix_indicators_user(void)
{
rgb_matrix_set_color(25, 0, 0, 0);
rgb_matrix_set_color(30, 0, 0, 0);
rgb_matrix_set_color(35, 0, 0, 0);
rgb_matrix_set_color(42, 0, 0, 0);
}
void keyboard_pre_init_user(void) {
// 5, 9, 14, 19, 24, 30, 36, 40, 46, 51, 55, 60
g_led_config.matrix_co[4][0] = 5;
g_led_config.matrix_co[4][1] = 9;
g_led_config.matrix_co[4][2] = 14;
g_led_config.matrix_co[4][3] = 19;
g_led_config.matrix_co[4][4] = 24;
g_led_config.matrix_co[4][5] = 30;
g_led_config.matrix_co[4][6] = 36;
g_led_config.matrix_co[4][7] = 41;
g_led_config.matrix_co[4][8] = 47;
g_led_config.matrix_co[4][9] = 52;
g_led_config.matrix_co[4][10] = 57;
g_led_config.matrix_co[4][11] = 62;
}
#endif
+104
View File
@@ -0,0 +1,104 @@
/* Copyright 2021 Gizmo Engineering
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
enum layers {
_QWERTY,
_LOWER,
_RAISE,
};
#define LOWER MO(_LOWER)
#define RAISE MO(_RAISE)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Qwerty
* ,-----------------------------------------------------------------------------------.
* | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | / |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | Tab | Q | W | E | R | T | Y | U | I | O | P | Del |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | CTRL | A | S | D | F | G | H | J | K | L | ; | ' |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | Shift| Z | X | C | V | B | N | M | , | . | Up |Enter |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | Esc | GUI | Alt |Lower | Backspace | Space |Raise | Left | Down |Right |
* `-----------------------------------------------------------------------------------'
*/
[_QWERTY] = LAYOUT_gk6_2x2u(
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_SLSH,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL,
KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_ENT,
KC_LCTL, KC_LGUI, KC_LALT, LOWER, KC_BSPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_RGHT
),
/* Raise
* ,-----------------------------------------------------------------------------------.
* | | | | | | | | | | | | |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | | | | | | | | _ | + | { | } | |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | | | | | | | | - | = | [ | ] | |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | |RGB_TG|RGB_M |RGB_HU|RGB_SI|RGB_VI|RGB_SP| | | | | | \ |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* |Debug | | | | | | | | |R Alt |
* `-----------------------------------------------------------------------------------'
*/
[_RAISE] = LAYOUT_gk6_2x2u(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, _______,
_______, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, _______,
_______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, _______, _______, _______, KC_PIPE, KC_BSLS,
DEBUG, _______, _______, _______, _______, _______, _______, _______, _______, KC_RALT
),
/* Lower
* ,-----------------------------------------------------------------------------------.
* | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | CAPS | PSCR | | | | | | | | | | |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | | Home | End | Ins | Play | | | | | | | |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | | << | >> | Mute | Vol- | Vol+ | | | | | PgUp | |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | | | | | | | | PgDn | |
* `-----------------------------------------------------------------------------------'
*/
[_LOWER] = LAYOUT_gk6_2x2u(
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_CAPS, KC_PSCR, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, KC_HOME, KC_END, KC_INS, KC_MPLY, _______, _______, _______, _______, _______, _______, _______,
_______, KC_MPRV, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, KC_PGUP, _______,
_______, _______, _______, _______, _______, _______, _______, _______, KC_PGDN, _______
),
};
#ifdef RGB_MATRIX_ENABLE
void rgb_matrix_indicators_user(void)
{
rgb_matrix_set_color(24, 0, 0, 0);
rgb_matrix_set_color(30, 0, 0, 0);
rgb_matrix_set_color(35, 0, 0, 0);
rgb_matrix_set_color(36, 0, 0, 0);
rgb_matrix_set_color(41, 0, 0, 0);
}
#endif
+93
View File
@@ -0,0 +1,93 @@
/* Copyright 2021 Gizmo Engineering
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
enum layers {
_QWERTY,
_LOWER,
_RAISE,
};
#define LOWER MO(_LOWER)
#define RAISE MO(_RAISE)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Qwerty
* ,-----------------------------------------------------------------------------------.
* | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | / |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | Tab | Q | W | E | R | T | Y | U | I | O | P | Del |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | CTRL | A | S | D | F | G | H | J | K | L | ; | ' |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | Shift| Z | X | C | V | B | N | M | , | . | Up |Enter |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | Esc | GUI | Alt |Lower | Back | Back |Space |Space |Raise | Left | Down |Right |
* `-----------------------------------------------------------------------------------'
*/
[_QWERTY] = LAYOUT_ortho_5x12(
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_SLSH,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL,
KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_ENT,
KC_LCTL, KC_LGUI, KC_LALT, LOWER, KC_BSPC, KC_BSPC, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_RGHT
),
/* Raise
* ,-----------------------------------------------------------------------------------.
* | | | | | | | | | | | | |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | | | | | | | | _ | + | { | } | |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | | | | | | | | - | = | [ | ] | |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | |RGB_TG|RGB_M |RGB_HU|RGB_SI|RGB_VI|RGB_SP| | | | | | \ |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | | | | | | | | | | |R Alt |
* `-----------------------------------------------------------------------------------'
*/
[_RAISE] = LAYOUT_ortho_5x12(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, _______,
_______, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, _______,
_______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, _______, _______, _______, KC_PIPE, KC_BSLS,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_RALT
),
/* Lower
* ,-----------------------------------------------------------------------------------.
* | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | CAPS | PSCR | | | | | | | | | | |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | | Home | End | Ins | Play | | | | | | | |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | | << | >> | Mute | Vol- | Vol+ | | | | | PgUp | |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | | | | | | | | | | PgDn | |
* `-----------------------------------------------------------------------------------'
*/
[_LOWER] = LAYOUT_ortho_5x12(
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_CAPS, KC_PSCR, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, KC_HOME, KC_END, KC_INS, KC_MPLY, _______, _______, _______, _______, _______, _______, _______,
_______, KC_MPRV, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, KC_PGUP, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGDN, _______
),
};
+1
View File
@@ -0,0 +1 @@
VIA_ENABLE = yes
+13
View File
@@ -0,0 +1,13 @@
# Gizmo Engineering GK6
![GK6](https://i.imgur.com/M9xxMznh.jpg)
* Keyboard Maintainer: [federicoweber](https://github.com/federicoweber)
* Hardware Supported: atmega32a, Gizmo Engineering GK6
* Hardware Availability: [Gizmo Engineering](https://gizmo.engineering/)
Make example for this keyboard (after setting up your build environment):
make gizmo_engineering/gk6:default
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).
+21
View File
@@ -0,0 +1,21 @@
# MCU name
MCU = atmega32u4
# Bootloader selection
BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
MOUSEKEY_ENABLE = no # Mouse keys
EXTRAKEY_ENABLE = yes # Audio control and System control
CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = no # Enable N-Key Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
AUDIO_ENABLE = no # Audio output
RGB_MATRIX_ENABLE = yes
RGB_MATRIX_DRIVER = IS31FL3731
+1 -1
View File
@@ -44,8 +44,8 @@
{"label":"6,2", "x":10.5, "y":2},
{"label":"6,3", "x":12, "y":2},
{"label":"6,4", "x":13, "y":2},
{"label":"6,6", "x":15.5, "y":2},
{"label":"6,5", "x":14.25, "y":2.25},
{"label":"6,6", "x":15.5, "y":2},
{"label":"3,0", "x":0, "y":3, "w":1.25},
{"label":"3,1", "x":1.25, "y":3, "w":1.25},
{"label":"3,2", "x":3.05, "y":3},
+1 -1
View File
@@ -34,7 +34,6 @@
{"label":"6,3", "x":10.5, "y":1},
{"label":"6,4", "x":11.5, "y":1},
{"label":"6,5", "x":12.5, "y":1},
{"label":"7,6", "x":13.75, "y":1, "w":1.25, "h":2},
{"label":"6,7", "x":15, "y":1},
{"label":"2,0", "x":0, "y":2, "w":1.75},
{"label":"2,1", "x":1.75, "y":2},
@@ -49,6 +48,7 @@
{"label":"7,3", "x":10.75, "y":2},
{"label":"7,4", "x":11.75, "y":2},
{"label":"7,5", "x":12.75, "y":2},
{"label":"7,6", "x":13.75, "y":1, "w":1.25, "h":2},
{"label":"7,7", "x":15, "y":2},
{"label":"3,0", "x":0, "y":3, "w":2.25},
{"label":"3,1", "x":2.25, "y":3},
+55 -52
View File
@@ -5,58 +5,61 @@
"layouts": {
"LAYOUT": {
"layout": [
{"label":"0,0", "x":0, "y":0},
{"label":"0,1", "x":1.25, "y":0},
{"label":"4,0", "x":8.25, "y":0},
{"label":"4,1", "x":9.25, "y":0},
{"label":"4,2", "x":10.25, "y":0},
{"label":"4,3", "x":11.25, "y":0},
{"label":"4,4", "x":12.25, "y":0},
{"label":"4,5", "x":13.25, "y":0},
{"label":"4,6", "x":14.25, "y":0},
{"label":"1,1", "x":0.25, "y":1, "w":1.75},
{"label":"1,2", "x":2, "y":1},
{"label":"5,0", "x":8.5, "y":1},
{"label":"5,1", "x":9.5, "y":1},
{"label":"5,2", "x":10.5, "y":1},
{"label":"5,3", "x":11.5, "y":1},
{"label":"5,4", "x":12.5, "y":1},
{"label":"5,5", "x":13.5, "y":1},
{"label":"5,6", "x":14.5, "y":1},
{"label":"2,1", "x":0, "y":2, "w":1.75},
{"label":"2,2", "x":1.75, "y":2},
{"label":"2,0", "x":7.25, "y":2},
{"label":"6,0", "x":8.75, "y":2},
{"label":"6,1", "x":9.75, "y":2},
{"label":"6,2", "x":10.75, "y":2},
{"label":"6,3", "x":11.75, "y":2},
{"label":"6,4", "x":12.75, "y":2},
{"label":"6,5", "x":13.75, "y":2},
{"label":"6,6", "x":14.75, "y":2},
{"label":"3,1", "x":0.25, "y":3, "w":1.25},
{"label":"3,2", "x":1.5, "y":3, "w":1.25},
{"label":"7,0", "x":8.5, "y":3},
{"label":"7,1", "x":9.5, "y":3, "w":1.25},
{"label":"7,2", "x":10.75, "y":3},
{"label":"7,4", "x":12.75, "y":3},
{"label":"7,5", "x":13.75, "y":3},
{"label":"7,6", "x":14.75, "y":3},
{"label":"0,2", "x":-0.75, "y":4},
{"label":"0,3", "x":0.25, "y":4},
{"label":"0,4", "x":1.25, "y":4},
{"label":"0,5", "x":2.25, "y":4},
{"label":"0,6", "x":3.25, "y":4},
{"label":"1,3", "x":0, "y":5},
{"label":"1,4", "x":1, "y":5},
{"label":"1,5", "x":2, "y":5},
{"label":"1,6", "x":3, "y":5},
{"label":"2,3", "x":-0.25, "y":6},
{"label":"2,4", "x":0.75, "y":6},
{"label":"2,5", "x":1.75, "y":6},
{"label":"2,6", "x":2.75, "y":6},
{"label":"3,4", "x":0.75, "y":7},
{"label":"3,5", "x":1.75, "y":7, "w":1.25},
{"label":"3,6", "x":3, "y":7}
{"label":"L00", "x":0.25, "y":0},
{"label":"L01", "x":1.25, "y":0},
{"label":"L02", "x":2.25, "y":0},
{"label":"L03", "x":3.25, "y":0},
{"label":"L04", "x":4.25, "y":0},
{"label":"L05", "x":5.25, "y":0},
{"label":"L06", "x":6.25, "y":0},
{"label":"R00", "x":9.25, "y":0},
{"label":"R01", "x":10.25, "y":0},
{"label":"R02", "x":11.25, "y":0},
{"label":"R03", "x":12.25, "y":0},
{"label":"R04", "x":13.25, "y":0},
{"label":"R05", "x":14.25, "y":0},
{"label":"R06", "x":15.25, "y":0},
{"label":"L11", "x":0.25, "y":1, "w":1.75},
{"label":"L12", "x":2, "y":1},
{"label":"L13", "x":3.25, "y":1},
{"label":"L14", "x":4.25, "y":1},
{"label":"L15", "x":5.25, "y":1},
{"label":"L16", "x":6.25, "y":1},
{"label":"R10", "x":9.25, "y":1},
{"label":"R11", "x":10.25, "y":1},
{"label":"R12", "x":11.25, "y":1},
{"label":"R13", "x":12.25, "y":1},
{"label":"R14", "x":13.5, "y":1},
{"label":"R15", "x":14.5, "y":1},
{"label":"R16", "x":15.5, "y":1},
{"label":"L21", "x":0, "y":2, "w":1.75},
{"label":"L22", "x":1.75, "y":2},
{"label":"L23", "x":3.25, "y":2},
{"label":"L24", "x":4.25, "y":2},
{"label":"L25", "x":5.25, "y":2},
{"label":"L26", "x":6.25, "y":2},
{"label":"L20", "x":7.75, "y":2},
{"label":"R20", "x":9.25, "y":2},
{"label":"R21", "x":10.25, "y":2},
{"label":"R22", "x":11.25, "y":2},
{"label":"R23", "x":12.25, "y":2},
{"label":"R24", "x":13.75, "y":2},
{"label":"R25", "x":14.75, "y":2},
{"label":"R26", "x":15.75, "y":2},
{"label":"L31", "x":0.25, "y":3, "w":1.25},
{"label":"L32", "x":1.5, "y":3, "w":1.25},
{"label":"L34", "x":4.125, "y":3, "w":1.25},
{"label":"L35", "x":5.375, "y":3, "w":1.25},
{"label":"L36", "x":6.625, "y":3},
{"label":"R30", "x":8.875, "y":3},
{"label":"R31", "x":9.875, "y":3, "w":1.25},
{"label":"R32", "x":11.125, "y":3, "w":1.25},
{"label":"R34", "x":13.75, "y":3},
{"label":"R35", "x":14.75, "y":3},
{"label":"R36", "x":15.75, "y":3}
]
}
}
-1
View File
@@ -15,4 +15,3 @@
*/
#include "aball.h"
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { };
+1 -9
View File
@@ -18,12 +18,4 @@
#include "quantum.h"
/* This is a shortcut to help you visually see your layout.
*
* The first section contains all of the arguments representing the physical
* layout of the board and position of the keys.
*
* The second converts the arguments into a two-dimensional array which
* represents the switch matrix.
*/
#define LAYOUT(k00) {{ KC_NO }}
#define LAYOUT(k00) {{ k00 }}
@@ -15,4 +15,5 @@
*/
#include QMK_KEYBOARD_H
// Dummy
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {{{ KC_NO }}};
@@ -0,0 +1,11 @@
// Copyright 2022 Ulrich Spörlein (@uqs)
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#define USE_SERIAL
#define RGBLED_NUM 12
#define RGBLED_SPLIT {6,6}
#define RGBLIGHT_LIMIT_VAL 127
#define EE_HANDS
@@ -0,0 +1,170 @@
// Copyright 2022 Ulrich Spörlein (@uqs)
// SPDX-License-Identifier: GPL-2.0-or-later
// vi:et sw=4 cc=5,15,25,35,45,55,65:
#include "uqs.h"
/*
* My custom layout macro that allows for easy diff(1) operations between
* various keyboards. It probably doesn't make sense to you.
*/
#define LAYOUT_uqs( \
L00, L01, L02, L03, L04, L05, \
L10, L11, L12, L13, L14, L15, \
L20, L21, L22, L23, L24, L25, \
L30, L31, L32, L33, L34, L35, \
L42, L43, \
L44, L45, L54, \
L55, L52, L53, \
R00, R01, R02, R03, R04, R05, \
R10, R11, R12, R13, R14, R15, \
R20, R21, R22, R23, R24, R25, \
R30, R31, R32, R33, R34, R35, \
R42, R43, \
R51, R40, R41, \
R50, R52, R53 \
) \
LAYOUT_5x6( \
L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \
L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \
L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, \
L30, L31, L32, L33, L34, L35, R30, R31, R32, R33, R34, R35, \
L42, L43, R42, R43, \
L44, L45, R40, R41, \
L54, L55, R50, R51, \
L52, L53, R52, R53 \
)
// clang-format off
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[L_QWER] = LAYOUT_uqs(
KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T,
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B,
KC_LBRC, KC_RBRC,
/*thumb*/ LT_EXTD_ESC, KC_SPC, LT_MOUSE_ALT_SHIFT_INS,
/*aux*/ KC_LEAD, OSM_GUI, KC_LALT,
KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS,
KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, RSFT_T(KC_GRV),
KC_MINS, KC_EQL,
/*thumb*/ LT_FUNC_SHIFT_INS, KC_ENT, LT_NUM_BSPC,
/*aux*/ KC_RALT, KC_APP, KC_LEAD
),
[L_WASD] = LAYOUT_uqs(
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5,
KC_T, KC_TAB, KC_Q, KC_W, KC_E, KC_R,
KC_G, KC_LSFT, KC_A, KC_S, KC_D, KC_F,
KC_B, KC_GRV, KC_Z, KC_X, KC_C, KC_V,
KC_LBRC, KC_RBRC,
/*thumb*/ KC_LCTL, KC_SPC, KC_R,
/*aux*/ A(KC_M), KC_LGUI, KC_LALT,
KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, RSFT_T(KC_GRV),
KC_MINS, KC_EQL,
/*thumb*/ DF(L_COLM), KC_ENT, KC_BSPC,
/*aux*/ KC_F5, KC_RALT, KC_APP
),
[L_COLM] = LAYOUT_uqs(
KC_NO, KC_NO, KC_BTN2, KC_BTN3, KC_BTN1, KC_NO,
KC_BTN2, KC_Q, KC_W, KC_F, KC_P, KC_B,
KC_BTN1, KC_G_A, KC_A_R, KC_S_S, KC_C_T, KC_G,
KC_BTN3, KC_Z, KC_X, KC_C, KC_D, KC_V,
MS_WHUP, MS_WHDN,
/*thumb*/ LT_EXTD_ESC, SFT_T(KC_SPC), LT(L_MOUSE, KC_TAB),
/*aux*/ KC_LEAD, OSM_GUI, KC_LALT,
KC_NO, KC_BTN1, KC_BTN2, KC_BTN3, KC_NO, KC_NO,
KC_J, KC_L, KC_U, KC_Y, KC_QUOT, KC_NO,
KC_M, KC_C_N, KC_S_E, KC_A_I, KC_G_O, KC_NO,
KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, KC_NO,
KC_NO, KC_NO,
/*thumb*/ LT_FUNC_SHIFT_INS, KC_ENT, LT_NUM_BSPC,
/*aux*/ KC_LEAD, KC_RALT, KC_APP
),
// Updated with inspiration from https://forum.colemak.com/topic/2014-extend-extra-extreme/
// I like the AltGr trick from https://stevep99.github.io/seniply/ and should probably incorporate some stuff from it.
[L_EXTD] = LAYOUT_uqs(
_______, _______, _______, _______, _______, _______,
_______, KC_BTN1, KC_SCTAB, KC_PGUP, KC_CTAB, KC_LEAD,
_______, OSM_GUI, OSM_ALT, OSM_SFT, OSM_CTL, KC_RALT,
_______, ALT_TAB, MS_WHUP, MS_WHDN, KC_PGDN, INS_HARD,
_______, _______,
/*thumb*/ _______, _______, _______,
/*aux*/ _______, _______, _______,
/* ^^^^ can't be used */
_______, _______, _______, _______, _______, _______,
KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_INS, KC_NO,
KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_DEL, KC_NO,
WIN_LEFT, WIN_DN, WIN_UP, WIN_RGHT, KC_PSTE, KC_NO, // KC_PSTE works in XTerm to emulate middle-click
_______, _______,
/*thumb*/ _______, _______, KC_BSPC,
/*aux*/ _______, _______, _______
/* ^^^^ use these */
),
// TODO: maybe swap # with ;, that way I can roll :w or :wq which I need
// often ... probably better to add a combo?
[L_NUM] = LAYOUT_uqs(
_______, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
_______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC,
_______, KC_SCLN, KC_COLN, KC_LCBR, KC_LPRN, KC_LBRC,
_______, KC_CIRC, KC_AMPR, KC_RCBR, KC_RPRN, KC_RBRC,
KC_GRV, KC_TILDE,
/*thumb*/ KC_ESC, KC_SPC, KC_0,
/*aux*/ _______, _______, _______,
/* ^^^^ use these */
KC_NUMLOCK,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_EQUAL, KC_7, KC_8, KC_9, KC_KP_PLUS,_______,
KC_KP_ASTERISK,KC_4,KC_5, KC_6, MINS_UNDSCR,_______,
KC_COMM, KC_1, KC_2, KC_3, KC_KP_SLASH,KC_KP_ENTER, // Enter here, because thumb is occupied
KC_0, KC_KP_DOT,
/*thumb*/ _______, _______, _______,
/*aux*/ _______, _______, _______
/* ^^^^ can't be used */
),
[L_FUNC] = LAYOUT_uqs(
_______, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
_______, KC_NO, KC_MUTE, KC_VOLD, KC_VOLU, DF(L_WASD),
_______, KC_LGUI, KC_LALT, KC_LSFT, KC_LCTL, DF(L_QWER),
_______, KC_NO, KC_NO, KC_NO, KC_NO, DF(L_COLM),
KC_NO, KC_NO,
/*thumb*/ _______, _______, _______,
/*aux*/ _______, _______, _______,
/* ^^^^ use these */
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_PSCR, KC_F7, KC_F8, KC_F9, KC_F10, KC_NO,
KC_SLCK, KC_F4, KC_F5, KC_F6, KC_F11, KC_NO,
KC_PAUS, KC_F1, KC_F2, KC_F3, KC_F12, KC_NO,
KC_NO, KC_NO,
/*thumb*/ _______, _______, _______,
/*aux*/ _______, _______, _______
/* ^^^^ can't be used */
),
[L_MOUSE] = LAYOUT_uqs(
_______, _______, _______, _______, _______, _______,
_______, KC_NO, KC_BTN2, KC_BTN3, KC_BTN1, KC_VOLU,
_______, KC_NO, KC_ACL0, KC_ACL1, KC_ACL2, KC_VOLD,
_______, KC_NO, KC_NO, KC_NO, KC_NO, KC_MUTE,
KC_NO, KC_NO,
/*thumb*/ _______, _______, _______,
/*aux*/ _______, _______, _______,
/* ^^^^ can't be used */
_______, _______, _______, _______, _______, _______,
_______, _______, KC_MS_UP, MS_WHUP, _______, _______,
MS_WHLEFT,KC_MS_L, KC_MS_D, KC_MS_R, MS_WHRGHT,_______,
_______, MS_WHDN, KC_BTN3, KC_BTN4, KC_BTN5, _______,
KC_NO, KC_NO,
/*thumb*/ KC_NO, KC_BTN1, KC_BTN2,
/*aux*/ _______, _______, _______
/* use these ^^^^ */
),
};
@@ -0,0 +1 @@
#VIA_ENABLE = yes # doesn't fit with 7 layers :/
+58
View File
@@ -0,0 +1,58 @@
/*
Copyright 2022 Holten Campbell
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 0x5052
#define PRODUCT_ID 0x0042
#define DEVICE_VER 0x0002
#define MANUFACTURER Prime Keyboards
#define PRODUCT obro
/* key matrix size */
#define MATRIX_ROWS 5
#define MATRIX_COLS 14
#define MATRIX_COL_PINS { C7, C6, B6, B5, B4, F7, D4, B7, B3, D5, D3, D2, D1, D0 }
#define MATRIX_ROW_PINS { E6, F0, F6, D7, D6 }
#define DIODE_DIRECTION COL2ROW
#define RGB_DI_PIN F1
#define RGBLED_NUM 64
#define RGBLIGHT_EFFECT_BREATHING
#define RGBLIGHT_EFFECT_RAINBOW_MOOD
#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
#define RGBLIGHT_EFFECT_SNAKE
#define RGBLIGHT_EFFECT_KNIGHT
#define RGBLIGHT_EFFECT_CHRISTMAS
#define RGBLIGHT_EFFECT_STATIC_GRADIENT
#define RGBLIGHT_EFFECT_RGB_TEST
#define RGBLIGHT_EFFECT_ALTERNATING
#define RGBLIGHT_EFFECT_TWINKLE
#define RGBLIGHT_LIMIT_VAL 200
/* Set 0 if debouncing isn't needed */
#define DEBOUNCE 5
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
+10
View File
@@ -0,0 +1,10 @@
{
"keyboard_name": "Obro",
"url": "https://www.primekb.com",
"maintainer": "holtenc",
"layouts": {
"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":8.5, "y":0}, {"label":"*", "x":9.5, "y":0}, {"label":"(", "x":10.5, "y":0}, {"label":")", "x":11.5, "y":0}, {"label":"_", "x":12.5, "y":0}, {"label":"+", "x":13.5, "y":0}, {"label":"Backspace", "x":14.5, "y":0, "w":2}, {"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":8, "y":1}, {"label":"U", "x":9, "y":1}, {"label":"I", "x":10, "y":1}, {"label":"O", "x":11, "y":1}, {"label":"P", "x":12, "y":1}, {"label":"{", "x":13, "y":1}, {"label":"}", "x":14, "y":1}, {"label":"|", "x":15, "y":1, "w":1.5}, {"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":8.25, "y":2}, {"label":"J", "x":9.25, "y":2}, {"label":"K", "x":10.25, "y":2}, {"label":"L", "x":11.25, "y":2}, {"label":":", "x":12.25, "y":2}, {"label":"\"", "x":13.25, "y":2}, {"label":"Enter", "x":14.25, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"B", "x":7.75, "y":3}, {"label":"N", "x":8.75, "y":3}, {"label":"M", "x":9.75, "y":3}, {"label":"<", "x":10.75, "y":3}, {"label":">", "x":11.75, "y":3}, {"label":"?", "x":12.75, "y":3}, {"label":"Shift", "x":13.75, "y":3, "w":1.75}, {"label":"Fn", "x":15.5, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":3.75, "y":4, "w":1.25}, {"x":5, "y":4, "w":2.25}, {"x":7.75, "y":4, "w":2.75}, {"label":"Alt", "x":10.5, "y":4, "w":1.25}, {"label":"Win", "x":12.75, "y":4, "w":1.25}, {"label":"Menu", "x":14, "y":4, "w":1.25}, {"label":"Ctrl", "x":15.25, "y":4, "w":1.25}]
}
}
}
@@ -0,0 +1,49 @@
/*
Copyright 2020 Holten Campbell
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_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_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, MO(1),
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_RGUI, KC_RCTL
),
[1] = LAYOUT(
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_DEL,
_______, _______, KC_PGUP, _______, _______, _______, _______, _______, KC_UP, _______, KC_MPRV, KC_MPLY, KC_MNXT, _______,
_______, KC_HOME, KC_PGDN, KC_END, _______, KC_VOLD, KC_VOLU, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______
),
[2] = LAYOUT(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______
),
[3] = LAYOUT(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______
)
};
@@ -0,0 +1,49 @@
/*
Copyright 2020 Holten Campbell
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_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_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, MO(1),
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_RGUI, KC_RCTL
),
[1] = LAYOUT(
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_DEL,
_______, _______, KC_PGUP, _______, _______, _______, _______, _______, KC_UP, _______, KC_MPRV, KC_MPLY, KC_MNXT, _______,
_______, KC_HOME, KC_PGDN, KC_END, _______, KC_VOLD, KC_VOLU, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______
),
[2] = LAYOUT(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______
),
[3] = LAYOUT(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______
)
};
@@ -0,0 +1 @@
VIA_ENABLE = yes
@@ -1,8 +1,5 @@
/*
This is the c configuration file for the keymap
Copyright 2012 Jun Wako <wakojun@gmail.com>
Copyright 2015 Jack Humbert
Copyright 2020 Holten Campbell
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
@@ -18,17 +15,4 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
// place overrides here
/* Use I2C or Serial, not both */
#define USE_SERIAL
// #define USE_I2C
/* Select hand configuration */
#define MASTER_LEFT
// #define _MASTER_RIGHT
// #define EE_HANDS
#include "obro.h"
+37
View File
@@ -0,0 +1,37 @@
/*
Copyright 2022 Holten Campbell
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 K_NO KC_NO
#define LAYOUT( \
K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, \
K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, \
K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K213, \
K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, \
K400, K401, K402, K404, K407, K409, K411, K412, K413 \
) \
{ \
{ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013 }, \
{ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113 }, \
{ K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K_NO, K213 }, \
{ K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313}, \
{ K400, K401, K402, K_NO, K404, K_NO, K_NO, K407, K_NO, K409, K_NO, K411, K412, K413 } \
}
+22
View File
@@ -0,0 +1,22 @@
# Obro
* Keyboard Maintainer: [Holten Campbell](https://github.com/holtenc)
* Hardware Supported: ATMEGA32u4
* Hardware Availability: Not applicable
Make example for this keyboard (after setting up your build environment):
make handwired/obro:default
Flashing example for this keyboard:
make handwired/obro:default:flash
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
# Bootloader
Enter the bootloader in 3 ways:
* Bootmagic reset: HOld down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
* Physical reset button: Briefly press the button on the back of the PCB
* Keycode in layout: Press the key mapped to RESET if it is available

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