Compare commits

...
Author SHA1 Message Date
Joel Challis 936c341ef8 Update info.json 2022-03-05 20:54:51 +00:00
kiilerix da6d6ce2e1 Some docs improvements (#15845)
* docs: clarify in "Keymap Overview" what LAYOUT is and isn't

It is not strictly necessary to use LAYOUT macros in keyboard.c, but it
is a convenient abstraction of hardware internals, allowing focus on the
physical keyboard layout.

From the C source point of view LAYOUT is macro with a parameter list,
which expands to a array of rows that each is an array with a keyboard
scancode for each column. A macro parameter list is not an array, and
even less a single array.

Perhaps no big deal, but also no reason to give incorrect hints.

* docs: update "Understanding QMK's Code" to current code structure introduced in 96e2b13d1d

This part of the documentation was no longer correct. I tried updating
it, mainly copy editing and using github links to latest release.

This is not trying to fix all problems, but just trying to fix some
problems while reusing much of the old phrases and structure.

* Update docs to use "qmk format-python"
2022-03-05 15:58:50 +11:00
yulei 82dd84e257 support more leds (#15840) 2022-03-05 15:57:19 +11:00
0be7345640 [Keyboard] BDE Rev2 (#15877)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-03-04 10:10:32 -08:00
Joel Challis c0185116d7 More validation of declared LAYOUT macro names (#16520) 2022-03-04 18:06:15 +01:00
Ryan 34ba7f1c18 Bug report template: require qmk doctor output (#16517) 2022-03-03 20:43:55 -08:00
Ryan d412854e37 analog.[ch]: remove unnecessary includes (#16471) 2022-03-04 14:56:59 +11:00
Ryan aab2ac22c5 Melody96 refactor (#16455) 2022-03-04 14:52:15 +11:00
jels 61ba8efa3e Update pr_checklist.md (#16484)
Update readme.md template link from https://github.com/qmk/qmk_firmware/blob/master/data/templates/avr/readme.md to https://github.com/qmk/qmk_firmware/blob/master/data/templates/keyboard/readme.md
2022-03-04 12:49:14 +11:00
jels e01307f265 Typo in squeezing_avr.md (#16506)
Fixed typo in squeezing_avr docs.
2022-03-03 15:38:24 -08:00
Joel Challis 7fb312ccd7 Fix use of ISSI driver config before init (#16493) 2022-03-03 22:35:51 +00:00
Takeshi ISHII 4a66bdf294 Fix helix/rev2 not working properly when using split_common. (#16512)
When helix/rev2 was using split_common, it didn't work properly and I couldn't type on the right hand side.

The cause is that the following code, added in 0.16.0 to `quantum/keyboard.c`, does not include `quantum/split_common/split_util.h` but instead includes `keyboards/helix/rev2/split_util.h`. Therefore, `split_pre_init()/split_post_init()` in `quantum/split_common/split_util.c` was not called.

```c
  #ifdef SPLIT_KEYBOARD
  #    include "split_util.h"
  #endif
```
2022-03-03 20:23:49 +00:00
GompaandJoel Challis ae2c77c827 [Bug] fix v-usb connection enumeration, ifdef workaround (#16511)
Co-authored-by: Joel Challis <git@zvecr.com>
2022-03-03 09:24:04 -08:00
Takeshi ISHII 75b40dc7a5 Fix mistakes in the include path in helix/rev2/local_features.mk. (#16507)
```diff
  --- a/keyboards/helix/rev2/local_features.mk
  +++ b/keyboards/helix/rev2/local_features.mk
  @@ -6,7 +6,7 @@
   #

   KEYBOARD_LOCAL_FEATURES_MK :=
  --include $(strip $(HELIX_TOP_DIR)/pico/override_helix_options.mk) ## File ded  icated to maintenance
  +-include $(strip $(HELIX_TOP_DIR)/rev2/override_helix_options.mk) ## File dedicated to maintenance
  ```
2022-03-03 14:27:21 +00:00
Jake VanderVaate 96b6ddf4bf fixed typo in docs/newbs_getting_started.md (#16501) 2022-03-03 09:53:40 +00:00
Takeshi ISHII e73f8e942c Change 'helix/rev2:default' setting to use split_common (#16432)
* add licenses message to helix/rev2 files

* Minimize the processing of helix/rev2/local_features.mk

* Changed helix/rev2 default setting to use split_common

* fix helix/rev2:edvorakjp build error

* Remove unnecessary '#include' from keymap.c

* helix keymaps Workaround for build errors. five_rows_jis, fraanrosi, froggy, froggy_106, yshrsmz

* Revert "fix helix/rev2:edvorakjp build error"

This reverts commit 731dbbe15155b3efe2ff9f5ad61c7d0cf529e837.
Separated into a single PR #16433.

* Revert "Changed helix/rev2 default setting to use split_common"

This reverts commit e76dbd7762e06e0781ee004213878b1a5029fa98.

* add 'SPLIT_*_STATE_ENABLE' into helix/rev2/config.h

* Revert "helix keymaps Workaround for build errors. five_rows_jis, fraanrosi, froggy, froggy_106, yshrsmz"

This reverts commit 9b316c1c6a532f908f2ac430233089797ce7c794.

* change helix:default to use split_common

* change helix:five_rows to use split_common

* add comment into helix/rev2/rules.mk

* change helix:led_test to use split_common
2022-03-02 20:15:10 +09:00
xiao 09a43b12cb Revert "handwired/3dortho14u: refactor layout data (#16475)" (#16485)
This reverts commit 3ac769b6ab.
2022-03-01 15:48:38 -08:00
James Young 325c634101 atlas_65 Layout Macro Refactor (#16483)
* atlas_65.h: add matrix diagram

* atlas_65.h: apply linting

- convert tabs to spaces
  - four-space indent
- align backslashes in layout macro

* atlas_65.h: adjust layout macro alignment

Visually separates each side. White-space-only change.

* physically arrange layout macro

Move the matrix position identifiers in the layout macro to resemble the assembled keyboard's layout.

- move `k46` (right side B) to the fourth (Shift) row
- move each of `k1E`, `k2E` and `k3E` (right side navigation keys) up one row
- update keymaps to match

* update maintainer data

Update the maintainer data in `info.json` and `readme.md`.
2022-03-01 14:52:25 -08:00
Joel Challis 369575ad13 Remove invalid keyboard_folder from gk6 (#16480) 2022-03-01 02:12:01 +00:00
James Young 36635c2203 Ellora65: remove dead space from Configurator rendering (#16478) 2022-03-01 01:53:53 +00:00
Joel Challis c9d9e70ac7 Move projectcain encoder logic to keyboard level (#16479) 2022-03-01 01:52:01 +00:00
James Young f293e6b4da Glacier: Community Layout support (#16474)
* Glacier: Community Layout support

Enables the Glacier to use QMK's `tkl_f13_ansi_tsangan` community layout.

- rename `LAYOUT` to `LAYOUT_tkl_f13_ansi_tsangan`
- add `LAYOUTS` rule to `rules.mk`

* info.json: correct maintainer value

Use the maintainer's GitHub username.
2022-02-28 23:33:55 +00:00
James Young 3ac769b6ab handwired/3dortho14u: refactor layout data (#16475)
Remove nonextant matrix positions from the layout data.
2022-02-28 23:33:21 +00:00
James Young d1068b23ad snatchpad: update layout data (#16476)
Fixes key overlaps in QMK Configurator.
2022-02-28 23:32:33 +00:00
Erovia fbfd5312b9 CLI: Validate JSON keymap input (#16261)
* Fix schema validator

It should use the passed schema.

* Add required attributes to keymap schema

* Rework subcommands to validate the JSON keymaps

The 'compile', 'flash' and 'json2c' subcommands were reworked to add
JSON keymap validation so error is reported for non-JSON and
non-compliant-JSON inputs.

* Fix required fields in keymap schema

* Add tests

* Fix compiling keymaps directly from keymap directory

* Schema should not require version for now.
2022-02-28 20:02:39 +00:00
Joel Challis 779c7debcf Fix issues with data driven split keyboards (#16457) 2022-02-27 13:39:24 +01:00
Takeshi ISHII e884414e1e fix helix/rev2:edvorakjp build error (#16433)
'helix/rev2/keymaps/edvorakjp' was no longer buildable due to changes made by #14864.
The reason is that the prototype of `oled_task_user()` was changed in keymaps/edvorakjp/oled.c, but keymaps/edvorakjp/oled.h was not changed.
Therefore, I modified the prototype in keymaps/edvorakjp/oled.h.
2022-02-27 20:30:00 +09:00
Joel Challis 77cdb20e16 Revert CLI default for manufacturer (#16467) 2022-02-27 10:34:26 +00:00
James Young a7a3f72235 Wolf Sabre: fix Configurator layout data (#16465)
* apply friendly formatting to info.json

* rebuild Configurator layout data

KLE Rotation leads to incorrect layout data when converted to `info.json` format.

* add matrix diagram to sabre.h
2022-02-27 10:08:10 +00:00
James Young 57601d3cfe Wren: fix QMK Configurator key sequence (#16462)
* Wren: fix QMK Configurator key sequence

* info.json: update maintainer field
2022-02-27 00:38:51 -08:00
Albert Y 29ab430f1f [Docs] Anchor link correction in rgb matrix docs (#16460) 2022-02-26 18:38:46 -08:00
stanrc85 1d30ee72ab [Keymap] stanrc85 userspace rules cleanup (#16447) 2022-02-26 18:29:59 -08:00
Dasky 259cf76966 Link WS2812 driver page from rgb feature docs (#16366) 2022-02-27 01:50:44 +00:00
James Young c1e008b052 [Keyboard] add YMDK YMD21 v2 (#16442)
* [Keyboard] add YMDK YMD21 v2

* remove trailing whitespace from default keymap
2022-02-26 17:36:30 -08:00
Ryan 97d0e7cb2d [Docs] Add commands to flashing docs (#16456) 2022-02-26 17:35:10 -08:00
d94b5d0b82 [Handwired] Support for Adafruit lemon keypad (#16395)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: zvecr <git@zvecr.com>
2022-02-26 17:18:51 -08:00
3057e5f8ca [Keyboard] ada1800mini (#16386)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-02-26 17:06:48 -08:00
Joel Challis 83a32b2574 Remove 1k USB_POLLING_INTERVAL_MS config from keyboards and default-ish keymaps (#16448)
* Remove 1k USB_POLLING_INTERVAL_MS config from keyboard level

* Remove 1k USB_POLLING_INTERVAL_MS config from default|via keymaps
2022-02-26 03:20:57 +00:00
202 changed files with 3516 additions and 774 deletions

No files matched your search

+12 -13
View File
@@ -18,19 +18,18 @@ assignees: ''
## System Information
- Keyboard:
- Revision (if applicable):
- Operating system:
- AVR GCC version:
<!-- Run `avr-gcc --version` to find this out. -->
- ARM GCC version:
<!-- Run `arm-none-eabi-gcc --version` to find this out. -->
- QMK Firmware version:
<!-- Run `git describe --abbrev=0 --tags` to find this out. -->
- Any keyboard related software installed?
- [ ] AutoHotKey
- [ ] Karabiner
- [ ] Other:
**Keyboard:**
**Revision (if applicable):**
**Operating system:**
**`qmk doctor` output:**
```
(Paste output here)
```
**Any keyboard related software installed?**
- [ ] AutoHotKey (Windows)
- [ ] Karabiner (macOS)
- [ ] Other:
## Additional Context
+27 -1
View File
@@ -33,7 +33,33 @@
"oneOf": [
{
"type": "string",
"enum": ["LAYOUT", "LAYOUT_planck_1x2uC"]
"enum": [
"LAYOUT",
"LAYOUT_1x2uC",
"LAYOUT_1x2uL",
"LAYOUT_1x2uR",
"LAYOUT_2x2uC",
"LAYOUT_2x3uC",
"LAYOUT_625uC",
"LAYOUT_ANSI_DEFAULT",
"LAYOUT_JP",
"LAYOUT_ortho_3x12_1x2uC",
"LAYOUT_ortho_4x12_1x2uC",
"LAYOUT_ortho_4x12_1x2uL",
"LAYOUT_ortho_4x12_1x2uR",
"LAYOUT_ortho_5x12_1x2uC",
"LAYOUT_ortho_5x12_2x2uC",
"LAYOUT_ortho_5x14_1x2uC",
"LAYOUT_ortho_5x14_1x2uL",
"LAYOUT_ortho_5x14_1x2uR",
"LAYOUT_planck_1x2uC",
"LAYOUT_planck_1x2uL",
"LAYOUT_planck_1x2uR",
"LAYOUT_preonic_1x2uC",
"LAYOUT_preonic_1x2uL",
"LAYOUT_preonic_1x2uR",
"LAYOUT_reviung34_2uL"
]
},
{
"type": "string",
+1
View File
@@ -109,6 +109,7 @@
},
"layouts": {
"type": "object",
"propertyNames": {"$ref": "qmk.definitions.v1#/layout_macro"},
"additionalProperties": {
"type": "object",
"additionalProperties": false,
+6 -1
View File
@@ -53,5 +53,10 @@
"type": "string",
"description": "asdf"
}
}
},
"required": [
"keyboard",
"layout",
"layers"
]
}
+2 -2
View File
@@ -15,11 +15,11 @@
"device_version": "1.0.0"
},
"features": {
"bootmagic_lite": true,
"bootmagic": true,
"command": false,
"console": false,
"extrakey": true,
"mousekey": true,
"nkro": true
}
}
}
+2 -2
View File
@@ -188,7 +188,7 @@ cli.log.info('Reading from %s and writing to %s', cli.args.filename, cli.args.ou
# Testing, and Linting, and Formatting (oh my!)
We use nose2, flake8, and yapf to test, lint, and format code. You can use the `pytest` and `format-py` subcommands to run these tests:
We use nose2, flake8, and yapf to test, lint, and format code. You can use the `pytest` and `format-python` subcommands to run these tests:
### Testing and Linting
@@ -196,7 +196,7 @@ We use nose2, flake8, and yapf to test, lint, and format code. You can use the `
### Formatting
qmk format-py
qmk format-python
## Formatting Details
+3 -1
View File
@@ -361,6 +361,8 @@ Configure the hardware via your `config.h`:
#define DRIVER_LED_TOTAL 70
```
?> There are additional configuration options for ARM controllers that offer increased performance over the default bitbang driver. Please see [WS2812 Driver](ws2812_driver.md) for more information.
---
### APA102 :id=apa102
@@ -526,7 +528,7 @@ All RGB keycodes are currently shared with the RGBLIGHT system:
`RGB_MODE_PLAIN`, `RGB_MODE_BREATHE`, `RGB_MODE_RAINBOW`, and `RGB_MODE_SWIRL` are the only ones that are mapped properly. The rest don't have a direct equivalent, and are not mapped.
?> `RGB_*` keycodes cannot be used with functions like `tap_code16(RGB_HUD)` as they're not USB HID keycodes. If you wish to replicate similar behaviour in custom code within your firmware (e.g. inside `encoder_update_user()` or `process_record_user()`), the equivalent [RGB functions](#functions-idfunctions) should be used instead.
?> `RGB_*` keycodes cannot be used with functions like `tap_code16(RGB_HUD)` as they're not USB HID keycodes. If you wish to replicate similar behaviour in custom code within your firmware (e.g. inside `encoder_update_user()` or `process_record_user()`), the equivalent [RGB functions](#functions) should be used instead.
!> By default, if you have both the [RGB Light](feature_rgblight.md) and the RGB Matrix feature enabled, these keycodes will work for both features, at the same time. You can disable the keycode functionality by defining the `*_DISABLE_KEYCODES` option for the specific feature.
+2
View File
@@ -22,6 +22,8 @@ On keyboards with onboard RGB LEDs, it is usually enabled by default. If it is n
RGBLIGHT_ENABLE = yes
```
?> There are additional configuration options for ARM controllers that offer increased performance over the default WS2812 bitbang driver. Please see [WS2812 Driver](ws2812_driver.md) for more information.
For APA102 LEDs, add the following to your `rules.mk`:
```make
+30 -4
View File
@@ -25,6 +25,11 @@ Compatible flashers:
* [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) (recommended GUI)
* [dfu-programmer](https://github.com/dfu-programmer/dfu-programmer) / `:dfu` target in QMK (recommended command line)
```
dfu-programmer <mcu> erase --force
dfu-programmer <mcu> flash --force <filename>
dfu-programmer <mcu> reset
```
Flashing sequence:
@@ -73,8 +78,11 @@ BOOTLOADER = caterina
Compatible flashers:
* [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) (recommended GUI)
* [avrdude](https://www.nongnu.org/avrdude/) with the `avr109` programmer / `:avrdude` target in QMK (recommended command line)
* [AVRDUDESS](https://github.com/zkemble/AVRDUDESS)
* [avrdude](https://www.nongnu.org/avrdude/) with the `avr109` programmer / `:avrdude` target in QMK (recommended command line)
```
avrdude -p <mcu> -c avr109 -P <serialport> -U flash:w:<filename>:i
```
Flashing sequence:
@@ -106,8 +114,11 @@ BOOTLOADER = halfkay
Compatible flashers:
* [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) (recommended GUI)
* [Teensy Loader Command Line](https://www.pjrc.com/teensy/loader_cli.html) / `:teensy` target in QMK (recommended command line)
* [Teensy Loader](https://www.pjrc.com/teensy/loader.html)
* [Teensy Loader Command Line](https://www.pjrc.com/teensy/loader_cli.html) / `:teensy` target in QMK (recommended command line)
```
teensy_loader_cli -v -mmcu=<mcu> <filename>
```
Flashing sequence:
@@ -133,8 +144,11 @@ BOOTLOADER = usbasploader
Compatible flashers:
* [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) (recommended GUI)
* [avrdude](https://www.nongnu.org/avrdude/) with the `usbasp` programmer / `:usbasp` target in QMK (recommended command line)
* [AVRDUDESS](https://github.com/zkemble/AVRDUDESS)
* [avrdude](https://www.nongnu.org/avrdude/) with the `usbasp` programmer / `:usbasp` target in QMK (recommended command line)
```
avrdude -p <mcu> -c usbasp -U flash:w:<filename>:i
```
Flashing sequence:
@@ -159,8 +173,11 @@ BOOTLOADER = bootloadhid
Compatible flashers:
* [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) (recommended GUI)
* [bootloadHID CLI](https://www.obdev.at/products/vusb/bootloadhid.html) / `:bootloadhid` target in QMK (recommended command line)
* [HIDBootFlash](http://vusb.wikidot.com/project:hidbootflash)
* [bootloadHID CLI](https://www.obdev.at/products/vusb/bootloadhid.html) / `:bootloadhid` target in QMK (recommended command line)
```
bootloadHID -r <filename>
```
Flashing sequence:
@@ -232,6 +249,9 @@ Compatible flashers:
* [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) (recommended GUI)
* [dfu-util](https://dfu-util.sourceforge.net/) / `:dfu-util` target in QMK (recommended command line)
```
dfu-util -a 0 -d 0483:DF11 -s 0x8000000:leave -D <filename>
```
Flashing sequence:
@@ -265,6 +285,9 @@ Compatible flashers:
* [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) (recommended GUI)
* [dfu-util](https://dfu-util.sourceforge.net/) / `:dfu-util` target in QMK (recommended command line)
```
dfu-util -a 2 -d 1EAF:0003 -D <filename>
```
Flashing sequence:
@@ -286,6 +309,9 @@ Compatible flashers:
* [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) (recommended GUI)
* [dfu-util](https://dfu-util.sourceforge.net/) / `:dfu-util` target in QMK (recommended command line)
```
dfu-util -a 0 -d 1C11:B007 -D <filename>
```
Flashing sequence:
+2 -2
View File
@@ -275,14 +275,14 @@ $ qmk kle2json -f kle.txt -f
Ψ Wrote out to info.json
```
## `qmk format-py`
## `qmk format-python`
このコマンドは `qmk_firmware` 内の python コードを整形します。
**使用法**:
```
qmk format-py
qmk format-python
```
## `qmk pytest`
+2 -2
View File
@@ -192,7 +192,7 @@ cli.log.info('Reading from %s and writing to %s', cli.args.filename, cli.args.ou
# テスト、リントおよびフォーマット
nose2、flake8 および yapf を使ってコードをテスト、リントおよびフォーマットします。これらのテストを実行するために `pytest` と `format-py` サブコマンドを使うことができます。
nose2、flake8 および yapf を使ってコードをテスト、リントおよびフォーマットします。これらのテストを実行するために `pytest` と `format-python` サブコマンドを使うことができます。
### テストとリント
@@ -200,7 +200,7 @@ nose2、flake8 および yapf を使ってコードをテスト、リントお
### フォーマット
qmk format-py
qmk format-python
## フォーマットの詳細
+4 -2
View File
@@ -132,7 +132,7 @@ The main part of this file is the `keymaps[]` definition. This is where you list
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
After this you'll find a list of LAYOUT() macros. A LAYOUT() is simply a list of keys to define a single layer. Typically you'll have one or more "base layers" (such as QWERTY, Dvorak, or Colemak) and then you'll layer on top of that one or more "function" layers. Due to the way layers are processed you can't overlay a "lower" layer on top of a "higher" layer.
After this you'll find the layer definitions. Typically you'll have one or more "base layers" (such as QWERTY, Dvorak, or Colemak) and then you'll layer on top of that one or more "function" layers. Due to the way layers are processed you can't overlay a "lower" layer on top of a "higher" layer.
`keymaps[][MATRIX_ROWS][MATRIX_COLS]` in QMK holds the 16 bit action code (sometimes referred as the quantum keycode) in it. For the keycode representing typical keys, its high byte is 0 and its low byte is the USB HID usage ID for keyboard.
@@ -153,7 +153,9 @@ Here is an example of the Clueboard's base layer:
Some interesting things to note about this:
* From a C source point of view it's only a single array, but we have embedded whitespace to more easily visualize where each key is on the physical device.
* The layer is defined using the LAYOUT macro, traditionally defined in the keyboard's `.h` file.
* The LAYOUT macro takes a single list of keycodes, but we have written it in the C source using embedded whitespace and newlines to visualize where each key is on the physical device.
* The LAYOUT macro hides and handles the mapping to the hardware's key scan matrix.
* Plain keyboard scancodes are prefixed with KC_, while "special" keys are not.
* The upper left key activates custom function 0 (`F(0)`)
* The "Fn" key is defined with `MO(_FL)`, which moves to the `_FL` layer while that key is being held down.
+1 -1
View File
@@ -145,7 +145,7 @@ In most situations you will want to answer `y` to all of the prompts.
?>**Note on Debian, Ubuntu and their derivatives**:
It's possible, that you will get an error saying something like: `bash: qmk: command not found`.
This is due to a [bug](https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=839155) Debian introduced with their Bash 4.4 release, which removed `$HOME/.local/bin` from the PATH. This bug was later fixed on Debian and Ubuntu.
Sadly, Ubuntu reitroduced this bug and is [yet to fix it](https://bugs.launchpad.net/ubuntu/+source/bash/+bug/1588562).
Sadly, Ubuntu reintroduced this bug and is [yet to fix it](https://bugs.launchpad.net/ubuntu/+source/bash/+bug/1588562).
Luckily, the fix is easy. Run this as your user: `echo 'PATH="$HOME/.local/bin:$PATH"' >> $HOME/.bashrc && source $HOME/.bashrc`
### ** FreeBSD **
+1 -1
View File
@@ -50,7 +50,7 @@ https://github.com/qmk/qmk_firmware/pulls?q=is%3Apr+is%3Aclosed+label%3Akeyboard
- valid maintainer
- displays correctly in Configurator (press Ctrl+Shift+I to preview local file, turn on fast input to verify ordering)
- `readme.md`
- standard template should be present -- [link to template](https://github.com/qmk/qmk_firmware/blob/master/data/templates/avr/readme.md)
- standard template should be present -- [link to template](https://github.com/qmk/qmk_firmware/blob/master/data/templates/keyboard/readme.md)
- flash command is present, and has `:flash` at end
- valid hardware availability link (unless handwired) -- private groupbuys are okay, but one-off prototypes will be questioned. If open-source, a link to files should be provided.
- clear instructions on how to reset the board into bootloader mode
+1 -1
View File
@@ -34,7 +34,7 @@ Largest in size is "magic" -- the QMK magic keycodes -- which control things lik
If you've done all of that, and you don't want to disable features like RGB, Audio, OLEDs, etc, there are some additional options that you can add to your config.h that can help.
Starting with Lock Key support. If you have an Cherry MX Lock switch (lucky you!), you don't want to do this. But chances are, you don't. In that case, add this to your `config.h`:
Starting with Lock Key support. If you have a Cherry MX Lock switch (lucky you!), you don't want to do this. But chances are, you don't. In that case, add this to your `config.h`:
```c
#undef LOCKING_SUPPORT_ENABLE
#undef LOCKING_RESYNC_ENABLE
+5 -10
View File
@@ -8,27 +8,22 @@ This document attempts to explain how the QMK firmware works from a very high le
## Startup
You can think of QMK as no different from any other computer program. It is started, performs its tasks, and then ends. The entry point for the program is the `main()` function, just like it is on any other C program. However, for a newcomer to QMK it can be confusing because the `main()` function appears in multiple places, and it can be hard to tell which one to look at.
You can think of QMK as no different from any other computer program. It is started and performs its tasks, but this program never finishes. Like other C programs, the entry point is the `main()` function. For QMK, the `main()` function is found in [`quantum/main.c`](https://github.com/qmk/qmk_firmware/blob/0.15.13/quantum/main.c#L55).
The reason for this is the different platforms that QMK supports. The most common platform is `lufa`, which runs on AVR processors such at the atmega32u4. We also support `chibios` and `vusb`.
If you browse through the `main()` function you'll find that it starts by initializing any hardware that has been configured (including USB to the host). The most common platform for QMK is `lufa`, which runs on AVR processors such as the atmega32u4. When compiled for that platform, it will invoke for example `platform_setup()` in [`platforms/avr/platform.c`](https://github.com/qmk/qmk_firmware/blob/0.15.13/platforms/avr/platform.c#L19) and `protocol_setup()` in [`tmk_core/protocol/lufa/lufa.c`](https://github.com/qmk/qmk_firmware/blob/0.15.13/tmk_core/protocol/lufa/lufa.c#L1066). It will use other implementations when compiled for other platforms like `chibios` and `vusb`. At first glance, it can look like a lot of functionality but most of the time the code will be disabled by `#define`s.
We'll focus on AVR processors for the moment, which use the `lufa` platform. You can find the `main()` function in [tmk_core/protocol/lufa/lufa.c](https://github.com/qmk/qmk_firmware/blob/e1203a222bb12ab9733916164a000ef3ac48da93/tmk_core/protocol/lufa/lufa.c#L1028). If you browse through that function you'll find that it initializes any hardware that has been configured (including USB to the host) and then it starts the core part of the program with a [`while(1)`](https://github.com/qmk/qmk_firmware/blob/e1203a222bb12ab9733916164a000ef3ac48da93/tmk_core/protocol/lufa/lufa.c#L1069). This is [The Main Loop](#the-main-loop).
The `main()` function will then start the core part of the program with a [`while (true)`](https://github.com/qmk/qmk_firmware/blob/0.15.13/quantum/main.c#L63). This is [The Main Loop](#the-main-loop).
## The Main Loop
This section of code is called "The Main Loop" because it's responsible for looping over the same set of instructions forever. This is where QMK dispatches out to the functions responsible for making the keyboard do everything it is supposed to do. At first glance it can look like a lot of functionality but most of the time the code will be disabled by `#define`'s.
This section of code is called "The Main Loop" because it's responsible for looping over the same set of instructions forever, without ever reaching the end. This is where QMK dispatches out to the functions responsible for making the keyboard do everything it is supposed to do.
```
keyboard_task();
```
This is where all the keyboard specific functionality is dispatched. The source code for `keyboard_task()` can be found in [tmk_core/common/keyboard.c](https://github.com/qmk/qmk_firmware/blob/e1203a222bb12ab9733916164a000ef3ac48da93/tmk_core/common/keyboard.c#L216), and it is responsible for detecting changes in the matrix and turning status LEDs on and off.
The main loop will call [`protocol_task()`](https://github.com/qmk/qmk_firmware/blob/0.15.13/quantum/main.c#L38), which in turn will call `keyboard_task()` in [`quantum/keyboard.c`](https://github.com/qmk/qmk_firmware/blob/0.15.13/quantum/keyboard.c#L377). This is where all the keyboard specific functionality is dispatched, and it is responsible for detecting changes in the matrix and turning status LEDs on and off.
Within `keyboard_task()` you'll find code to handle:
* [Matrix Scanning](#matrix-scanning)
* Mouse Handling
* Serial Link(s)
* Keyboard status LEDs (Caps Lock, Num Lock, Scroll Lock)
#### Matrix Scanning
+2
View File
@@ -18,6 +18,8 @@
#include "analog.h"
#include "gpio.h"
#include "wait.h"
#include "timer.h"
#include <stdlib.h>
// Set Parameters
uint16_t minAxisValue = ANALOG_JOYSTICK_AXIS_MIN;
+4
View File
@@ -0,0 +1,4 @@
// Copyright 2022 peepeetee (@peepeetee)
// SPDX-License-Identifier: GPL-2.0-or-later
#include "ada1800mini.h"
+38
View File
@@ -0,0 +1,38 @@
/* Copyright 2022 peepeetee
*
* 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 XXX KC_NO
#define LAYOUT( \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2C, K2D, K2E, \
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3C, K3D, K3E, K3B, \
K40, K41, K42, K43, K46, K47, K48, K4D, K4E, K4A, K4B, K4C \
) { \
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, XXX, K2C, K2D, K2E }, \
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, XXX, K3B, K3C, K3D, K3E }, \
{ K40, K41, K42, K43, XXX, XXX, K46, K47, K48, XXX, K4A, K4B, K4C, K4D, K4E }, \
}
// generated by KBFirmware JSON to QMK Parser
// https://noroadsleft.github.io/kbf_qmk_converter/
+70
View File
@@ -0,0 +1,70 @@
/* Copyright 2022 peepeetee
*
* 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 0xADA0
#define PRODUCT_ID 0x1800
#define DEVICE_VER 0x0001
#define MANUFACTURER Ada
#define PRODUCT ada1800mini
/* key matrix size */
#define MATRIX_ROWS 5
#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 { D0, D1, D2, D3, D5 }
#define MATRIX_COL_PINS { F1, F4, F5, F6, F7, C7, C6, B6, B5, B4, D7, D6, B3, B2, B1 }
#define DIODE_DIRECTION COL2ROW
//TODO: implement RGB matrix when I get the hardware
#define RGB_DI_PIN F0
#ifdef RGB_DI_PIN
#define RGBLED_NUM 100
#define RGBLIGHT_HUE_STEP 8
#define RGBLIGHT_SAT_STEP 8
#define RGBLIGHT_VAL_STEP 8
#define RGBLIGHT_LIMIT_VAL 200 /* 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
// generated by KBFirmware JSON to QMK Parser
// https://noroadsleft.github.io/kbf_qmk_converter/
+82
View File
@@ -0,0 +1,82 @@
{
"keyboard_name": "ada1800mini",
"url": "",
"maintainer": "qmk",
"layouts": {
"LAYOUT": {
"layout": [
{ "label": "K00 (D0,F1)", "x": 0, "y": 0 },
{ "label": "K01 (D0,F4)", "x": 1.25, "y": 0 },
{ "label": "K02 (D0,F5)", "x": 2.25, "y": 0 },
{ "label": "K03 (D0,F6)", "x": 3.25, "y": 0 },
{ "label": "K04 (D0,F7)", "x": 4.5, "y": 0 },
{ "label": "K05 (D0,C7)", "x": 5.5, "y": 0 },
{ "label": "K06 (D0,C6)", "x": 6.5, "y": 0 },
{ "label": "K07 (D0,B6)", "x": 7.5, "y": 0 },
{ "label": "K08 (D0,B5)", "x": 8.75, "y": 0 },
{ "label": "K09 (D0,B4)", "x": 9.75, "y": 0 },
{ "label": "K0A (D0,D7)", "x": 10.75, "y": 0 },
{ "label": "K0B (D0,D6)", "x": 12, "y": 0 },
{ "label": "K0C (D0,B3)", "x": 13.5, "y": 0 },
{ "label": "K0D (D0,B2)", "x": 14.5, "y": 0 },
{ "label": "K0E (D0,B1)", "x": 15.5, "y": 0 },
{ "label": "K10 (D1,F1)", "x": 0, "y": 1.25, "w": 1.5 },
{ "label": "K11 (D1,F4)", "x": 1.5, "y": 1.25 },
{ "label": "K12 (D1,F5)", "x": 2.5, "y": 1.25 },
{ "label": "K13 (D1,F6)", "x": 3.5, "y": 1.25 },
{ "label": "K14 (D1,F7)", "x": 4.5, "y": 1.25 },
{ "label": "K15 (D1,C7)", "x": 5.5, "y": 1.25 },
{ "label": "K16 (D1,C6)", "x": 6.5, "y": 1.25 },
{ "label": "K17 (D1,B6)", "x": 7.5, "y": 1.25 },
{ "label": "K18 (D1,B5)", "x": 8.5, "y": 1.25 },
{ "label": "K19 (D1,B4)", "x": 9.5, "y": 1.25 },
{ "label": "K1A (D1,D7)", "x": 10.5, "y": 1.25 },
{ "label": "K1B (D1,D6)", "x": 11.5, "y": 1.25, "w": 1.5 },
{ "label": "K1C (D1,B3)", "x": 13.5, "y": 1.25 },
{ "label": "K1D (D1,B2)", "x": 14.5, "y": 1.25 },
{ "label": "K1E (D1,B1)", "x": 15.5, "y": 1.25 },
{ "label": "K20 (D2,F1)", "x": 0, "y": 2.25, "w": 1.75 },
{ "label": "K21 (D2,F4)", "x": 1.75, "y": 2.25 },
{ "label": "K22 (D2,F5)", "x": 2.75, "y": 2.25 },
{ "label": "K23 (D2,F6)", "x": 3.75, "y": 2.25 },
{ "label": "K24 (D2,F7)", "x": 4.75, "y": 2.25 },
{ "label": "K25 (D2,C7)", "x": 5.75, "y": 2.25 },
{ "label": "K26 (D2,C6)", "x": 6.75, "y": 2.25 },
{ "label": "K27 (D2,B6)", "x": 7.75, "y": 2.25 },
{ "label": "K28 (D2,B5)", "x": 8.75, "y": 2.25 },
{ "label": "K29 (D2,B4)", "x": 9.75, "y": 2.25 },
{ "label": "K2A (D2,D7)", "x": 10.75, "y": 2.25, "w": 2.25 },
{ "label": "K2C (D2,B3)", "x": 13.5, "y": 2.25 },
{ "label": "K2D (D2,B2)", "x": 14.5, "y": 2.25 },
{ "label": "K2E (D2,B1)", "x": 15.5, "y": 2.25 },
{ "label": "K30 (D3,F1)", "x": 0, "y": 3.25, "w": 2.25 },
{ "label": "K31 (D3,F4)", "x": 2.25, "y": 3.25 },
{ "label": "K32 (D3,F5)", "x": 3.25, "y": 3.25 },
{ "label": "K33 (D3,F6)", "x": 4.25, "y": 3.25 },
{ "label": "K34 (D3,F7)", "x": 5.25, "y": 3.25 },
{ "label": "K35 (D3,C7)", "x": 6.25, "y": 3.25 },
{ "label": "K36 (D3,C6)", "x": 7.25, "y": 3.25 },
{ "label": "K37 (D3,B6)", "x": 8.25, "y": 3.25 },
{ "label": "K38 (D3,B5)", "x": 9.25, "y": 3.25 },
{ "label": "K39 (D3,B4)", "x": 10.25, "y": 3.25, "w": 1.75 },
{ "label": "K3C (D3,B3)", "x": 13.5, "y": 3.25 },
{ "label": "K3D (D3,B2)", "x": 14.5, "y": 3.25 },
{ "label": "K3E (D3,B1)", "x": 15.5, "y": 3.25 },
{ "label": "K3B (D3,D6)", "x": 12.25, "y": 3.5 },
{ "label": "K40 (D5,F1)", "x": 0, "y": 4.25, "w": 1.25 },
{ "label": "K41 (D5,F4)", "x": 1.25, "y": 4.25, "w": 1.25 },
{ "label": "K42 (D5,F5)", "x": 2.5, "y": 4.25, "w": 1.25 },
{ "label": "K43 (D5,F6)", "x": 3.75, "y": 4.25, "w": 2.75 },
{ "label": "K46 (D5,C6)", "x": 6.5, "y": 4.25, "w": 2.25 },
{ "label": "K47 (D5,B6)", "x": 8.75, "y": 4.25 },
{ "label": "K48 (D5,B5)", "x": 9.75, "y": 4.25, "w": 1.25 },
{ "label": "K4D (D5,B2)", "x": 14.5, "y": 4.25 },
{ "label": "K4E (D5,B1)", "x": 15.5, "y": 4.25 },
{ "label": "K4A (D5,D7)", "x": 11.25, "y": 4.5 },
{ "label": "K4B (D5,D6)", "x": 12.25, "y": 4.5 },
{ "label": "K4C (D5,B3)", "x": 13.25, "y": 4.5 }
]
}
}
,"meta": "https://noroadsleft.github.io/kbf_qmk_converter/"
}
@@ -0,0 +1,37 @@
/* Copyright 2022 peepeetee
*
* 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_BSPC, KC_MINS, KC_EQL, KC_NLCK,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, KC_P7, KC_P8, KC_P9,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT, KC_P4, KC_P5, KC_P6,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_LSFT, KC_P1, KC_P2, KC_P3, KC_UP,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_LALT, KC_LCTL, KC_P0, KC_PDOT, KC_LEFT, KC_DOWN, KC_RGHT
),
[1] = LAYOUT(
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______,
RESET, _______, _______, _______, _______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, KC_DEL, _______, _______, _______,
_______, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, KC_SCLN, KC_QUOT, _______, _______, _______, _______,
_______, RGB_TOG, RGB_MOD, _______, _______, _______, KC_COMM, KC_DOT, KC_SLSH, _______, _______, _______, _______, KC_VOLU,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, _______
),
};
@@ -0,0 +1 @@
# The default keymap for ada1800mini
+27
View File
@@ -0,0 +1,27 @@
# ada1800mini
![ada1800mini](https://i.imgur.com/87Rn2MJh.jpeg)
A per key RGB mini 1800 keyboard
* Keyboard Maintainer: [peepeetee](https://github.com/peepeetee)
* Hardware Supported: ada1800mini
* Hardware Availability: no longer avaliable - future groupbuy possible
Make example for this keyboard (after setting up your build environment):
make ada/ada1800mini:default
Flashing example for this keyboard:
make ada/ada1800mini: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
+22
View File
@@ -0,0 +1,22 @@
# 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 = 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 = yes # Enable keyboard RGB underglow
AUDIO_ENABLE = no # Audio output
# generated by KBFirmware JSON to QMK Parser
# https://noroadsleft.github.io/kbf_qmk_converter/
+1 -2
View File
@@ -16,6 +16,5 @@
#pragma once
/* Increase polling rates and scan quantity for improved performance */
#define USB_POLLING_INTERVAL_MS 1
/* Increase scan quantity for improved performance */
#define QMK_KEYS_PER_SCAN 12
+1 -2
View File
@@ -16,6 +16,5 @@
#pragma once
/* Increase polling rates and scan quantity for improved performance */
#define USB_POLLING_INTERVAL_MS 1
/* Increase scan quantity for improved performance */
#define QMK_KEYS_PER_SCAN 12
+26 -18
View File
@@ -17,26 +17,34 @@
#include "quantum.h"
/* This a shortcut to help you visually see your layout.
*
* The first section contains all of the arguments representing the physical
* layout of the board and position of the keys.
*
* The second converts the arguments into a two-dimensional array which
* represents the switch matrix.
*/
#define XXX KC_NO
/* ┌───┐
* ┌───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬───┬───┬───┐│1E │ ┌───────┐
* │00 │01 │02 │03 │04 │05 │06 │ │07 │08 │09 │0A │0B │0C │0D │0E │└┬──┴┐ │0D │ 2u Backspace
* ┌┴───┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┘ ┌┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴───┴┐│2E │ └───────┘
* │10 │11 │12 │13 │14 │15 │ │16 │17 │18 │19 │1A │1B │1C │1D │└┬──┴┐
* ┌┴─────┼───┼───┼───┼───┼───┤ └─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─────┴┐│3E │
* │20 │21 │22 │23 │24 │25 │ │26 │27 │28 │29 │2A │2B │2C │└───┘
* ┌┴──────┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┘
* │30 │31 │32 │33 │34 │35 │ │46 │36 │37 │38 │39 │3A │3B │┌───┐
* ├─────┬──┴───┼───┴─┬─┴───┴─┬─┴─┐ ┌─┴───┴───┴┬──┴──┬┴───┴───┴──────┘│3D │
* │40 │ │42 │44 │45 │ │47 │49 │ ┌───┼───┼───┐
* └─────┘ └─────┴───────┴───┘ └──────────┴─────┘ │4C │4D │4E │
* └───┴───┴───┘
*/
#define LAYOUT( \
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, \
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, \
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2E, \
k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3D, k3E, \
k40, k42, k44, k45, k46, k47, k49, k4C, k4D, k4E \
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k1E, \
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k2E, \
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k3E, \
k30, k31, k32, k33, k34, k35, k46, k36, k37, k38, k39, k3A, k3B, k3D, \
k40, k42, k44, k45, k47, k49, k4C, k4D, k4E \
) \
{ \
{ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, XXX }, \
{ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E }, \
{ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, XXX, k2E }, \
{ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, XXX, k3D, k3E }, \
{ k40, XXX, k42, XXX, k44, k45, k46, k47, XXX, k49, XXX, XXX, k4C, k4D, k4E } \
{ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, XXX }, \
{ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E }, \
{ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, XXX, k2E }, \
{ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, XXX, k3D, k3E }, \
{ k40, XXX, k42, XXX, k44, k45, k46, k47, XXX, k49, XXX, XXX, k4C, k4D, k4E } \
}
+1 -1
View File
@@ -1,7 +1,7 @@
{
"keyboard_name": "atlas-65",
"url": "https://github.com/ryanstevensmith/atlas-65",
"maintainer": "Joshua Nguyen",
"maintainer": "ryanstevensmith, Joshua Nguyen",
"layouts": {
"LAYOUT": {
"layout": [
+20 -20
View File
@@ -17,33 +17,33 @@
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
KC_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_RSFT, KC_UP, KC_LNUM,
KC_LCTL, KC_LALT, KC_SPC, KC_LGUI, KC_B, KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT
KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_LNUM,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
KC_LCTL, KC_LALT, KC_SPC, KC_LGUI, KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT
) ,
[1] = LAYOUT(
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______,
_______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______,
_______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______
) ,
[2] = LAYOUT(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______
) ,
[3] = LAYOUT(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______
)
} ;
+20 -20
View File
@@ -17,33 +17,33 @@
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
KC_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_RSFT, KC_UP, KC_LNUM,
KC_LCTL, KC_LALT, KC_SPC, KC_LGUI, KC_B, KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT
KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_LNUM,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
KC_LCTL, KC_LALT, KC_SPC, KC_LGUI, KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT
) ,
[1] = LAYOUT(
KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
) ,
[2] = LAYOUT(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
)
} ;
+2 -2
View File
@@ -3,7 +3,7 @@
A version of an Alice Keyboard with a full sized backspace and an extra B key.
* Keyboard Maintainer: Joshua Nguyen
* Keyboard Maintainer: [Ryan Smith](https://github.com/ryanstevensmith), Joshua Nguyen
* Hardware Supported: atlas-65 keyboards
* Hardware Availability: Message Josh
@@ -23,4 +23,4 @@ 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
* **Keycode in layout**: Press the key mapped to `RESET` if it is available
-1
View File
@@ -40,7 +40,6 @@
#define SOFT_SERIAL_PIN D0
#define USB_POLLING_INTERVAL_MS 1
#define MASTER_RIGHT
// RGB matrix support
-1
View File
@@ -43,7 +43,6 @@
#define LOCKING_SUPPORT_ENABLE
#define LOCKING_RESYNC_ENABLE
#define F_SCL 400000L
#define USB_POLLING_INTERVAL_MS 1
#define MASTER_RIGHT
// RGB matrix support
+1 -1
View File
@@ -18,7 +18,7 @@
#include "quantum.h"
#define LAYOUT( \
#define LAYOUT_tkl_f13_ansi_tsangan( \
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, \
+5 -2
View File
@@ -1,9 +1,12 @@
{
"keyboard_name": "glacier",
"url": "",
"maintainer": "Tim",
"maintainer": "Timliuzhaolu",
"layout_aliases": {
"LAYOUT": "LAYOUT_tkl_f13_ansi_tsangan"
},
"layouts": {
"LAYOUT": {
"LAYOUT_tkl_f13_ansi_tsangan": {
"layout": [
{"x":0, "y":0},
{"x":1.25, "y":0},
@@ -17,7 +17,7 @@
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
[0] = LAYOUT_tkl_f13_ansi_tsangan(
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,
+2
View File
@@ -16,3 +16,5 @@ 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
LAYOUTS = tkl_f13_ansi_tsangan
-1
View File
@@ -22,7 +22,6 @@
#define VENDOR_ID 0xD60D
#define MANUFACTURER Hoksi Technology
#define USB_POLLING_INTERVAL_MS 1
#define WAIT_US_TIMER GPTD3
/* COL2ROW, ROW2COL*/
-2
View File
@@ -23,7 +23,6 @@
#define VENDOR_ID 0xD60D
#define MANUFACTURER Hoksi Technology
#define USB_POLLING_INTERVAL_MS 1
#define WAIT_US_TIMER GPTD3
/* key matrix size (rows in specific keyboard variant) */
@@ -41,7 +40,6 @@
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 5
// #define USB_POLLING_INTERVAL_MS 1
/* Bootmagic Lite key configuration */
#define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE
@@ -100,7 +100,6 @@
#define RGB_DISABLE_WHEN_USB_SUSPENDED
#define WAIT_FOR_USB
#define USB_POLLING_INTERVAL_MS 1
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 3
@@ -1,6 +1,5 @@
{
"keyboard_name": "Gizmo Engineering GK6",
"keyboard_folder": "gk6",
"url": "https://gizmo.engineering/",
"maintainer": "federicoweber",
"layouts": {
-3
View File
@@ -114,9 +114,6 @@
#define ENABLE_RGB_MATRIX_SOLID_SPLASH
#define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
/* 1000Hz USB polling - it's the default on stock firmware */
#define USB_POLLING_INTERVAL_MS 1
/* Send up to 4 key press events per scan */
#define QMK_KEYS_PER_SCAN 4
+140
View File
@@ -0,0 +1,140 @@
/* Copyright 2022 dari-studios (@dari-studios)
*
* 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 0x6473
#define PRODUCT_ID 0x4C50
#define DEVICE_VER 0x0001
#define MANUFACTURER dari-studios
#define PRODUCT lemonpad
/* key matrix size */
#define MATRIX_ROWS 2
#define MATRIX_COLS 3
/*
* 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 DIRECT_PINS { \
{ E6, D7, C6 }, \
{ B4, B5, D4 } \
}
#define UNUSED_PINS
//#define BACKLIGHT_PIN B7
//#define BACKLIGHT_LEVELS 3
//#define BACKLIGHT_BREATHING
//#define RGB_DI_PIN E2
//#ifdef RGB_DI_PIN
//# define RGBLED_NUM 16
//# define RGBLIGHT_HUE_STEP 8
//# define RGBLIGHT_SAT_STEP 8
//# define RGBLIGHT_VAL_STEP 8
//# define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
//# define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
/*== all animations enable ==*/
//# define RGBLIGHT_ANIMATIONS
/*== or choose animations ==*/
//# define RGBLIGHT_EFFECT_BREATHING
//# define RGBLIGHT_EFFECT_RAINBOW_MOOD
//# define RGBLIGHT_EFFECT_RAINBOW_SWIRL
//# define RGBLIGHT_EFFECT_SNAKE
//# define RGBLIGHT_EFFECT_KNIGHT
//# define RGBLIGHT_EFFECT_CHRISTMAS
//# define RGBLIGHT_EFFECT_STATIC_GRADIENT
//# define RGBLIGHT_EFFECT_RGB_TEST
//# define RGBLIGHT_EFFECT_ALTERNATING
/*== customize breathing effect ==*/
/*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/
//# define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64
/*==== use exp() and sin() ====*/
//# define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7
//# define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255
//#endif
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 5
/* define if matrix has ghost (lacks anti-ghosting diodes) */
//#define MATRIX_HAS_GHOST
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
/* 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
+18
View File
@@ -0,0 +1,18 @@
{
"keyboard_name": "lemonpad",
"url": "",
"maintainer": "dari-studios",
"layouts": {
"LAYOUT": {
"layout": [
{"label": "k00", "x": 0, "y": 0},
{"label": "k01", "x": 1, "y": 0},
{"label": "k02", "x": 2, "y": 0},
{"label": "k10", "x": 0, "y": 1},
{"label": "k11", "x": 1, "y": 1},
{"label": "k12", "x": 2, "y": 1}
]
}
}
}
@@ -0,0 +1,31 @@
/* Copyright 2022 dari-studios (@dari-studios)
*
* 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
/* Defines names for use in layer keycodes and the keymap*/
enum layer_names {
_BASE,
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_BASE] = LAYOUT(
KC_A, KC_B, KC_C,
KC_D, KC_E, KC_F
),
};
@@ -0,0 +1 @@
# The default keymap for lemonpad
@@ -0,0 +1,19 @@
/* Copyright 2022 dari-studios (@dari-studios)
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#define DYNAMIC_KEYMAP_LAYER_COUNT 9
@@ -0,0 +1,78 @@
/* Copyright 2022 dari-studios (@dari-studios)
*
* 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
/* Defines names for use in layer keycodes and the keymap */
enum layer_names {
_BASE,
_EMPTY1,
_EMPTY2,
_EMPTY3,
_EMPTY4,
_EMPTY5,
_EMPTY6,
_EMPTY7,
_EMPTY8
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_BASE] = LAYOUT(
KC_A, KC_B, KC_C,
KC_D, KC_E, KC_F
),
[_EMPTY1] = LAYOUT(
KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS
),
[_EMPTY2] = LAYOUT(
KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS
),
[_EMPTY3] = LAYOUT(
KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS
),
[_EMPTY4] = LAYOUT(
KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS
),
[_EMPTY5] = LAYOUT(
KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS
),
[_EMPTY6] = LAYOUT(
KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS
),
[_EMPTY7] = LAYOUT(
KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS
),
[_EMPTY8] = LAYOUT(
KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS
)
};
@@ -0,0 +1 @@
# Basic VIA config, 9 layers.
@@ -0,0 +1,2 @@
VIA_ENABLE = yes
LTO_ENABLE = yes
+17
View File
@@ -0,0 +1,17 @@
/* Copyright 2022 dari-studios (@dari-studios)
*
* 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 "lemonpad.h"
+38
View File
@@ -0,0 +1,38 @@
/* Copyright 2022 dari-studios (@dari-studios)
*
* 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.
*/
//Top 3 on the usb port side, bottom 3 on the opposite side
#define LAYOUT( \
k00, k01, k02, \
k10, k11, k12 \
) { \
{ k00, k01, k02 }, \
{ k10, k11, k12 }, \
}
+27
View File
@@ -0,0 +1,27 @@
# lemonpad
![lemonpad](https://i.imgur.com/hAp2Nich.jpeg)
This is a QMK and VIA implementation for an atmega32u4 based adaptation of the Adafruit Lemon Keypad. By default it uses a Pro Micro, if you would like to use a different microcontroller please make sure you have the correct bootloader set.
* Keyboard Maintainer: [dari-studios](https://github.com/dari-studios)
* Hardware Supported: atmega32u4 based boards with the Caterina bootloader
* Hardware Availability: https://learn.adafruit.com/qtpy-lemon-mechanical-keypad-macropad
Make example for this keyboard (after setting up your build environment):
make handwired/lemonpad:default
Flashing example for this keyboard:
make handwired/lemonpad: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
@@ -10,10 +10,11 @@ BOOTLOADER = caterina
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
CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = yes # 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
LTO_ENABLE = yes
-1
View File
@@ -43,7 +43,6 @@
#define MATRIX_COL_PINS { B6, B2, B3, B1, F7, F6, F5, F4, B0 }
#define DIODE_DIRECTION COL2ROW
#define LAYER_STATE_8BIT
#define USB_POLLING_INTERVAL_MS 1 //1000Hz polling rate
#define QMK_KEYS_PER_SCAN 12 // moar gaming code
#define RGB_DI_PIN D3
#ifdef RGB_DI_PIN
+4 -4
View File
@@ -5,16 +5,16 @@
"layouts": {
"LAYOUT": {
"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": 1},
{"x": 2, "y": 1}
{"x": 0, "y": 2},
{"x": 4, "y": 2}
]
}
}
@@ -29,7 +29,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROWS 5
#define MATRIX_COLS 13
#define DEBOUNCE 10
#define USB_POLLING_INTERVAL_MS 1
/* layer optimization */
#define LAYER_STATE_8BIT
#define MAX_LAYER 2
+4
View File
@@ -1,6 +1,7 @@
/*
Copyright 2012 Jun Wako <wakojun@gmail.com>
Copyright 2015 Jack Humbert
Copyright 2018 MakotoKurauchi
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
@@ -28,6 +29,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define TAPPING_FORCE_HOLD
#define TAPPING_TERM 100
#define SPLIT_LAYER_STATE_ENABLE
#define SPLIT_LED_STATE_ENABLE
/* Use I2C or Serial */
#define USE_SERIAL
//#define USE_MATRIX_I2C
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
@@ -1,5 +1,10 @@
#pragma once
#ifdef SPLIT_KEYBOARD
# error This is helix local split_util.h.
# error This header file is used only when SPLIT_KEYBOARD=no.
#endif
#include <stdbool.h>
#include "eeconfig.h"
@@ -14,7 +19,3 @@ void split_keyboard_setup(void);
bool is_helix_master(void);
void matrix_master_OLED_init (void);
// stubs as this is handled by legacy code
static inline void split_pre_init(void){}
static inline void split_post_init(void){}
@@ -15,14 +15,6 @@
*/
#include QMK_KEYBOARD_H
#include "bootloader.h"
#ifdef PROTOCOL_LUFA
#include "lufa.h"
#include "split_util.h"
#endif
#ifdef AUDIO_ENABLE
#include "audio.h"
#endif
// Each layer gets a name for readability, which is then used in the keymap matrix below.
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
@@ -1,3 +1,5 @@
SPLIT_KEYBOARD = yes
LTO_ENABLE = yes # if firmware size over limit, try this option
# Helix Spacific Build Options
@@ -9,4 +9,4 @@ void render_layer_state(void);
void render_logo(void);
void render_mode_icon(bool is_windows);
oled_rotation_t oled_init_user(oled_rotation_t rotation);
void oled_task_user(void);
bool oled_task_user(void);
@@ -15,15 +15,7 @@
*/
#include QMK_KEYBOARD_H
#include "util.h"
#include "bootloader.h"
#ifdef PROTOCOL_LUFA
#include "lufa.h"
#include "split_util.h"
#endif
#ifdef CONSOLE_ENABLE
#include <print.h>
#endif
#include "layer_number.h"
extern keymap_config_t keymap_config;
@@ -1,3 +1,5 @@
SPLIT_KEYBOARD = yes
CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# CONSOLE_ENABLE and COMMAND_ENABLE
@@ -5,6 +5,8 @@
# See TOP/keyboards/helix/rules.mk for a list of options that can be set.
# See TOP/docs/config_options.md for more information.
#
SPLIT_KEYBOARD = yes
LTO_ENABLE = no # if firmware size over limit, try this option
# Helix Spacific Build Options
+40 -99
View File
@@ -6,40 +6,24 @@
#
KEYBOARD_LOCAL_FEATURES_MK :=
-include $(strip $(HELIX_TOP_DIR)/rev2/override_helix_options.mk) ## File dedicated to maintenance
define HELIX_CUSTOMISE_MSG
$(info Helix Spacific Build Options)
$(info - OLED_ENABLE = $(OLED_ENABLE))
$(info - OLED_SELECT = $(OLED_SELECT))
$(info - LED_BACK_ENABLE = $(LED_BACK_ENABLE))
$(info - LED_UNDERGLOW_ENABLE = $(LED_UNDERGLOW_ENABLE))
$(info - LED_ANIMATIONS = $(LED_ANIMATIONS))
$(info - IOS_DEVICE_ENABLE = $(IOS_DEVICE_ENABLE))
$(info )
endef
define HELIX_HELP_MSG
$(info Helix keyboard convenient command line option)
$(info - make HELIX=<options> helix:<keymap>)
$(info - option= oled | core-oled | local-oled | no-oled )
$(info - back | no-back | under | na | no-ani )
$(info - ios | sc | split-common | scan | verbose)
$(info - eg.)
$(info - make HELIX=no-oled helix:<keymap>)
$(info - make HELIX=oled,no-back helix:<keymap>)
$(info - make HELIX=oled,under helix:<keymap>)
$(info - make HELIX=oled,back,na helix:<keymap>)
$(info - make HELIX=oled,back,ios helix:<keymap>)
$(info )
endef
ifneq ($(strip $(HELIX)),)
# Parse 'HELIX=xx,yy,zz' option
ifneq ($(strip $(HELIX)),)
# make HELIX=ios helix/pico:AKEYMAP
# make HELIX=no-ani helix/pico:AKEYMAP
# make HELIX=no-oled helix/pico:AKEYMAP
# make HELIX=ios,no-ani,no-oled helix/pico:AKEYMAP
define HELIX_OPTION_PARSE
# parce 'oled' 'back' 'under' 'ios' etc.
$(if $(SHOW_PARCE),$(info parse .$1.)) #debug
# parce 'no-ani' 'ios' 'no-oled'
$(if $(SHOW_PARCE),$(info parse .$1.)) #debug
$(if $(HELIX_OVERRIDE_PARSE),$(call HELIX_OVERRIDE_PARSE,$1))
ifeq ($(strip $1),help)
HELP=on
ifeq ($(strip $1),ios)
IOS_DEVICE_ENABLE = yes
endif
ifneq ($(filter na no_ani no-ani,$(strip $1)),)
LED_ANIMATIONS = no
endif
ifneq ($(filter nooled no-oled,$(strip $1)),)
OLED_ENABLE = no
@@ -47,68 +31,17 @@ endef
ifeq ($(strip $1),oled)
OLED_ENABLE = yes
endif
ifneq ($(filter core-oled core_oled newoled new-oled olednew oled-new,$(strip $1)),)
OLED_ENABLE = yes
OLED_SELECT = core
endif
ifneq ($(filter local-oled local_oled oldoled old-oled oledold oled-old,$(strip $1)),)
OLED_ENABLE = yes
OLED_SELECT = local
endif
ifneq ($(filter noback no-back nounder no-under,$(strip $1)),)
LED_BACK_ENABLE = no
LED_UNDERGLOW_ENABLE = no
endif
ifeq ($(strip $1),back)
LED_BACK_ENABLE = yes
LED_UNDERGLOW_ENABLE = no
endif
ifeq ($(strip $1),under)
LED_BACK_ENABLE = no
LED_UNDERGLOW_ENABLE = yes
endif
ifneq ($(filter na no_ani no-ani,$(strip $1)),)
LED_ANIMATIONS = no
endif
ifeq ($(strip $1),ios)
IOS_DEVICE_ENABLE = yes
endif
ifneq ($(filter sc split-common split_common,$(strip $1)),)
SPLIT_KEYBOARD = yes
endif
ifneq ($(filter nosc no-sc no-split-common no-split_common,$(strip $1)),)
SPLIT_KEYBOARD = no
endif
ifeq ($(strip $1),scan)
# use DEBUG_MATRIX_SCAN_RATE
# see docs/newbs_testing_debugging.md
OPT_DEFS += -DDEBUG_MATRIX_SCAN_RATE
CONSOLE_ENABLE = yes
SHOW_VERBOSE_INFO = yes
endif
ifeq ($(strip $1),verbose)
SHOW_VERBOSE_INFO = yes
endif
ifeq ($(strip $1),lto)
LTO_ENABLE = yes
endif
ifneq ($(filter nolto no-lto no_lto,$(strip $1)),)
LTO_ENABLE = no
endif
endef # end of HELIX_OPTION_PARSE
COMMA=,
$(eval $(foreach A_OPTION_NAME,$(subst $(COMMA), ,$(HELIX)), \
$(call HELIX_OPTION_PARSE,$(A_OPTION_NAME))))
ifeq ($(strip $(HELP)),on)
$(eval $(call HELIX_HELP_MSG))
$(error )
endif
SHOW_HELIX_OPTIONS = yes
endif
endif
ifneq ($(strip $(SPLIT_KEYBOARD)), yes)
# In the very near future, all keymaps will be compatible with split_common and this block will be removed.
SRC += local_drivers/serial.c
KEYBOARD_PATHS += $(HELIX_TOP_DIR)/local_drivers
@@ -119,9 +52,10 @@ ifneq ($(strip $(SPLIT_KEYBOARD)), yes)
CUSTOM_MATRIX = yes
SRC += rev2/matrix.c
SRC += rev2/split_util.c
SRC += rev2/split_scomm.c
SRC += rev2/custom/matrix.c
SRC += rev2/custom/split_util.c
SRC += rev2/custom/split_scomm.c
KEYBOARD_PATHS += $(HELIX_TOP_DIR)/rev2/custom
endif
########
@@ -139,7 +73,6 @@ ifeq ($(strip $(LED_BACK_ENABLE)), yes)
RGBLIGHT_ENABLE = yes
OPT_DEFS += -DRGBLED_BACK
ifeq ($(strip $(LED_UNDERGLOW_ENABLE)), yes)
$(eval $(call HELIX_CUSTOMISE_MSG))
$(error LED_BACK_ENABLE and LED_UNDERGLOW_ENABLE both 'yes')
endif
else ifeq ($(strip $(LED_UNDERGLOW_ENABLE)), yes)
@@ -164,6 +97,8 @@ ifeq ($(strip $(OLED_ENABLE)), yes)
OPT_DEFS += -DOLED_FONT_H=\"common/glcdfont.c\"
endif
else
# In the very near future, all keymaps will be compatible with QMK standard oled_driver and this block will be removed.
ifeq ($(strip $(SPLIT_KEYBOARD)), yes)
$(info Helix/rev2: The following combinations are not supported.)
$(info - SPLIT_KEYBOARD = $(SPLIT_KEYBOARD)) # yes
@@ -188,15 +123,21 @@ ifeq ($(strip $(OLED_ENABLE)), yes)
endif
ifneq ($(strip $(SHOW_HELIX_OPTIONS)),)
$(eval $(call HELIX_CUSTOMISE_MSG))
ifneq ($(strip $(SHOW_VERBOSE_INFO)),)
$(info -- RGBLIGHT_ENABLE = $(RGBLIGHT_ENABLE))
$(info -- OLED_DRIVER = $(OLED_DRIVER))
$(info -- OLED_LOCAL_ENABLE = $(OLED_LOCAL_ENABLE))
$(info -- CONSOLE_ENABLE = $(CONSOLE_ENABLE))
$(info -- OPT_DEFS = $(OPT_DEFS))
$(info -- SPLIT_KEYBOARD = $(SPLIT_KEYBOARD))
$(info -- LTO_ENABLE = $(LTO_ENABLE))
$(info )
endif
$(info Helix Spacific Build Options)
$(info - OLED_ENABLE = $(OLED_ENABLE))
$(info - OLED_SELECT = $(OLED_SELECT))
$(info - LED_BACK_ENABLE = $(LED_BACK_ENABLE))
$(info - LED_UNDERGLOW_ENABLE = $(LED_UNDERGLOW_ENABLE))
$(info - LED_ANIMATIONS = $(LED_ANIMATIONS))
$(info - IOS_DEVICE_ENABLE = $(IOS_DEVICE_ENABLE))
$(info )
$(info QMK Build Options)
$(info -- SPLIT_KEYBOARD = $(SPLIT_KEYBOARD))
$(info -- RGBLIGHT_ENABLE = $(RGBLIGHT_ENABLE))
$(info -- OLED_DRIVER = $(OLED_DRIVER))
$(info -- OLED_LOCAL_ENABLE = $(OLED_LOCAL_ENABLE))
$(info -- CONSOLE_ENABLE = $(CONSOLE_ENABLE))
$(info -- OPT_DEFS = $(OPT_DEFS))
$(info -- LTO_ENABLE = $(LTO_ENABLE))
$(info )
endif
@@ -0,0 +1,46 @@
ifneq ($(strip $(HELIX)),)
$(info -------------------------)
$(info override_helix_options.mk)
$(info -------------------------)
endif
define HELIX_OVERRIDE_PARSE
ifeq ($(strip $1),back)
LED_BACK_ENABLE = yes
LED_UNDERGLOW_ENABLE = no
endif
ifeq ($(strip $1),under)
LED_BACK_ENABLE = no
LED_UNDERGLOW_ENABLE = yes
endif
ifneq ($(filter led-off led_off noback no-back nounder no-under,$(strip $1)),)
LED_BACK_ENABLE = no
LED_UNDERGLOW_ENABLE = no
endif
ifneq ($(filter core-oled core_oled newoled new-oled olednew oled-new,$(strip $1)),)
OLED_ENABLE = yes
OLED_SELECT = core
endif
ifneq ($(filter local-oled local_oled oldoled old-oled oledold oled-old,$(strip $1)),)
OLED_ENABLE = yes
OLED_SELECT = local
endif
ifneq ($(filter sc split-common split_common,$(strip $1)),)
SPLIT_KEYBOARD = yes
endif
ifneq ($(filter nosc no-sc no-split-common no-split_common,$(strip $1)),)
SPLIT_KEYBOARD = no
endif
ifeq ($(strip $1),scan)
DEBUG_MATRIX_SCAN_RATE_ENABLE = yes
endif
ifeq ($(strip $1),scan-api)
DEBUG_MATRIX_SCAN_RATE_ENABLE = api
endif
ifeq ($(strip $1),lto)
LTO_ENABLE = yes
endif
ifneq ($(filter nolto no-lto no_lto,$(strip $1)),)
LTO_ENABLE = no
endif
endef # end of HELIX_OVERRIDE_PARSE
+15
View File
@@ -1,3 +1,18 @@
/* Copyright 2018 MakotoKurauchi
*
* 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 "helix.h"
// Each keymap.c should use is_keyboard_master() instead of 'is_master'.
+15
View File
@@ -1,3 +1,18 @@
/* Copyright 2018 MakotoKurauchi
*
* 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 "helix.h"
+2
View File
@@ -1,5 +1,7 @@
KEYBOARD_LOCAL_FEATURES_MK := $(dir $(lastword $(MAKEFILE_LIST)))local_features.mk
# SPLIT_KEYBOARD = yes
# Helix Spacific Build Options default values
HELIX_ROWS = 5 # Helix Rows is 4 or 5
OLED_ENABLE = yes # OLED_ENABLE
@@ -45,8 +45,7 @@
/* Forcing to use NKRO instead 6KRO */
#define FORCE_NKRO
/* Change USB Polling Rate to 1000hz and a larger keys per scan for elite gaming */
#define USB_POLLING_INTERVAL_MS 1
/* Change larger keys per scan for elite gaming */
#define QMK_KEYS_PER_SCAN 12
#ifdef RGB_MATRIX_ENABLE
@@ -45,8 +45,7 @@
/* Forcing to use NKRO instead 6KRO */
#define FORCE_NKRO
/* Change USB Polling Rate to 1000hz and a larger keys per scan for elite gaming */
#define USB_POLLING_INTERVAL_MS 1
/* Change larger keys per scan for elite gaming */
#define QMK_KEYS_PER_SCAN 12
#ifdef RGB_MATRIX_ENABLE
@@ -46,8 +46,7 @@
/* Forcing to use NKRO instead 6KRO */
#define FORCE_NKRO
/* Change USB Polling Rate to 1000hz and a larger keys per scan for elite gaming */
#define USB_POLLING_INTERVAL_MS 1
/* Change larger keys per scan for elite gaming */
#define QMK_KEYS_PER_SCAN 12
/* EEPROM size */
-1
View File
@@ -154,5 +154,4 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
#define USB_POLLING_INTERVAL_MS 1
#define QMK_KEYS_PER_SCAN 4
@@ -16,5 +16,4 @@
*/
#pragma once
#define USB_POLLING_INTERVAL_MS 1
#define QMK_KEYS_PER_SCAN 4
@@ -16,5 +16,4 @@
#pragma once
#define USB_POLLING_INTERVAL_MS 1
#define QMK_KEYS_PER_SCAN 12
+82 -2
View File
@@ -4,7 +4,87 @@
"maintainer": "swiftrax",
"layouts": {
"LAYOUT_all": {
"layout": [{"label":"0,0", "x":1.25, "y":0}, {"label":"1,0", "x":2.5, "y":0.25}, {"label":"0,1", "x":3.5, "y":0.25}, {"label":"1,1", "x":4.5, "y":0.25}, {"label":"0,2", "x":5.5, "y":0.25}, {"label":"1,2", "x":6.5, "y":0.25}, {"label":"0,3", "x":7.5, "y":0.25}, {"label":"1,3", "x":8.5, "y":0.25}, {"label":"0,4", "x":9.5, "y":0.25}, {"label":"1,4", "x":10.5, "y":0.25}, {"label":"0,5", "x":11.5, "y":0.25}, {"label":"1,5", "x":12.5, "y":0.25}, {"label":"0,6", "x":13.5, "y":0.25}, {"label":"1,6", "x":14.5, "y":0.25}, {"label":"0,7", "x":15.5, "y":0.25}, {"label":"1,7", "x":16.5, "y":0.25}, {"label":"2,0", "x":1.25, "y":1.25}, {"label":"3,0", "x":2.5, "y":1.25, "w":1.5}, {"label":"2,1", "x":4, "y":1.25}, {"label":"3,1", "x":5, "y":1.25}, {"label":"2,2", "x":6, "y":1.25}, {"label":"3,2", "x":7, "y":1.25}, {"label":"2,3", "x":8, "y":1.25}, {"label":"3,3", "x":9, "y":1.25}, {"label":"2,4", "x":10, "y":1.25}, {"label":"3,4", "x":11, "y":1.25}, {"label":"2,5", "x":12, "y":1.25}, {"label":"3,5", "x":13, "y":1.25}, {"label":"2,6", "x":14, "y":1.25}, {"label":"3,6", "x":15, "y":1.25}, {"label":"2,7", "x":16, "y":1.25, "w":1.5}, {"label":"4,0", "x":1.25, "y":2.25}, {"label":"5,0", "x":2.5, "y":2.25, "w":1.75}, {"label":"4,1", "x":4.25, "y":2.25}, {"label":"5,1", "x":5.25, "y":2.25}, {"label":"4,2", "x":6.25, "y":2.25}, {"label":"5,2", "x":7.25, "y":2.25}, {"label":"4,3", "x":8.25, "y":2.25}, {"label":"5,3", "x":9.25, "y":2.25}, {"label":"4,4", "x":10.25, "y":2.25}, {"label":"5,4", "x":11.25, "y":2.25}, {"label":"4,5", "x":12.25, "y":2.25}, {"label":"5,5", "x":13.25, "y":2.25}, {"label":"4,6", "x":14.25, "y":2.25}, {"label":"5,6", "x":15.25, "y":2.25}, {"label":"4,7", "x":16.25, "y":2.25, "w":1.25}, {"label":"5,7", "x":17.5, "y":2.25}, {"label":"6,0", "x":1.25, "y":3.25}, {"label":"7,0", "x":2.5, "y":3.25, "w":1.25}, {"label":"6,1", "x":3.75, "y":3.25}, {"label":"7,1", "x":4.75, "y":3.25}, {"label":"6,2", "x":5.75, "y":3.25}, {"label":"7,2", "x":6.75, "y":3.25}, {"label":"6,3", "x":7.75, "y":3.25}, {"label":"7,3", "x":8.75, "y":3.25}, {"label":"6,4", "x":9.75, "y":3.25}, {"label":"7,4", "x":10.75, "y":3.25}, {"label":"6,5", "x":11.75, "y":3.25}, {"label":"7,5", "x":12.75, "y":3.25}, {"label":"6,6", "x":13.75, "y":3.25}, {"label":"7,6", "x":14.75, "y":3.25, "w":1.75}, {"label":"6,7", "x":16.5, "y":3.25}, {"label":"7,7", "x":17.5, "y":3.25}, {"label":"8,0", "x":1.25, "y":4.25}, {"label":"9,0", "x":2.5, "y":4.25, "w":1.25}, {"label":"8,1", "x":3.75, "y":4.25, "w":1.25}, {"label":"9,1", "x":5, "y":4.25, "w":1.25}, {"label":"8,2", "x":6.25, "y":4.25, "w":2.75}, {"label":"8,3", "x":9, "y":4.25, "w":1.25}, {"label":"8,4", "x":10.25, "y":4.25, "w":2.25}, {"label":"9,5", "x":12.5, "y":4.25}, {"label":"8,6", "x":13.5, "y":4.25, "w":1.5}, {"label":"9,6", "x":15.5, "y":4.25}, {"label":"8,7", "x":16.5, "y":4.25}, {"label":"9,7", "x":17.5, "y":4.25}]
"layout": [
{"label":"Mute", "x":0, "y":0},
{"label":"Esc", "x":1.25, "y":0.25},
{"label":"1", "x":2.25, "y":0.25},
{"label":"2", "x":3.25, "y":0.25},
{"label":"3", "x":4.25, "y":0.25},
{"label":"4", "x":5.25, "y":0.25},
{"label":"5", "x":6.25, "y":0.25},
{"label":"6", "x":7.25, "y":0.25},
{"label":"7", "x":8.25, "y":0.25},
{"label":"8", "x":9.25, "y":0.25},
{"label":"9", "x":10.25, "y":0.25},
{"label":"0", "x":11.25, "y":0.25},
{"label":"-_", "x":12.25, "y":0.25},
{"label":"=+", "x":13.25, "y":0.25},
{"label":"Backspace", "x":14.25, "y":0.25},
{"label":"Backspace", "x":15.25, "y":0.25},
{"label":"F13", "x":0, "y":1.25},
{"label":"Tab", "x":1.25, "y":1.25, "w":1.5},
{"label":"Q", "x":2.75, "y":1.25},
{"label":"W", "x":3.75, "y":1.25},
{"label":"E", "x":4.75, "y":1.25},
{"label":"R", "x":5.75, "y":1.25},
{"label":"T", "x":6.75, "y":1.25},
{"label":"Y", "x":7.75, "y":1.25},
{"label":"U", "x":8.75, "y":1.25},
{"label":"I", "x":9.75, "y":1.25},
{"label":"O", "x":10.75, "y":1.25},
{"label":"P", "x":11.75, "y":1.25},
{"label":"[{", "x":12.75, "y":1.25},
{"label":"]}", "x":13.75, "y":1.25},
{"label":"\\|", "x":14.75, "y":1.25, "w":1.5},
{"label":"F14", "x":0, "y":2.25},
{"label":"Caps Lock", "x":1.25, "y":2.25, "w":1.75},
{"label":"A", "x":3, "y":2.25},
{"label":"S", "x":4, "y":2.25},
{"label":"D", "x":5, "y":2.25},
{"label":"F", "x":6, "y":2.25},
{"label":"G", "x":7, "y":2.25},
{"label":"H", "x":8, "y":2.25},
{"label":"J", "x":9, "y":2.25},
{"label":"K", "x":10, "y":2.25},
{"label":"L", "x":11, "y":2.25},
{"label":";:", "x":12, "y":2.25},
{"label":"'\"", "x":13, "y":2.25},
{"label":"Enter", "x":14, "y":2.25},
{"label":"Enter", "x":15, "y":2.25, "w":1.25},
{"label":"Insert", "x":16.25, "y":2.25},
{"label":"F15", "x":0, "y":3.25},
{"label":"Shift", "x":1.25, "y":3.25, "w":1.25},
{"label":"\\|", "x":2.5, "y":3.25},
{"label":"Z", "x":3.5, "y":3.25},
{"label":"X", "x":4.5, "y":3.25},
{"label":"C", "x":5.5, "y":3.25},
{"label":"V", "x":6.5, "y":3.25},
{"label":"B", "x":7.5, "y":3.25},
{"label":"N", "x":8.5, "y":3.25},
{"label":"M", "x":9.5, "y":3.25},
{"label":",<", "x":10.5, "y":3.25},
{"label":".>", "x":11.5, "y":3.25},
{"label":"/?", "x":12.5, "y":3.25},
{"label":"Shift", "x":13.5, "y":3.25, "w":1.75},
{"label":"\u2191", "x":15.25, "y":3.25},
{"label":"Delete", "x":16.25, "y":3.25},
{"label":"F16", "x":0, "y":4.25},
{"label":"Ctrl", "x":1.25, "y":4.25, "w":1.25},
{"label":"GUI", "x":2.5, "y":4.25, "w":1.25},
{"label":"Alt", "x":3.75, "y":4.25, "w":1.25},
{"label":"Fn", "x":5, "y":4.25, "w":2.75},
{"label":"Space", "x":7.75, "y":4.25, "w":1.25},
{"label":"Fn", "x":9, "y":4.25, "w":2.25},
{"label":"Fn", "x":11.25, "y":4.25},
{"label":"Fn", "x":12.25, "y":4.25, "w":1.5},
{"label":"\u2190", "x":14.25, "y":4.25},
{"label":"\u2193", "x":15.25, "y":4.25},
{"label":"\u2192", "x":16.25, "y":4.25}
]
}
}
}
}
-4
View File
@@ -41,10 +41,6 @@
#define IGNORE_MOD_TAP_INTERRUPT
// Reduce input latency by lowering the USB polling interval
// from its 10ms default to the 1ms minimum that USB 1.x (Full Speed) allows:
#define USB_POLLING_INTERVAL_MS 1
// The Teensy 2++ consumes about 60 mA of current at its full speed of 16 MHz as
// per https://www.pjrc.com/teensy/low_power.html
#define USB_MAX_POWER_CONSUMPTION 100
-4
View File
@@ -59,10 +59,6 @@
#define IGNORE_MOD_TAP_INTERRUPT
// Reduce input latency by lowering the USB polling interval
// from its 10ms default to the 1ms minimum that USB 1.x (Full Speed) allows:
#define USB_POLLING_INTERVAL_MS 1
// The Teensy 3.6 consumes about 80 mA of current at its full speed of 180 MHz:
// https://forum.pjrc.com/threads/47256-What-is-the-power-consumption-of-the-Teensy-3-6
#define USB_MAX_POWER_CONSUMPTION 100
-4
View File
@@ -86,10 +86,6 @@
#define IGNORE_MOD_TAP_INTERRUPT
// Reduce input latency by lowering the USB polling interval
// from its 10ms default to the 125μs minimum that USB 2.x (High Speed) allows:
#define USB_POLLING_INTERVAL_MS 1
// The Teensy 4.1 consumes about 100 mA of current at its full speed of 600 MHz
// as per https://www.pjrc.com/store/teensy41.html
#define USB_MAX_POWER_CONSUMPTION 100
@@ -44,7 +44,6 @@
/* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION ROW2COL
#define USB_POLLING_INTERVAL_MS 1
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 3
@@ -46,7 +46,6 @@
/* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION ROW2COL
#define USB_POLLING_INTERVAL_MS 1
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 3
@@ -44,7 +44,6 @@
/* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION ROW2COL
#define USB_POLLING_INTERVAL_MS 1
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 5
+1 -2
View File
@@ -23,8 +23,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MANUFACTURER Lx3
#define PRODUCT FAVE-87
/* Set 1 kHz polling rate and force USB NKRO */
#define USB_POLLING_INTERVAL_MS 1
/* Force USB NKRO */
#define FORCE_NKRO
/* key matrix size */
+1 -2
View File
@@ -23,8 +23,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MANUFACTURER Lx3
#define PRODUCT Whale-75
/* Set 1 kHz polling rate and force USB NKRO */
#define USB_POLLING_INTERVAL_MS 1
/* Force USB NKRO */
#define FORCE_NKRO
/* key matrix size */
-3
View File
@@ -46,9 +46,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION ROW2COL
#define USB_POLLING_INTERVAL_MS 1
#define LED_NUM_LOCK_PIN D7
#define LED_CAPS_LOCK_PIN D6
#define LED_SCROLL_LOCK_PIN B4
@@ -36,9 +36,6 @@
/* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION ROW2COL
#define USB_POLLING_INTERVAL_MS 1
#define LED_NUM_LOCK_PIN D7
#define LED_CAPS_LOCK_PIN D6
#define LED_SCROLL_LOCK_PIN B4
-3
View File
@@ -45,9 +45,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION ROW2COL
#define USB_POLLING_INTERVAL_MS 1
#define LED_NUM_LOCK_PIN D7
#define LED_CAPS_LOCK_PIN D6
#define LED_SCROLL_LOCK_PIN B4
+17
View File
@@ -0,0 +1,17 @@
/* Copyright 2022 Kyle McCreery
*
* 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 "bde.h"
+26
View File
@@ -0,0 +1,26 @@
/* Copyright 2022 Kyle McCreery
*
* 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"
#ifdef KEYBOARD_mechwild_bde_rev2
#include "rev2.h"
#elif KEYBOARD_mechwild_bde_lefty
#include "lefty.h"
#elif KEYBOARD_mechwild_bde_righty
#include "righty.h"
#endif
+20
View File
@@ -0,0 +1,20 @@
/*
Copyright 2022 Kyle McCreery
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"
@@ -1,13 +1,13 @@
{
"keyboard_name": "MechWild BDE Righty",
"keyboard_name": "MechWild BDE Rev2",
"url": "mechwild.com",
"maintainer": "kylemccreery",
"layouts": {
"LAYOUT": {
"layout": [
{"label":"Q", "x":0, "y":0}, {"label":"W", "x":1, "y":0}, {"label":"E", "x":2, "y":0}, {"label":"R", "x":3, "y":0}, {"label":"T", "x":4, "y":0}, {"label":"Y", "x":5, "y":0}, {"label":"U", "x":6, "y":0}, {"label":"I", "x":7, "y":0}, {"label":"O", "x":8, "y":0}, {"label":"P", "x":9, "y":0}, {"label":"0", "x":10, "y":0}, {"label":"7", "x":11, "y":0}, {"label":"8", "x":12, "y":0}, {"label":"9", "x":13, "y":0},
{"label":"A", "x":0, "y":1}, {"label":"S", "x":1, "y":1}, {"label":"D", "x":2, "y":1}, {"label":"F", "x":3, "y":1}, {"label":"G", "x":4, "y":1}, {"label":"H", "x":5, "y":1}, {"label":"J", "x":6, "y":1}, {"label":"K", "x":7, "y":1}, {"label":"L", "x":8, "y":1}, {"label":"ESC", "x":9, "y":1}, {"label":"Enter", "x":10, "y":1, "h":2}, {"label":"4", "x":11, "y":1}, {"label":"5", "x":12, "y":1}, {"label":"6", "x":13, "y":1},
{"label":"Z", "x":0, "y":2}, {"label":"X", "x":1, "y":2}, {"label":"C", "x":2, "y":2}, {"label":"V", "x":3, "y":2}, {"label":"BS", "x":4, "y":2}, {"label":"", "x":5, "y":2}, {"label":"B", "x":6, "y":2}, {"label":"N", "x":7, "y":2}, {"label":"M", "x":8, "y":2}, {"label":"ENT", "x":9, "y":2}, {"label":"1", "x":11, "y":2}, {"label":"2", "x":12, "y":2}, {"label":"3", "x":13, "y":2}
{"label":"Q", "x":0, "y":0}, {"label":"W", "x":1, "y":0}, {"label":"E", "x":2, "y":0}, {"label":"R", "x":3, "y":0}, {"label":"T", "x":4, "y":0}, {"label":"Y", "x":5, "y":0}, {"label":"U", "x":6, "y":0}, {"label":"I", "x":7, "y":0}, {"label":"O", "x":8, "y":0}, {"label":"P", "x":9, "y":0}, {"label":"7", "x":10, "y":0}, {"label":"8", "x":11, "y":0}, {"label":"9", "x":12, "y":0}, {"label":"Mute", "x":13, "y":0},
{"label":"A", "x":0, "y":1}, {"label":"S", "x":1, "y":1}, {"label":"D", "x":2, "y":1}, {"label":"F", "x":3, "y":1}, {"label":"G", "x":4, "y":1}, {"label":"H", "x":5, "y":1}, {"label":"J", "x":6, "y":1}, {"label":"K", "x":7, "y":1}, {"label":"L", "x":8, "y":1}, {"label":"ESC", "x":9, "y":1}, {"label":"4", "x":10, "y":1}, {"label":"5", "x":11, "y":1}, {"label":"6", "x":12, "y":1}, {"label":"0", "x":13, "y":1,},
{"label":"Z", "x":0, "y":2}, {"label":"X", "x":1, "y":2}, {"label":"C", "x":2, "y":2}, {"label":"V", "x":3, "y":2}, {"label":"BS", "x":4, "y":2}, {"label":"", "x":5, "y":2}, {"label":"B", "x":6, "y":2}, {"label":"N", "x":7, "y":2}, {"label":"M", "x":8, "y":2}, {"label":"ENT", "x":9, "y":2}, {"label":"1", "x":10, "y":2}, {"label":"2", "x":11, "y":2}, {"label":"3", "x":12, "y":2}, {"label":"EQL", "x":13, "y":2,}
]
}
}
@@ -0,0 +1,59 @@
/* Copyright 2022 Kyle McCreery
*
* 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
#define FN1_BSPC LT(1, KC_BSPC)
#define FN2_SPC LT(2, KC_SPC)
#define FN3_B LT(3, KC_B)
#define CTL_Z CTL_T(KC_Z)
#define ALT_X ALT_T(KC_X)
#define ALT_N ALGR_T(KC_N)
#define CTL_M RCTL_T(KC_M)
#define SFT_ENT RSFT_T(KC_ENT)
#define WIN_C LGUI_T(KC_C)
enum layer_names {
_BASE,
_FN1,
_FN2,
_FN3
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_BASE] = LAYOUT(
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_P7, KC_P8, KC_P9, KC_MUTE,
KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ESC, KC_P4, KC_P5, KC_P6, KC_P0,
CTL_Z, ALT_X, WIN_C, KC_V, FN1_BSPC, FN2_SPC, FN3_B, ALT_N, CTL_M, SFT_ENT, KC_P1, KC_P2, KC_P3, KC_MINS
),
[_FN1] = LAYOUT(
_______, _______, _______, RESET, _______, _______, KC_PSCR, KC_LBRC, KC_RBRC, KC_BSLS, KC_7, KC_8, KC_9, KC_NLCK,
_______, _______, _______, _______, _______, _______, _______, KC_GRV, KC_SCLN, KC_QUOT, KC_4, KC_5, KC_6, KC_0,
_______, _______, _______, _______, _______, KC_TAB, KC_LGUI, KC_COMM, KC_DOT, KC_SLSH, KC_1, KC_2, KC_3, KC_EQL
),
[_FN2] = LAYOUT(
_______, _______, _______, _______, _______, _______, _______, KC_LCBR, KC_RCBR, KC_PIPE, KC_AMPR, KC_ASTR, KC_LPRN, KC_CLCK,
_______, _______, _______, _______, _______, _______, _______, KC_TILD, KC_COLN, KC_DQUO, KC_DLR, KC_PERC, KC_CIRC, KC_RPRN,
_______, _______, _______, _______, KC_DEL, _______, _______, KC_LABK, KC_RABK, KC_QUES, KC_EXLM, KC_AT, KC_HASH, KC_PLUS
),
[_FN3] = 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, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
)
};
Loaded 100 of 202 files, more files were not shown because too many files have changed in this diff. Show more