Compare commits

...

11 Commits

Author SHA1 Message Date
Joel Challis ec7a9896db Default STM32G431 back to wear_leveling EFL driver 2024-08-18 16:34:22 +01:00
marksard 072947e573 Remove like_jis keymap. (#24292) 2024-08-17 21:40:45 +01:00
Wilfried JEANNIARD fe50774cb4 [Keyboard] Add/Update Pimoroni keybow 2040 (#23986)
* [Keyboard] Add pimoroni/keybow2040

* [Keyboard] Update pimoroni/keybow2040

Co-Authored-By: Less/Rikki <86894501+lesshonor@users.noreply.github.com>
Co-Authored-By: Joel Challis <git@zvecr.com>
Co-Authored-By: Sandy Macdonald <1325593+sandyjmacdonald@users.noreply.github.com>

---------

Co-authored-by: Tony Finch <dot@dotat.at>
Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Sandy Macdonald <1325593+sandyjmacdonald@users.noreply.github.com>
2024-08-15 15:22:07 +01:00
Joel Challis 39324e642f Update Discord URL (#24283) 2024-08-15 14:37:27 +01:00
Ryan b07a68230d Fix version check in Fedora install script to be >= 39 (#24281) 2024-08-15 12:10:35 +01:00
Nick Brassel dccada95aa Remove debugging prints. (#24271) 2024-08-12 23:25:29 +10:00
Nick Brassel 380e0c9cad Userspace: add support for adding environment variables during build (#22887) 2024-08-12 22:34:22 +10:00
Nick Brassel 158aaef78c ChibiOS update script updates. (#24267) 2024-08-12 20:35:56 +10:00
Andrew Kannan 5acc3b2b7b Add extra compatibility to Sat75 HS PCB (#24156) 2024-08-07 14:40:31 -06:00
stephen776 78900720fd JJ50 v2 Support (#24212)
* add support for JJ50 V2 PCB

* fix bootloader config

* update mousekey setting

* run format-json

---------

Co-authored-by: Steve Jacobs <sjacobs@truefit.io>
2024-08-07 14:34:21 -06:00
Sắn c67c3d375b Add support for bunnygirl65 (#24244)
* Add support for bunnygirl65

* Update keyboard.json

* Update keymap.c

* Update keymap.c

* Update keyboards/sawnsprojects/bunnygirl65/readme.md

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

* Update keyboards/sawnsprojects/bunnygirl65/keyboard.json

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

* Update keyboards/sawnsprojects/bunnygirl65/keyboard.json

---------

Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: jack <jack@pngu.org>
2024-08-07 14:28:41 -06:00
66 changed files with 1118 additions and 1455 deletions
+1 -1
View File
@@ -1,7 +1,7 @@
blank_issues_enabled: false
contact_links:
- name: QMK Discord
url: https://discord.gg/Uq7gcHh
url: https://discord.gg/qmk
about: Ask questions, discuss issues and features. Chill.
- name: OLKB Subreddit
url: https://www.reddit.com/r/olkb
+8 -5
View File
@@ -34,10 +34,13 @@ ifeq ($(strip $(DUMP_CI_METADATA)),yes)
endif
# Force expansion
TARGET := $(TARGET)
override TARGET := $(TARGET)
ifneq ($(FORCE_LAYOUT),)
TARGET := $(TARGET)_$(FORCE_LAYOUT)
override TARGET := $(TARGET)_$(FORCE_LAYOUT)
endif
ifneq ($(CONVERT_TO),)
override TARGET := $(TARGET)_$(CONVERT_TO)
endif
# Object files and generated keymap directory
@@ -58,9 +61,6 @@ ifdef SKIP_GIT
VERSION_H_FLAGS += --skip-git
endif
# Generate the board's version.h file.
$(shell $(QMK_BIN) generate-version-h $(VERSION_H_FLAGS) -q -o $(INTERMEDIATE_OUTPUT)/src/version.h)
# Determine which subfolders exist.
KEYBOARD_FOLDER_PATH_1 := $(KEYBOARD)
KEYBOARD_FOLDER_PATH_2 := $(patsubst %/,%,$(dir $(KEYBOARD_FOLDER_PATH_1)))
@@ -218,6 +218,9 @@ endif
include $(BUILDDEFS_PATH)/converters.mk
# Generate the board's version.h file.
$(shell $(QMK_BIN) generate-version-h $(VERSION_H_FLAGS) -q -o $(INTERMEDIATE_OUTPUT)/src/version.h)
MCU_ORIG := $(MCU)
include $(wildcard $(PLATFORM_PATH)/*/mcu_selection.mk)
-3
View File
@@ -32,9 +32,6 @@ ifneq ($(CONVERT_TO),)
PLATFORM_KEY = $(shell echo $(CONVERTER) | cut -d "/" -f2)
# force setting as value can be from environment
override TARGET := $(TARGET)_$(CONVERT_TO)
# Configure any defaults
OPT_DEFS += -DCONVERT_TO_$(shell echo $(CONVERT_TO) | tr '[:lower:]' '[:upper:]')
OPT_DEFS += -DCONVERTER_TARGET=\"$(CONVERT_TO)\"
+17 -6
View File
@@ -16,12 +16,6 @@
"type": "object",
"additionalProperties": {"type": "boolean"}
},
"build_target": {
"oneOf": [
{"$ref": "#/keyboard_keymap_tuple"},
{"$ref": "#/json_file_path"}
]
},
"filename": {
"type": "string",
"minLength": 1,
@@ -53,6 +47,19 @@
{"$ref": "#/keyboard"},
{"$ref": "#/filename"}
],
"minItems": 2,
"maxItems": 2,
"unevaluatedItems": false
},
"keyboard_keymap_env": {
"type": "array",
"prefixItems": [
{"$ref": "#/keyboard"},
{"$ref": "#/filename"},
{"$ref": "#/kvp_object"}
],
"minItems": 3,
"maxItems": 3,
"unevaluatedItems": false
},
"keycode": {
@@ -87,6 +94,10 @@
"maxLength": 7,
"pattern": "^[A-Z][A-Zs_0-9]*$"
},
"kvp_object": {
"type": "object",
"additionalProperties": {"type": "string"}
},
"layout_macro": {
"oneOf": [
{
+9 -1
View File
@@ -3,6 +3,14 @@
"$id": "qmk.user_repo.v1",
"title": "User Repository Information",
"type": "object",
"definitions": {
"build_target": {
"oneOf": [
{"$ref": "qmk.definitions.v1#/keyboard_keymap_tuple"},
{"$ref": "qmk.definitions.v1#/json_file_path"}
]
},
},
"required": [
"userspace_version",
"build_targets"
@@ -15,7 +23,7 @@
"build_targets": {
"type": "array",
"items": {
"$ref": "qmk.definitions.v1#/build_target"
"$ref": "#/definitions/build_target"
}
}
}
+31
View File
@@ -0,0 +1,31 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema#",
"$id": "qmk.user_repo.v1_1",
"title": "User Repository Information",
"type": "object",
"definitions": {
"build_target": {
"oneOf": [
{"$ref": "qmk.definitions.v1#/keyboard_keymap_tuple"},
{"$ref": "qmk.definitions.v1#/keyboard_keymap_env"},
{"$ref": "qmk.definitions.v1#/json_file_path"}
]
},
},
"required": [
"userspace_version",
"build_targets"
],
"properties": {
"userspace_version": {
"type": "string",
"enum": ["1.1"]
},
"build_targets": {
"type": "array",
"items": {
"$ref": "#/definitions/build_target"
}
}
}
}
+1 -1
View File
@@ -31,4 +31,4 @@ Commenting on your pull request and being responsive to questions, comments, and
### Ask for Help
Having your submission flagged may have caught you off guard. If you find yourself intimidated or overwhelmed, let us know. Comment on your pull request, or [reach out to the QMK team on Discord](https://discord.gg/Uq7gcHh).
Having your submission flagged may have caught you off guard. If you find yourself intimidated or overwhelmed, let us know. Comment on your pull request, or [reach out to the QMK team on Discord](https://discord.gg/qmk).
+3 -3
View File
@@ -11,7 +11,7 @@ Third-party contributions help us grow and improve QMK. We want to make the pull
## I Don't Want to Read This Whole Thing! I Just Have a Question!
If you'd like to ask questions about QMK you can do so on the [OLKB Subreddit](https://reddit.com/r/olkb) or on [Discord](https://discord.gg/Uq7gcHh).
If you'd like to ask questions about QMK you can do so on the [OLKB Subreddit](https://reddit.com/r/olkb) or on [Discord](https://discord.gg/qmk).
Please keep these things in mind:
@@ -29,7 +29,7 @@ QMK is largely written in C, with specific features and parts written in C++. It
# Where Can I Go for Help?
If you need help you can [open an issue](https://github.com/qmk/qmk_firmware/issues) or [chat on Discord](https://discord.gg/Uq7gcHh).
If you need help you can [open an issue](https://github.com/qmk/qmk_firmware/issues) or [chat on Discord](https://discord.gg/qmk).
# How Do I Make a Contribution?
@@ -128,7 +128,7 @@ We also ask that you follow these guidelines:
Before you put a lot of work into building your new feature you should make sure you are implementing it in the best way. You can get a basic understanding of QMK by reading [Understanding QMK](understanding_qmk), which will take you on a tour of the QMK program flow. From here you should talk to us to get a sense of the best way to implement your idea. There are two main ways to do this:
* [Chat on Discord](https://discord.gg/Uq7gcHh)
* [Chat on Discord](https://discord.gg/qmk)
* [Open an Issue](https://github.com/qmk/qmk_firmware/issues/new)
Feature and Bug Fix PRs affect all keyboards. We are also in the process of restructuring QMK. For this reason it is especially important for significant changes to be discussed before implementation has happened. If you open a PR without talking to us first please be prepared to do some significant rework if your choices do not mesh well with our planned direction.
+1 -1
View File
@@ -184,7 +184,7 @@ Whenever possible you should customize your keyboard by using `process_record_*(
### Example `matrix_scan_*` Implementation
This example has been deliberately omitted. You should understand enough about QMK internals to write this without an example before hooking into such a performance sensitive area. If you need help please [open an issue](https://github.com/qmk/qmk_firmware/issues/new) or [chat with us on Discord](https://discord.gg/Uq7gcHh).
This example has been deliberately omitted. You should understand enough about QMK internals to write this without an example before hooking into such a performance sensitive area. If you need help please [open an issue](https://github.com/qmk/qmk_firmware/issues/new) or [chat with us on Discord](https://discord.gg/qmk).
### `matrix_scan_*` Function Documentation
+1 -1
View File
@@ -40,7 +40,7 @@ That's amazing! We would love to assist you with that!
In fact, we have a [whole page](https://qmk.fm/powered/) dedicated to adding QMK Branding to your page and keyboard. This covers pretty much everything you need (knowledge and images) to officially support QMK.
If you have any questions about this, open an issue or head to [Discord](https://discord.gg/Uq7gcHh).
If you have any questions about this, open an issue or head to [Discord](https://discord.gg/qmk).
## What Differences Are There Between QMK and TMK?
+1 -1
View File
@@ -231,7 +231,7 @@ Once you have confirmed that the keyboard is working, if you have used a seperat
If you found this fullfilling you could experiment by adding additional features such as [in switch LEDs](https://geekhack.org/index.php?topic=94258.0), [in switch RGB](https://www.reddit.com/r/MechanicalKeyboards/comments/5s1l5u/photoskeyboard_science_i_made_a_handwired_rgb/), [RGB underglow](https://medium.com/@DavidNZ/hand-wired-custom-keyboard-cdd14429c7b3#.7a1ovebsk) or even an [OLED display!](https://www.reddit.com/r/olkb/comments/5zy7og/adding_ssd1306_oled_display_to_your_build/)
There are a lot of possibilities inside the firmware - explore [docs.qmk.fm](https://docs.qmk.fm) for a full feature list, and dive into the different keyboards to see how people use all of them. You can always stop by [the OLKB subreddit](https://reddit.com/r/olkb) or [QMK Discord](https://discord.gg/Uq7gcHh) for help!
There are a lot of possibilities inside the firmware - explore [docs.qmk.fm](https://docs.qmk.fm) for a full feature list, and dive into the different keyboards to see how people use all of them. You can always stop by [the OLKB subreddit](https://reddit.com/r/olkb) or [QMK Discord](https://discord.gg/qmk) for help!
## Links to Other Guides
+1 -1
View File
@@ -32,7 +32,7 @@ There are a lot of ways you can contribute to the QMK Community. The easiest way
* Help people out on our forums and chat rooms:
* [/r/olkb](https://www.reddit.com/r/olkb/)
* [Discord Server](https://discord.gg/Uq7gcHh)
* [Discord Server](https://discord.gg/qmk)
* Contribute to our documentation by clicking "Edit This Page" at the bottom
* [Report a bug](https://github.com/qmk/qmk_firmware/issues/new/choose)
* [Open a Pull Request](contributing)
+2 -2
View File
@@ -15,7 +15,7 @@ Different keyboards have different ways to enter this special mode. If your PCB
* Press the physical `RESET` button, usually located on the underside of the PCB
* Locate header pins on the PCB labeled `RESET` and `GND`, and short them together while plugging your PCB in
If you've attempted all of the above to no avail, and the main chip on the board says `STM32` or `RP2-B1` on it, this may be a bit more complicated. Generally your best bet is to ask on [Discord](https://discord.gg/Uq7gcHh) for assistance. It's likely some photos of the board will be asked for -- if you can get them ready beforehand it'll help move things along!
If you've attempted all of the above to no avail, and the main chip on the board says `STM32` or `RP2-B1` on it, this may be a bit more complicated. Generally your best bet is to ask on [Discord](https://discord.gg/qmk) for assistance. It's likely some photos of the board will be asked for -- if you can get them ready beforehand it'll help move things along!
Otherwise, you should see a message in yellow, similar to this in QMK Toolbox:
@@ -129,4 +129,4 @@ Congrats! Your custom firmware has been programmed to your keyboard and you're r
With a little bit of luck everything will work perfectly, but if not there are steps that will help you figure out what's wrong.
Testing your keyboard is usually pretty straightforward. Press every single key and make sure it sends the keys you expect. You can use [QMK Configurator](https://config.qmk.fm/#/test/)'s test mode to check your keyboard, even if it doesn't run QMK.
Still not working? Browse the FAQ topics for more information, or [chat with us on Discord](https://discord.gg/Uq7gcHh).
Still not working? Browse the FAQ topics for more information, or [chat with us on Discord](https://discord.gg/qmk).
+1 -1
View File
@@ -2,7 +2,7 @@
This is a non-exhaustive checklist of what the QMK Collaborators will be checking when reviewing submitted PRs.
If there are any inconsistencies with these recommendations, you're best off [creating an issue](https://github.com/qmk/qmk_firmware/issues/new) against this document, or getting in touch with a QMK Collaborator on [Discord](https://discord.gg/Uq7gcHh).
If there are any inconsistencies with these recommendations, you're best off [creating an issue](https://github.com/qmk/qmk_firmware/issues/new) against this document, or getting in touch with a QMK Collaborator on [Discord](https://discord.gg/qmk).
## Requirements for all PRs
+1 -1
View File
@@ -6,7 +6,7 @@ Please read our [Code of Conduct](https://qmk.fm/coc/) before participating in a
## Realtime Chat
If you need help with something, the best place to get quick support is going to be on our [Discord Server](https://discord.gg/Uq7gcHh). There is usually somebody online, and there are a bunch of very helpful people there.
If you need help with something, the best place to get quick support is going to be on our [Discord Server](https://discord.gg/qmk). There is usually somebody online, and there are a bunch of very helpful people there.
## OLKB Subreddit
@@ -112,8 +112,9 @@
{"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25},
{"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25},
{"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25},
{"matrix": [5, 10], "x": 10, "y": 5.25, "w": 1.5},
{"matrix": [5, 11], "x": 11.5, "y": 5.25, "w": 1.5},
{"matrix": [5, 10], "x": 10, "y": 5.25, "w": 1},
{"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1},
{"matrix": [5, 9], "x": 12, "y": 5.25, "w": 1},
{"matrix": [5, 12], "x": 13.25, "y": 5.5},
{"matrix": [5, 13], "x": 14.25, "y": 5.5},
{"matrix": [5, 14], "x": 15.25, "y": 5.5}
@@ -10,7 +10,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENTER, KC_PGUP,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RCTL, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT
),
[1] = LAYOUT_all(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, OLED_TOGG,
@@ -18,6 +18,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, CLOCK_SET,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______
QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______
)
};
@@ -10,7 +10,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENTER, KC_PGUP,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RCTL, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT
),
[1] = LAYOUT_all(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, OLED_TOGG,
@@ -18,6 +18,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, CLOCK_SET,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______
QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______
)
};
@@ -0,0 +1,125 @@
{
"manufacturer": "KPrepublic",
"keyboard_name": "JJ50 rev2",
"maintainer": "qmk",
"backlight": {
"breathing": true,
"levels": 5,
"pin": "B7"
},
"bootloader": "atmel-dfu",
"build": {
"lto": true
},
"diode_direction": "COL2ROW",
"features": {
"backlight": true,
"bootmagic": true,
"extrakey": true,
"mousekey": true,
"nkro": false,
"rgblight": true
},
"matrix_pins": {
"cols": ["B1", "B0", "F7", "F0", "C7", "C6", "B6", "B5", "B4", "D7", "D6", "D4"],
"rows": ["D3", "D5", "E6", "F1", "F4"]
},
"processor": "atmega32u4",
"rgblight": {
"animations": {
"alternating": true,
"breathing": true,
"christmas": true,
"knight": true,
"rainbow_mood": true,
"rainbow_swirl": true,
"rgb_test": true,
"snake": true,
"static_gradient": true,
"twinkle": true
},
"brightness_steps": 8,
"hue_steps": 8,
"led_count": 6,
"saturation_steps": 8
},
"url": "",
"usb": {
"device_version": "2.0.0",
"pid": "0x0050",
"vid": "0x4B50"
},
"ws2812": {
"driver": "i2c"
},
"community_layouts": ["ortho_5x12"],
"layout_aliases": {
"LAYOUT": "LAYOUT_ortho_5x12"
},
"layouts": {
"LAYOUT_ortho_5x12": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},
{"matrix": [0, 2], "x": 2, "y": 0},
{"matrix": [0, 3], "x": 3, "y": 0},
{"matrix": [0, 4], "x": 4, "y": 0},
{"matrix": [0, 5], "x": 5, "y": 0},
{"matrix": [0, 6], "x": 6, "y": 0},
{"matrix": [0, 7], "x": 7, "y": 0},
{"matrix": [0, 8], "x": 8, "y": 0},
{"matrix": [0, 9], "x": 9, "y": 0},
{"matrix": [0, 10], "x": 10, "y": 0},
{"matrix": [0, 11], "x": 11, "y": 0},
{"matrix": [1, 0], "x": 0, "y": 1},
{"matrix": [1, 1], "x": 1, "y": 1},
{"matrix": [1, 2], "x": 2, "y": 1},
{"matrix": [1, 3], "x": 3, "y": 1},
{"matrix": [1, 4], "x": 4, "y": 1},
{"matrix": [1, 5], "x": 5, "y": 1},
{"matrix": [1, 6], "x": 6, "y": 1},
{"matrix": [1, 7], "x": 7, "y": 1},
{"matrix": [1, 8], "x": 8, "y": 1},
{"matrix": [1, 9], "x": 9, "y": 1},
{"matrix": [1, 10], "x": 10, "y": 1},
{"matrix": [1, 11], "x": 11, "y": 1},
{"matrix": [2, 0], "x": 0, "y": 2},
{"matrix": [2, 1], "x": 1, "y": 2},
{"matrix": [2, 2], "x": 2, "y": 2},
{"matrix": [2, 3], "x": 3, "y": 2},
{"matrix": [2, 4], "x": 4, "y": 2},
{"matrix": [2, 5], "x": 5, "y": 2},
{"matrix": [2, 6], "x": 6, "y": 2},
{"matrix": [2, 7], "x": 7, "y": 2},
{"matrix": [2, 8], "x": 8, "y": 2},
{"matrix": [2, 9], "x": 9, "y": 2},
{"matrix": [2, 10], "x": 10, "y": 2},
{"matrix": [2, 11], "x": 11, "y": 2},
{"matrix": [3, 0], "x": 0, "y": 3},
{"matrix": [3, 1], "x": 1, "y": 3},
{"matrix": [3, 2], "x": 2, "y": 3},
{"matrix": [3, 3], "x": 3, "y": 3},
{"matrix": [3, 4], "x": 4, "y": 3},
{"matrix": [3, 5], "x": 5, "y": 3},
{"matrix": [3, 6], "x": 6, "y": 3},
{"matrix": [3, 7], "x": 7, "y": 3},
{"matrix": [3, 8], "x": 8, "y": 3},
{"matrix": [3, 9], "x": 9, "y": 3},
{"matrix": [3, 10], "x": 10, "y": 3},
{"matrix": [3, 11], "x": 11, "y": 3},
{"matrix": [4, 0], "x": 0, "y": 4},
{"matrix": [4, 1], "x": 1, "y": 4},
{"matrix": [4, 2], "x": 2, "y": 4},
{"matrix": [4, 3], "x": 3, "y": 4},
{"matrix": [4, 4], "x": 4, "y": 4},
{"matrix": [4, 5], "x": 5, "y": 4},
{"matrix": [4, 6], "x": 6, "y": 4},
{"matrix": [4, 7], "x": 7, "y": 4},
{"matrix": [4, 8], "x": 8, "y": 4},
{"matrix": [4, 9], "x": 9, "y": 4},
{"matrix": [4, 10], "x": 10, "y": 4},
{"matrix": [4, 11], "x": 11, "y": 4}
]
}
}
}
@@ -1,39 +0,0 @@
/* Copyright 2019 marksard
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
// place overrides here
#define TAPPING_TERM 200
#define TAPPING_LAYER_TERM 150 // Custom LT Tapping term
#define TAPPING_TERM_PER_KEY
#ifdef MOUSEKEY_ENABLE
#undef MOUSEKEY_INTERVAL
#define MOUSEKEY_INTERVAL 1
#undef MOUSEKEY_TIME_TO_MAX
#define MOUSEKEY_TIME_TO_MAX 150
#undef MOUSEKEY_MAX_SPEED
#define MOUSEKEY_MAX_SPEED 3
#undef MOUSEKEY_MOVE_DELTA
#define MOUSEKEY_MOVE_DELTA 4
#undef MOUSEKEY_DELAY
#define MOUSEKEY_DELAY 0
#endif
@@ -1,170 +0,0 @@
#include QMK_KEYBOARD_H
#include "keymap_japanese.h"
extern keymap_config_t keymap_config;
#ifdef RGBLIGHT_ENABLE
//Following line allows macro to read current RGB settings
extern rgblight_config_t rgblight_config;
#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.
// Layer names don't all need to be of the same length, obviously, and you can also skip them
// entirely and just use numbers.
enum layer_number {
_BASE = 0,
_LOWER,
_RAISE,
_ADJUST,
};
enum custom_keycodes {
RGBRST = SAFE_RANGE,
LOWER,
RAISE,
KANJI,
};
// enum tapdances{
// TD_CODO = 0,
// TD_SLRO,
// };
// Layer Mode aliases
#define KC_MLAD MO(_ADJUST)
// Base layer mod tap
#define KC_A_SF LSFT_T(KC_A)
#define KC_Z_CT LCTL_T(KC_Z)
#define KC_X_AL LALT_T(KC_X)
#define KC_C_GU LGUI_T(KC_C)
#define KC_SSCT RCTL_T(KC_SLSH)
#define KC_ENSF RSFT_T(KC_ENT)
// Lower layer mod tap
#define KC_F6SF LSFT_T(KC_F6)
#define KC_BSSF RSFT_T(KC_BSLS)
#define KC_11CT LCTL_T(KC_F11)
#define KC_12AL LALT_T(KC_F12)
// Layer tap
#define KC_BSLO LT(_LOWER, KC_BSPC)
#define KC_SPRA LT(_RAISE, KC_SPC)
// Tap dance
// #define KC_CODO TD(TD_CODO)
// #define KC_SLRO TD(TD_SLRO)
// tap_dance_action_t tap_dance_actions[] = {
// [TD_CODO] = ACTION_TAP_DANCE_DOUBLE(KC_COMM, KC_DOT),
// [TD_SLRO] = ACTION_TAP_DANCE_DOUBLE(KC_SLSH, JP_BSLS),
// };
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_A_SF, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENSF,
//|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
KC_Z_CT, KC_X_AL, KC_C_GU, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SSCT,
//`---------+---------+---------+---------+---------+---------+---------+---------+---------+---------'
KC_BSLO, KC_SPRA
// `---------|---------'
),
[_LOWER] = LAYOUT(
//,---------------------------------------------------------------------------------------------------.
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_MINS, KC_EQL, JP_YEN, KC_LBRC, KC_RBRC,
//|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
KC_F6SF, KC_F7, KC_F8, KC_F9, KC_F10, XXXXXXX, XXXXXXX, KC_SCLN, KC_QUOT, KC_BSSF,
//|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
KC_11CT, KC_12AL, KC_ESC, KC_TAB, KANJI, KC_DEL, XXXXXXX, XXXXXXX, KC_GRV, JP_BSLS,
//`---------+---------+---------+---------+---------+---------+---------+---------+---------+---------'
_______, KC_MLAD
// `---------|---------'
),
[_RAISE] = LAYOUT(
//,---------------------------------------------------------------------------------------------------.
KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
//|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
KC_LSFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_LSFT,
//|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
KC_LCTL, KC_LALT, KC_LGUI, XXXXXXX, XXXXXXX, KC_MINS, JP_BSLS, KC_COMM, KC_DOT, KC_SSCT,
//`---------+---------+---------+---------+---------+---------+---------+---------+---------+---------'
_______, _______
// `---------|---------'
),
[_ADJUST] = LAYOUT(
//,---------------------------------------------------------------------------------------------------.
QK_BOOT, RGBRST, AG_NORM, AG_SWAP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_INS, KC_PSCR,
//|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_NUM,
//|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, KC_BTN1, KC_BTN2, XXXXXXX, XXXXXXX, XXXXXXX,
//`---------+---------+---------+---------+---------+---------+---------+---------+---------+---------'
_______, _______
// `---------|---------'
)
};
uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case KC_BSLO:
return TAPPING_LAYER_TERM;
case KC_SPRA:
return TAPPING_LAYER_TERM;
default:
return TAPPING_TERM;
}
}
int RGB_current_mode;
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
bool result = false;
switch (keycode) {
case KANJI:
if (record->event.pressed) {
if (keymap_config.swap_lalt_lgui == false) {
register_code(KC_LNG2);
} else {
SEND_STRING(SS_LALT("`"));
}
} else {
unregister_code(KC_LNG2);
}
break;
#ifdef RGBLIGHT_ENABLE
//led operations - RGB mode change now updates the RGB_current_mode to allow the right RGB mode to be set after reactive keys are released
case RGB_MOD:
if (record->event.pressed) {
rgblight_mode(RGB_current_mode);
rgblight_step();
RGB_current_mode = rgblight_config.mode;
}
break;
case RGBRST:
if (record->event.pressed) {
eeconfig_update_rgblight_default();
rgblight_enable();
RGB_current_mode = rgblight_config.mode;
}
break;
#endif
default:
result = true;
break;
}
return result;
}
void keyboard_post_init_user(void) {
#ifdef RGBLIGHT_ENABLE
RGB_current_mode = rgblight_config.mode;
#endif
}
@@ -1,55 +0,0 @@
# JISキーボードライクなキーマップ
## 概要
 デフォルトキーマップの記号類をJISライクな配置に揃えなおしたものです。
## キーマップの見かた
qmk_firmware\tmk_core\common\keycode.h
に基本的なキーコードがあります。また、Keymap.cの上部にカスタムしたKC_で始まるものを登録しています。
Leyer Tap、Mod TapというQMKの機能を使っています。
Layer Tapはタップで指定したキー、長押しで指定したレイヤーに移動します。
LT(RAISE, KC_V) → タップでV、長押しでRAISEレイヤー移動
Mod Tapはタップで視程したキー、長押しで視程したレイヤーに移動します。
LSFT_T(KC_Z) → タップでZ、長押しで左シフト
もう少し詳しい内容についてはQMK Documentをお読みいただくかネットを検索すれば情報が載っていますので別途検索してみてください。
## 機能
 QWERTYキーマップをベースにしていて、LowerレイヤーとRaiseレイヤーに他のキーを配置しています。
 Lowerを最初し続けながらRaiseを同時押しするとAdjustレイヤーを使うことが出来ます。
## OS切り替え方法
 Adjustレイヤーにあります。LowerとRaiseを同時押しでAdjustレイヤーを使うことが出来ます。
- KNRM: QMKのーマル状態です。macだと正常に使えるはずです
- KSWP: ーマル状態のままWindowsで使用するとALTキーとGUIwinキーが逆ですので、それを入れ換えます。Windowsユーザーはこちらのモードにしてください
## IME切り替え方法
 Winの場合、LowerレイヤーにKANJIキー半角/全角 漢字がありますので、Lower+KANJIで切り替えてください。
## ソフトウェアリセットについて
 キーボードにはハードウェアのリセットボタンが付いていますが、ソフトウェアリセットをかけられます。
 LowerとRaiseを同時押しでAdjustレイヤーを使うことが出来、AdjustレイヤーのRESETを押下するとリセットがかかります。
## LEDの点灯切り替え方法
 Adjustレイヤーにあります。LowerとRaiseを同時押しでAdjustレイヤーを使うことが出来ます。
- RGBRST: LEDのリセット
- RGB_TOG: LEDのON/OFF切り替え
- RGB_MOD: LEDの光り方の変更
- RGB_HUI: Hue+ 色合いを変更
- RGB_HUD: Hue- 色合いを変更
- RGB_SAI: Saturation+ 色の濃さを変更
- RGB_SAD: Saturation- 色の濃さを変更
- RGB_VAI: Value+ 明るさを変更
- RGB_VAD: Value- 明るさを変更
@@ -1,17 +0,0 @@
# Build Options
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
# If your custom treadstone32 pcb, you can rewrite to yes.
RGBLIGHT_ENABLE = yes # LED underglow (Enable WS2812 RGB underlight.)
# Other selectable option
IOS_DEVICE_ENABLE = no # connect to IOS device (iPad,iPhone)
ifeq ($(strip $(LED_ANIMATIONS)), yes)
OPT_DEFS += -DLED_ANIMATIONS
endif
ifeq ($(strip $(IOS_DEVICE_ENABLE)), yes)
OPT_DEFS += -DIOS_DEVICE_ENABLE
endif
@@ -1,49 +0,0 @@
/* Copyright 2020 marksard
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
// place overrides here
#ifdef TAPPING_TERM
#undef TAPPING_TERM
#endif
#define TAPPING_TERM 225
#ifdef MOUSEKEY_ENABLE
#undef MOUSEKEY_INTERVAL
#define MOUSEKEY_INTERVAL 1
#undef MOUSEKEY_TIME_TO_MAX
#define MOUSEKEY_TIME_TO_MAX 150
#undef MOUSEKEY_MAX_SPEED
#define MOUSEKEY_MAX_SPEED 3
#undef MOUSEKEY_MOVE_DELTA
#define MOUSEKEY_MOVE_DELTA 4
#undef MOUSEKEY_DELAY
#define MOUSEKEY_DELAY 0
#endif
// If you use the HashTwenty(alpha), please enable USE_HASHTWENTY
// #define ANGELINA_KEYMAP
// If you plug in the USB on the right side, please enable MASTER_RIGHT
// #define RHYMESTONE_RIGHTHAND
#define OLED_FONT_H "keyboards/marksard/treadstone48/common/glcdfont.c"
@@ -1,231 +0,0 @@
/* Copyright 2020 marksard
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
#include "../common/oled_helper.h"
// 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.
// Layer names don't all need to be of the same length, obviously, and you can also skip them
// entirely and just use numbers.
enum layer_number {
_BASE = 0,
_LOWER,
_RAISE,
_ADJUST,
};
enum custom_keycodes {
LOWER = SAFE_RANGE,
RAISE,
ADJUST,
KANJI,
RGBRST
};
#define KC_TBSF LSFT_T(KC_TAB)
#define KC_ALAP LALT_T(KC_APP)
#define KC_ROSF RSFT_T(KC_INT1)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_BASE] = LAYOUT_base(
//,--------------------------------------------------------------------------------------------------------------------.
KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
//|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+-----------------|
KC_TBSF, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT,
//|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+--------+--------|
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP,
//|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+--------+--------|
KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_BSPC, KC_SPC, RAISE, KC_ALAP, KC_LEFT, KC_DOWN, KC_RGHT,
//`-------------------------------------------------------------------------------------------------------------------'
KC_ROSF
// ExtraKey: This key is an extra key. REV1 is a split back space. REV2 is to the right of the arrow-up key.
),
[_LOWER] = LAYOUT_base(
//,--------------------------------------------------------------------------------------------------------------------.
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_MINS, KC_EQL, KC_INT3, KC_LBRC, KC_RBRC, KC_DEL,
//|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+-----------------|
_______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, XXXXXXX, XXXXXXX, KC_SCLN, KC_QUOT, KC_BSLS, _______,
//|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+--------+--------|
_______, KC_F11, KC_F12, XXXXXXX, XXXXXXX, KANJI, XXXXXXX, KC_COMM, KC_DOT, KC_SLSH, KC_INT1, KC_PGUP,
//|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+--------+--------|
_______, _______, _______, _______, KC_DEL, _______, _______, XXXXXXX, KC_HOME, KC_PGDN, KC_END,
//`-------------------------------------------------------------------------------------------------------------------'
_______
// ExtraKey: This key is an extra key. REV1 is a split back space. REV2 is to the right of the arrow-up key.
),
[_RAISE] = LAYOUT_base(
//,--------------------------------------------------------------------------------------------------------------------.
_______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, XXXXXXX,
//|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+-----------------|
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_4, KC_5, KC_6, KC_QUOT, _______,
//|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+--------+--------|
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_1, KC_2, KC_3, KC_INT1, XXXXXXX,
//|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+--------+--------|
_______, _______, _______, _______, _______, _______, _______, KC_0, KC_DOT, KC_COMM, KC_SLSH,
//`-------------------------------------------------------------------------------------------------------------------'
_______
// ExtraKey: This key is an extra key. REV1 is a split back space. REV2 is to the right of the arrow-up key.
),
[_ADJUST] = LAYOUT_base(
//,--------------------------------------------------------------------------------------------------------------------.
XXXXXXX, QK_BOOT, RGBRST, AG_NORM, AG_SWAP, XXXXXXX, XXXXXXX, KC_WH_L, KC_WH_U, KC_HOME, KC_PGUP, XXXXXXX,
//|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+-----------------|
XXXXXXX, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, XXXXXXX, KC_WH_R, KC_WH_D, KC_END, KC_PGDN, XXXXXXX,
//|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+--------+--------|
_______, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX, KC_BTN1, KC_BTN2, XXXXXXX, KC_MS_U,
//|--------+--------+--------+--------+--------+--------|--------+--------+--------+--------+--------+--------+--------|
_______, _______, _______, _______, XXXXXXX, XXXXXXX, _______, XXXXXXX, KC_MS_L, KC_MS_D, KC_MS_R,
//`-------------------------------------------------------------------------------------------------------------------'
_______
// ExtraKey: This key is an extra key. REV1 is a split back space. REV2 is to the right of the arrow-up key.
)
};
#define L_BASE _BASE
#define L_LOWER (1<<_LOWER)
#define L_RAISE (1<<_RAISE)
#define L_ADJUST (1<<_ADJUST)
#define L_ADJUST_TRI (L_ADJUST|L_RAISE|L_LOWER)
#ifdef OLED_ENABLE
#include <stdio.h>
#include <string.h>
typedef struct {
uint8_t state;
char name[8];
}LAYER_DISPLAY_NAME;
#define LAYER_DISPLAY_MAX 5
const LAYER_DISPLAY_NAME layer_display_name[LAYER_DISPLAY_MAX] = {
{L_BASE, "Base"},
{L_BASE + 1, "Base"},
{L_LOWER, "Lower"},
{L_RAISE, "Raise"},
{L_ADJUST_TRI, "Adjust"}
};
static inline const char* get_leyer_status(void) {
for (uint8_t i = 0; i < LAYER_DISPLAY_MAX; ++i) {
if (layer_state == 0 && layer_display_name[i].state == default_layer_state) {
return layer_display_name[i].name;
} else if (layer_state != 0 && layer_display_name[i].state == layer_state) {
return layer_display_name[i].name;
}
}
return "?";
}
static char layer_status_buf[24] = "Layer state ready.\n";
static inline void update_keymap_status(void) {
snprintf(layer_status_buf, sizeof(layer_status_buf) - 1, "OS:%s Layer:%s\n",
keymap_config.swap_lalt_lgui? "win" : "mac", get_leyer_status());
}
static inline void render_keymap_status(void) {
oled_write(layer_status_buf, false);
}
#define UPDATE_KEYMAP_STATUS() update_keymap_status()
static inline void render_status(void) {
UPDATE_LED_STATUS();
RENDER_LED_STATUS();
render_keymap_status();
UPDATE_LOCK_STATUS();
RENDER_LOCK_STATUS();
RENDER_KEY_STATUS();
}
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
// if (is_keyboard_master())
// return OLED_ROTATION_180; // flips the display 180 degrees if offhand
return rotation;
}
bool oled_task_user(void) {
if (is_keyboard_master()) {
render_status();
} else {
render_logo();
}
return false;
}
#else
#define UPDATE_KEYMAP_STATUS()
#endif
static inline void update_change_layer(bool pressed, uint8_t layer1, uint8_t layer2, uint8_t layer3) {
pressed ? layer_on(layer1) : layer_off(layer1);
IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2) ? layer_on(layer3) : layer_off(layer3);
}
int RGB_current_mode;
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
UPDATE_KEY_STATUS(keycode, record);
bool result = false;
switch (keycode) {
case LOWER:
update_change_layer(record->event.pressed, _LOWER, _RAISE, _ADJUST);
break;
case RAISE:
update_change_layer(record->event.pressed, _RAISE, _LOWER, _ADJUST);
break;
case KANJI:
if (record->event.pressed) {
if (keymap_config.swap_lalt_lgui == false) {
register_code(KC_LNG2);
} else {
SEND_STRING(SS_LALT("`"));
}
} else {
unregister_code(KC_LNG2);
}
break;
#ifdef RGBLIGHT_ENABLE
case RGBRST:
if (record->event.pressed) {
eeconfig_update_rgblight_default();
rgblight_enable();
}
break;
#endif
default:
result = true;
break;
}
UPDATE_KEYMAP_STATUS();
return result;
}
@@ -1,75 +0,0 @@
# JISキーボードライクなキーマップ
## 概要
 デフォルトキーマップの記号類をJISライクな配置に揃えなおしたものです。
## キーマップの見かた
qmk_firmware\tmk_core\common\keycode.h
に基本的なキーコードがあります。また、Keymap.cの上部にカスタムしたKC_で始まるものを登録しています。
キーマップに書くときは「KC_」を省略して書いています。
KC_A → A
Leyer Tap、Mod Tap、Tap DanceというQMKの機能を使っています。
Layer Tapはタップで指定したキー、長押しで指定したレイヤーに移動します。
LT(RAISE, KC_V) → タップでV、長押しでRAISEレイヤー移動
Mod Tapはタップで視程したキー、長押しで視程したレイヤーに移動します。
LSFT_T(KC_Z) → タップでZ、長押しで左シフト
もう少し詳しい内容についてはQMK Documentをお読みいただくかネットを検索すれば情報が載っていますので別途検索してみてください。
## 機能
 QWERTYキーマップをベースにしていて、LowerレイヤーとRaiseレイヤーに他のキーを配置しています。
 LowerとRaiseを同時押しでAdjustレイヤーを使うことが出来ます。
 マウスキーの割り当てがありますので、もし使用したい場合はrules.mkでMOUSEKEY_ENABLE = yesにしてmakeすると使用することができます。
## 48キー目について
 このキーボードはEnterキーの上の2Uキーを1Ux2個にして使用する事が出来るようになっています。 使用する場合はキーマップの書き換えが必要です。
 各レイヤーの最下段の
```c
XXXXXXX \
// ExtraKey: This key is an extra key. REV1 is a split back space. REV2 is to the right of the arrow-up key.
```
 のXXXXXに任意のキーを入れることでPの右隣のキーとして動作するようになっています。その右隣りに従来のキーが配置されています。
## OS切り替え方法
 Adjustレイヤーにあります。LowerとRaiseを同時押しでAdjustレイヤーを使うことが出来ます。
- KNRM: QMKのーマル状態です。macだと正常に使えるはずです
- KSWP: ーマル状態のままWindowsで使用するとALTキーとGUIwinキーが逆ですので、それを入れ換えます。Windowsユーザーはこちらのモードにしてください
## NUMPADモードについて
 Lower + DLNPキーを一度押下するとNumpadモードになります。通常モードに戻す場合はDLBSキーを押下してください。
## IME切り替え方法
 Winの場合、LowerレイヤーにKANJIキー半角/全角 漢字がありますので、Lower+KANJIで切り替えてください。
## ソフトウェアリセットについて
 キーボードにはハードウェアのリセットボタンが付いていますが、ソフトウェアリセットをかけられます。
 LowerとRaiseを同時押しでAdjustレイヤーを使うことが出来、AdjustレイヤーのRSTを押下するとリセットがかかります。
## LEDの点灯切り替え方法
 Adjustレイヤーにあります。LowerとRaiseを同時押しでAdjustレイヤーを使うことが出来ます。
- RGBRST: LEDのリセット
- RGB_TOG: LEDのON/OFF切り替え
- RGB_MOD: LEDの光り方の変更
- RGB_HUI: Hue+ 色合いを変更
- RGB_HUD: Hue- 色合いを変更
- RGB_SAI: Saturation+ 色の濃さを変更
- RGB_SAD: Saturation- 色の濃さを変更
- RGB_VAI: Value+ 明るさを変更
- RGB_VAD: Value- 明るさを変更
@@ -1,8 +0,0 @@
MOUSEKEY_ENABLE = yes # Mouse keys
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
OLED_ENABLE = yes
LTO_ENABLE = yes
# If you want to change the display of OLED, you need to change here
SRC += ./common/oled_helper.c \
+17
View File
@@ -0,0 +1,17 @@
// Copyright 2024 QMK Collaborators (@qmk)
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
#define I2C_DRIVER I2CD0
#define I2C1_SDA_PIN GP4
#define I2C1_SCL_PIN GP5
#define I2C1_CLOCK_SPEED 100000
#ifdef RGB_MATRIX_ENABLE
#define RGB_MATRIX_SLEEP
#endif
+7
View File
@@ -0,0 +1,7 @@
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#define HAL_USE_I2C TRUE
#include_next <halconf.h>
+119
View File
@@ -0,0 +1,119 @@
{
"manufacturer": "Pimoroni",
"keyboard_name": "Keybow 2040",
"url": "https://shop.pimoroni.com/products/keybow-2040",
"maintainer": "fanf2",
"processor": "RP2040",
"bootloader": "rp2040",
"board": "GENERIC_RP_RP2040",
"features": {
"extrakey": true,
"mousekey": true,
"nkro": true,
"rgb_matrix": true
},
"usb": {
"device_version": "1.0.0",
"vid": "0x5069",
"pid": "0x4784"
},
"rgb_matrix": {
"driver": "is31fl3731",
"animations": {
"alphas_mods": true,
"band_pinwheel_sat": true,
"band_pinwheel_val": true,
"band_sat": true,
"band_spiral_sat": true,
"band_spiral_val": true,
"band_val": true,
"breathing": true,
"cycle_all": true,
"cycle_left_right": true,
"cycle_out_in": true,
"cycle_out_in_dual": true,
"cycle_pinwheel": true,
"cycle_spiral": true,
"cycle_up_down": true,
"digital_rain": true,
"dual_beacon": true,
"gradient_left_right": true,
"gradient_up_down": true,
"hue_breathing": true,
"hue_pendulum": true,
"hue_wave": true,
"jellybean_raindrops": true,
"multisplash": true,
"pixel_flow": true,
"pixel_fractal": true,
"pixel_rain": true,
"rainbow_beacon": true,
"rainbow_moving_chevron": true,
"rainbow_pinwheels": true,
"raindrops": true,
"solid_multisplash": true,
"solid_reactive": true,
"solid_reactive_cross": true,
"solid_reactive_multicross": true,
"solid_reactive_multinexus": true,
"solid_reactive_multiwide": true,
"solid_reactive_nexus": true,
"solid_reactive_simple": true,
"solid_reactive_wide": true,
"solid_splash": true,
"splash": true,
"typing_heatmap": true
},
"center_point": [112, 112],
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
{"matrix": [0, 1], "x": 75, "y": 0, "flags": 4},
{"matrix": [0, 2], "x": 150, "y": 0, "flags": 4},
{"matrix": [0, 3], "x": 224, "y": 0, "flags": 4},
{"matrix": [1, 0], "x": 0, "y": 75, "flags": 4},
{"matrix": [1, 1], "x": 75, "y": 75, "flags": 4},
{"matrix": [1, 2], "x": 150, "y": 75, "flags": 4},
{"matrix": [1, 3], "x": 224, "y": 75, "flags": 4},
{"matrix": [2, 0], "x": 0, "y": 150, "flags": 4},
{"matrix": [2, 1], "x": 75, "y": 150, "flags": 4},
{"matrix": [2, 2], "x": 150, "y": 150, "flags": 4},
{"matrix": [2, 3], "x": 224, "y": 150, "flags": 4},
{"matrix": [3, 0], "x": 0, "y": 224, "flags": 4},
{"matrix": [3, 1], "x": 75, "y": 224, "flags": 4},
{"matrix": [3, 2], "x": 150, "y": 224, "flags": 4},
{"matrix": [3, 3], "x": 224, "y": 224, "flags": 4}
]
},
"matrix_pins": {
"direct": [
["GP18", "GP14", "GP10", "GP6"],
["GP19", "GP15", "GP11", "GP7"],
["GP20", "GP16", "GP12", "GP8"],
["GP21", "GP17", "GP13", "GP9"],
["GP23", null, null, null]
]
},
"layouts": {
"LAYOUT": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},
{"matrix": [0, 2], "x": 2, "y": 0},
{"matrix": [0, 3], "x": 3, "y": 0},
{"matrix": [1, 0], "x": 0, "y": 1},
{"matrix": [1, 1], "x": 1, "y": 1},
{"matrix": [1, 2], "x": 2, "y": 1},
{"matrix": [1, 3], "x": 3, "y": 1},
{"matrix": [2, 0], "x": 0, "y": 2},
{"matrix": [2, 1], "x": 1, "y": 2},
{"matrix": [2, 2], "x": 2, "y": 2},
{"matrix": [2, 3], "x": 3, "y": 2},
{"matrix": [3, 0], "x": 0, "y": 3},
{"matrix": [3, 1], "x": 1, "y": 3},
{"matrix": [3, 2], "x": 2, "y": 3},
{"matrix": [3, 3], "x": 3, "y": 3},
{"matrix": [4, 0], "x": 0, "y": 4}
]
}
}
}

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