mirror of
https://github.com/qmk/qmk_firmware.git
synced 2025-09-10 17:15:43 +00:00
Compare commits
36 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cf5ce64b1b | ||
|
|
60ac859852 | ||
|
|
45091b0473 | ||
|
|
4e2191ce20 | ||
|
|
3de04e0386 | ||
|
|
2e648d7e48 | ||
|
|
1fd0139b91 | ||
|
|
3478ae5795 | ||
|
|
01354fffb4 | ||
|
|
92c4f0095d | ||
|
|
ac8b914a11 | ||
|
|
de598ac8f0 | ||
|
|
a07360e0f1 | ||
|
|
ca425971d5 | ||
|
|
3319474c5c | ||
|
|
12d70ab1a4 | ||
|
|
e5466df800 | ||
|
|
da2e897f55 | ||
|
|
c6a93b5a56 | ||
|
|
9f04023d35 | ||
|
|
ebfa3cdd5c | ||
|
|
53f1f3b6d7 | ||
|
|
a1cb822861 | ||
|
|
edf34315af | ||
|
|
800bc78d26 | ||
|
|
576325e2f4 | ||
|
|
7641359240 | ||
|
|
e83b709169 | ||
|
|
80612c8ec0 | ||
|
|
af141d1a5c | ||
|
|
1388daa0cc | ||
|
|
d99eb01ee4 | ||
|
|
e17878ad15 | ||
|
|
daf6968947 | ||
|
|
f549b30760 | ||
|
|
a0f40d9410 |
2
.clangd
2
.clangd
@@ -1,4 +1,4 @@
|
||||
CompileFlags:
|
||||
Add: [-Wno-unknown-attributes, -Wno-maybe-uninitialized, -Wno-unknown-warning-option]
|
||||
Remove: [-W*, -mmcu=*, -mcpu=*, -mfpu=*, -mfloat-abi=*, -mno-unaligned-access, -mno-thumb-interwork, -mcall-prologues]
|
||||
Remove: [-W*, -mmcu=*, -mcpu=*, -mfpu=*, -mfloat-abi=*, -mno-unaligned-access, -mno-thumb-interwork, -mcall-prologues, -D__has_include*]
|
||||
Compiler: clang
|
||||
|
||||
2
.github/workflows/format_push.yml
vendored
2
.github/workflows/format_push.yml
vendored
@@ -39,7 +39,7 @@ jobs:
|
||||
qmk format-text -a
|
||||
git diff
|
||||
|
||||
- uses: rlespinasse/github-slug-action@v3.x
|
||||
- uses: rlespinasse/github-slug-action@v5
|
||||
|
||||
- name: Become QMK Bot
|
||||
run: |
|
||||
|
||||
2
.github/workflows/regen_push.yml
vendored
2
.github/workflows/regen_push.yml
vendored
@@ -26,7 +26,7 @@ jobs:
|
||||
util/regen.sh
|
||||
git diff
|
||||
|
||||
- uses: rlespinasse/github-slug-action@v3.x
|
||||
- uses: rlespinasse/github-slug-action@v5
|
||||
|
||||
- name: Become QMK Bot
|
||||
run: |
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"license": "GPL-2.0-or-later",
|
||||
"devDependencies": {
|
||||
"vite": "^5.4.15",
|
||||
"vite": "^5.4.18",
|
||||
"vitepress": "^1.1.0",
|
||||
"vitepress-plugin-tabs": "^0.5.0",
|
||||
"vue": "^3.4.24"
|
||||
|
||||
@@ -766,10 +766,10 @@ tabbable@^6.2.0:
|
||||
resolved "https://registry.yarnpkg.com/tabbable/-/tabbable-6.2.0.tgz#732fb62bc0175cfcec257330be187dcfba1f3b97"
|
||||
integrity sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==
|
||||
|
||||
vite@^5.2.9, vite@^5.4.15:
|
||||
version "5.4.15"
|
||||
resolved "https://registry.yarnpkg.com/vite/-/vite-5.4.15.tgz#2941547f10ebb4bf9b0fa0da863c06711eb7e5e5"
|
||||
integrity sha512-6ANcZRivqL/4WtwPGTKNaosuNJr5tWiftOC7liM7G9+rMb8+oeJeyzymDu4rTN93seySBmbjSfsS3Vzr19KNtA==
|
||||
vite@^5.2.9, vite@^5.4.18:
|
||||
version "5.4.18"
|
||||
resolved "https://registry.yarnpkg.com/vite/-/vite-5.4.18.tgz#b5af357f9d5ebb2e0c085779b7a37a77f09168a4"
|
||||
integrity sha512-1oDcnEp3lVyHCuQ2YFelM4Alm2o91xNoMncRm1U7S+JdYfYOvbiGZ3/CxGttrOu2M/KcGz7cRC2DoNUA6urmMA==
|
||||
dependencies:
|
||||
esbuild "^0.21.3"
|
||||
postcss "^8.4.43"
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
"$id": "qmk.community_module.v1",
|
||||
"title": "Community Module Information",
|
||||
"type": "object",
|
||||
"required": ["module_name", "maintainer"]
|
||||
"required": ["module_name", "maintainer"],
|
||||
"properties": {
|
||||
"module_name": {"$ref": "qmk.definitions.v1#/text_identifier"},
|
||||
"maintainer": {"$ref": "qmk.definitions.v1#/text_identifier"},
|
||||
@@ -12,6 +12,6 @@
|
||||
"format": "uri"
|
||||
},
|
||||
"keycodes": {"$ref": "qmk.definitions.v1#/keycode_decl_array"},
|
||||
"features": {"$ref": "qmk.keyboard.v1#/definitions/features_config"},
|
||||
"features": {"$ref": "qmk.keyboard.v1#/definitions/features_config"}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -30,12 +30,12 @@
|
||||
"properties": {
|
||||
"pins": {"$ref": "qmk.definitions.v1#/mcu_pin_array"}
|
||||
}
|
||||
}
|
||||
},
|
||||
"features_config": {
|
||||
"$ref": "qmk.definitions.v1#/boolean_array",
|
||||
"propertyNames": {"$ref": "qmk.definitions.v1#/snake_case"},
|
||||
"not": {"required": ["lto"]}
|
||||
},
|
||||
}
|
||||
},
|
||||
"type": "object",
|
||||
"not": {"required": ["vendorId", "productId"]}, // reject via keys...
|
||||
@@ -354,7 +354,7 @@
|
||||
"axis_resolution": {"$ref": "qmk.definitions.v1#/unsigned_int"},
|
||||
"axes": {
|
||||
"type": "object",
|
||||
"propertyNames": {"enum": ["x", "y", "z", "rx", "ry", "rz"]}
|
||||
"propertyNames": {"enum": ["x", "y", "z", "rx", "ry", "rz"]},
|
||||
"additionalProperties": {
|
||||
"oneOf": [
|
||||
{
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
],
|
||||
"properties": {
|
||||
"userspace_version": {
|
||||
"type": "string",
|
||||
},
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
{"$ref": "qmk.definitions.v1#/keyboard_keymap_tuple"},
|
||||
{"$ref": "qmk.definitions.v1#/json_file_path"}
|
||||
]
|
||||
},
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"userspace_version",
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
{"$ref": "qmk.definitions.v1#/keyboard_keymap_env"},
|
||||
{"$ref": "qmk.definitions.v1#/json_file_path"}
|
||||
]
|
||||
},
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"userspace_version",
|
||||
|
||||
@@ -401,6 +401,7 @@ This is a [make](https://www.gnu.org/software/make/manual/make.html) file that i
|
||||
* `atmel-dfu`
|
||||
* `lufa-dfu`
|
||||
* `qmk-dfu`
|
||||
* `qmk-hid`
|
||||
* `halfkay`
|
||||
* `caterina`
|
||||
* `bootloadhid`
|
||||
|
||||
@@ -227,6 +227,8 @@ For inspiration and examples, check out the built-in effects under `quantum/led_
|
||||
#define LED_MATRIX_DEFAULT_MODE LED_MATRIX_SOLID // Sets the default mode, if none has been set
|
||||
#define LED_MATRIX_DEFAULT_VAL LED_MATRIX_MAXIMUM_BRIGHTNESS // Sets the default brightness value, if none has been set
|
||||
#define LED_MATRIX_DEFAULT_SPD 127 // Sets the default animation speed, if none has been set
|
||||
#define LED_MATRIX_VAL_STEP 8 // The value by which to increment the brightness per adjustment action
|
||||
#define LED_MATRIX_SPD_STEP 16 // The value by which to increment the animation speed per adjustment action
|
||||
#define LED_MATRIX_DEFAULT_FLAGS LED_FLAG_ALL // Sets the default LED flags, if none has been set
|
||||
#define LED_MATRIX_SPLIT { X, Y } // (Optional) For split keyboards, the number of LEDs connected on each half. X = left, Y = Right.
|
||||
// If reactive effects are enabled, you also will want to enable SPLIT_TRANSPORT_MIRROR
|
||||
|
||||
@@ -378,6 +378,10 @@ These are defined in [`color.h`](https://github.com/qmk/qmk_firmware/blob/master
|
||||
#define RGB_MATRIX_DEFAULT_SAT 255 // Sets the default saturation value, if none has been set
|
||||
#define RGB_MATRIX_DEFAULT_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS // Sets the default brightness value, if none has been set
|
||||
#define RGB_MATRIX_DEFAULT_SPD 127 // Sets the default animation speed, if none has been set
|
||||
#define RGB_MATRIX_HUE_STEP 8 // The value by which to increment the hue per adjustment action
|
||||
#define RGB_MATRIX_SAT_STEP 16 // The value by which to increment the saturation per adjustment action
|
||||
#define RGB_MATRIX_VAL_STEP 16 // The value by which to increment the brightness per adjustment action
|
||||
#define RGB_MATRIX_SPD_STEP 16 // The value by which to increment the animation speed per adjustment action
|
||||
#define RGB_MATRIX_DEFAULT_FLAGS LED_FLAG_ALL // Sets the default LED flags, if none has been set
|
||||
#define RGB_MATRIX_SPLIT { X, Y } // (Optional) For split keyboards, the number of LEDs connected on each half. X = left, Y = Right.
|
||||
// If reactive effects are enabled, you also will want to enable SPLIT_TRANSPORT_MIRROR
|
||||
|
||||
@@ -97,9 +97,9 @@ Your RGB lighting can be configured by placing these `#define`s in your `config.
|
||||
|
||||
|Define |Default |Description |
|
||||
|---------------------------|----------------------------|---------------------------------------------------------------------------------------------------------------------------|
|
||||
|`RGBLIGHT_HUE_STEP` |`8` |The number of steps to cycle through the hue by |
|
||||
|`RGBLIGHT_SAT_STEP` |`17` |The number of steps to increment the saturation by |
|
||||
|`RGBLIGHT_VAL_STEP` |`17` |The number of steps to increment the brightness by |
|
||||
|`RGBLIGHT_HUE_STEP` |`8` |The value by which to increment the hue per adjustment action |
|
||||
|`RGBLIGHT_SAT_STEP` |`17` |The value by which to increment the saturation per adjustment action |
|
||||
|`RGBLIGHT_VAL_STEP` |`17` |The value by which to increment the brightness per adjustment action |
|
||||
|`RGBLIGHT_LIMIT_VAL` |`255` |The maximum brightness level |
|
||||
|`RGBLIGHT_SLEEP` |*Not defined* |If defined, the RGB lighting will be switched off when the host goes to sleep |
|
||||
|`RGBLIGHT_SPLIT` |*Not defined* |If defined, synchronization functionality for split keyboards is added |
|
||||
|
||||
@@ -413,7 +413,7 @@ Configures the [LED Matrix](features/led_matrix) feature.
|
||||
* Default: `16`
|
||||
* `led_process_limit` <Badge type="info">Number</Badge>
|
||||
* Limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness).
|
||||
* Default: `led_count / 5`
|
||||
* Default: `(led_count + 4) / 5`
|
||||
* `max_brightness` <Badge type="info">Number</Badge>
|
||||
* The maximum value which brightness is scaled to, from 0 to 255.
|
||||
* Default: `255`
|
||||
@@ -424,7 +424,7 @@ Configures the [LED Matrix](features/led_matrix) feature.
|
||||
* Turn off the LEDs when the host goes to sleep.
|
||||
* Default: `false`
|
||||
* `speed_steps` <Badge type="info">Number</Badge>
|
||||
* The number of speed adjustment steps.
|
||||
* The value by which to increment the speed.
|
||||
* Default: `16`
|
||||
* `split_count` <Badge type="info">Array: Number</Badge>
|
||||
* For split keyboards, the number of LEDs on each half.
|
||||
@@ -433,7 +433,7 @@ Configures the [LED Matrix](features/led_matrix) feature.
|
||||
* The LED activity timeout in milliseconds.
|
||||
* Default: `0` (no timeout)
|
||||
* `val_steps` <Badge type="info">Number</Badge>
|
||||
* The number of brightness adjustment steps.
|
||||
* The value by which to increment the brightness.
|
||||
* Default: `8`
|
||||
|
||||
## Matrix {#matrix}
|
||||
@@ -549,7 +549,7 @@ Configures the [RGB Lighting](features/rgblight) feature.
|
||||
}
|
||||
```
|
||||
* `brightness_steps` <Badge type="info">Number</Badge>
|
||||
* The number of brightness adjustment steps.
|
||||
* The value by which to increment the brightness.
|
||||
* Default: `17`
|
||||
* `default`
|
||||
* `animation` <Badge type="info">String</Badge>
|
||||
@@ -574,7 +574,7 @@ Configures the [RGB Lighting](features/rgblight) feature.
|
||||
* The driver to use. Must be one of `apa102`, `custom`, `ws2812`.
|
||||
* Default: `"ws2812"`
|
||||
* `hue_steps` <Badge type="info">Number</Badge>
|
||||
* The number of hue adjustment steps.
|
||||
* The value by which to increment the hue.
|
||||
* Default: `8`
|
||||
* `layers`
|
||||
* `blink` <Badge type="info">Boolean</Badge>
|
||||
@@ -593,7 +593,7 @@ Configures the [RGB Lighting](features/rgblight) feature.
|
||||
* The maximum value which the HSV "V" component is scaled to, from 0 to 255.
|
||||
* Default: `255`
|
||||
* `saturation_steps` <Badge type="info">Number</Badge>
|
||||
* The number of saturation adjustment steps.
|
||||
* The value by which to increment the suturation.
|
||||
* Default: `17`
|
||||
* `sleep` <Badge type="info">Boolean</Badge>
|
||||
* Turn off the LEDs when the host goes to sleep.
|
||||
@@ -645,7 +645,7 @@ Configures the [RGB Matrix](features/rgb_matrix) feature.
|
||||
* `driver` <Badge type="info">String</Badge> <Badge>Required</Badge>
|
||||
* The driver to use. Must be one of `aw20216s`, `custom`, `is31fl3218`, `is31fl3236`, `is31fl3729`, `is31fl3731`, `is31fl3733`, `is31fl3736`, `is31fl3737`, `is31fl3741`, `is31fl3742a`, `is31fl3743a`, `is31fl3745`, `is31fl3746a`, `snled27351`, `ws2812`.
|
||||
* `hue_steps` <Badge type="info">Number</Badge>
|
||||
* The number of hue adjustment steps.
|
||||
* The value by which to increment the hue.
|
||||
* Default: `8`
|
||||
* `layout` <Badge type="info">Array: Object</Badge> <Badge>Required</Badge>
|
||||
* List of LED configuration dictionaries. Each dictionary contains:
|
||||
@@ -664,7 +664,7 @@ Configures the [RGB Matrix](features/rgb_matrix) feature.
|
||||
* Default: `16`
|
||||
* `led_process_limit` <Badge type="info">Number</Badge>
|
||||
* Limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness).
|
||||
* Default: `led_count / 5`
|
||||
* Default: `(led_count + 4) / 5`
|
||||
* `max_brightness` <Badge type="info">Number</Badge>
|
||||
* The maximum value which the HSV "V" component is scaled to, from 0 to 255.
|
||||
* Default: `255`
|
||||
@@ -672,13 +672,13 @@ Configures the [RGB Matrix](features/rgb_matrix) feature.
|
||||
* Animations react to keyup instead of keydown.
|
||||
* Default: `false`
|
||||
* `sat_steps` <Badge type="info">Number</Badge>
|
||||
* The number of saturation adjustment steps.
|
||||
* The value by which to increment the saturation.
|
||||
* Default: `16`
|
||||
* `sleep` <Badge type="info">Boolean</Badge>
|
||||
* Turn off the LEDs when the host goes to sleep.
|
||||
* Default: `false`
|
||||
* `speed_steps` <Badge type="info">Number</Badge>
|
||||
* The number of speed adjustment steps.
|
||||
* The value by which to increment the speed.
|
||||
* Default: `16`
|
||||
* `split_count` <Badge type="info">Array: Number</Badge>
|
||||
* For split keyboards, the number of LEDs on each half.
|
||||
@@ -687,7 +687,7 @@ Configures the [RGB Matrix](features/rgb_matrix) feature.
|
||||
* The LED activity timeout in milliseconds.
|
||||
* Default: `0` (no timeout)
|
||||
* `val_steps` <Badge type="info">Number</Badge>
|
||||
* The number of brightness adjustment steps.
|
||||
* The value by which to increment the brightness.
|
||||
* Default: `16`
|
||||
|
||||
## Secure {#secure}
|
||||
|
||||
67
keyboards/amptrics/0422/0422.c
Normal file
67
keyboards/amptrics/0422/0422.c
Normal file
@@ -0,0 +1,67 @@
|
||||
/* Copyright 2024 Vinod Chowl (@vchowl)
|
||||
*
|
||||
* 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.0 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 LED_LAYER_0 B3
|
||||
#define LED_LAYER_1 B4
|
||||
#define LED_LAYER_2 B5
|
||||
#define LED_LAYER_3 B6
|
||||
|
||||
#define LED_PINS_COUNT 4
|
||||
|
||||
pin_t pins[LED_PINS_COUNT] = {LED_LAYER_0, LED_LAYER_1, LED_LAYER_2, LED_LAYER_3};
|
||||
|
||||
|
||||
// Function to turn on all LEDs
|
||||
void turn_on_all_leds(void) {
|
||||
for (int i = 0; i < LED_PINS_COUNT; i++) {
|
||||
gpio_write_pin_high(pins[i]); // Turn on LED
|
||||
}
|
||||
}
|
||||
|
||||
// Function to turn off all LEDs
|
||||
void turn_off_all_leds(void) {
|
||||
for (int i = 0; i < LED_PINS_COUNT; i++) {
|
||||
gpio_write_pin_low(pins[i]); // Turn off LED
|
||||
}
|
||||
}
|
||||
|
||||
void update_leds_for_layer(uint8_t layer) {
|
||||
turn_off_all_leds();
|
||||
gpio_write_pin_high(pins[layer]);
|
||||
}
|
||||
|
||||
void keyboard_post_init_kb(void) {
|
||||
for (int i = 0; i < LED_PINS_COUNT; i++) {
|
||||
gpio_set_pin_output(pins[i]);
|
||||
gpio_write_pin_low(pins[i]);
|
||||
}
|
||||
|
||||
// Blink all LEDs
|
||||
turn_on_all_leds();
|
||||
wait_ms(500); // Keep LEDs on for 500ms
|
||||
turn_off_all_leds();
|
||||
|
||||
update_leds_for_layer(0); // Update LEDs to indicate the default layer
|
||||
keyboard_post_init_user();
|
||||
}
|
||||
|
||||
layer_state_t layer_state_set_kb(layer_state_t state) {
|
||||
uint8_t layer = get_highest_layer(state);
|
||||
update_leds_for_layer(layer);
|
||||
return layer_state_set_user(state);
|
||||
}
|
||||
5
keyboards/amptrics/0422/config.h
Normal file
5
keyboards/amptrics/0422/config.h
Normal file
@@ -0,0 +1,5 @@
|
||||
// Copyright 2025 QMK
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
#pragma once
|
||||
|
||||
#define DYNAMIC_KEYMAP_MACRO_COUNT 36
|
||||
40
keyboards/amptrics/0422/keyboard.json
Normal file
40
keyboards/amptrics/0422/keyboard.json
Normal file
@@ -0,0 +1,40 @@
|
||||
{
|
||||
"manufacturer": "Amptrics Technologies",
|
||||
"keyboard_name": "Amptrics 0422",
|
||||
"maintainer": "vchowl",
|
||||
"bootloader": "stm32-dfu",
|
||||
"diode_direction": "ROW2COL",
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
"nkro": true
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["C8", "C7", "C6"],
|
||||
"rows": ["A14", "A13", "A10", "A9"]
|
||||
},
|
||||
"processor": "STM32F072",
|
||||
"url": "",
|
||||
"usb": {
|
||||
"device_version": "1.0.0",
|
||||
"pid": "0x01A6",
|
||||
"vid": "0x616D"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [1, 0], "x": 0, "y": 1},
|
||||
{"matrix": [1, 1], "x": 1, "y": 1},
|
||||
{"matrix": [1, 2], "x": 2, "y": 1},
|
||||
{"matrix": [2, 0], "x": 0, "y": 2},
|
||||
{"matrix": [2, 1], "x": 1, "y": 2},
|
||||
{"matrix": [2, 2], "x": 2, "y": 2},
|
||||
{"matrix": [3, 0], "x": 0, "y": 3},
|
||||
{"matrix": [3, 1], "x": 1, "y": 3},
|
||||
{"matrix": [3, 2], "x": 2, "y": 3}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
58
keyboards/amptrics/0422/keymaps/default/keymap.c
Normal file
58
keyboards/amptrics/0422/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,58 @@
|
||||
/* Copyright 2024 Vinod Chowl (@vchowl)
|
||||
*
|
||||
* 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.0 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] = {
|
||||
/*
|
||||
* ┌───┐
|
||||
* │Tog│
|
||||
* ├───┼───┬───┐
|
||||
* │ 7 │ 8 │ 9 │
|
||||
* ├───┼───┼───┤
|
||||
* │ 4 │ 5 │ 6 │
|
||||
* ├───┼───┼───┤
|
||||
* │ 1 │ 2 │ 3 │
|
||||
* └───┴───┴───┘
|
||||
*/
|
||||
[0] = LAYOUT(
|
||||
TO(1),
|
||||
KC_7, KC_8, KC_9,
|
||||
KC_4, KC_5, KC_6,
|
||||
KC_1, KC_2, KC_3
|
||||
),
|
||||
|
||||
[1] = LAYOUT(
|
||||
TO(2),
|
||||
KC_A, KC_B, KC_C,
|
||||
KC_D, KC_E, KC_F,
|
||||
KC_G, KC_H, KC_I
|
||||
),
|
||||
|
||||
[2] = LAYOUT(
|
||||
TO(3),
|
||||
KC_J, KC_K, KC_L,
|
||||
KC_M, KC_N, KC_O,
|
||||
KC_P, KC_Q, KC_R
|
||||
),
|
||||
|
||||
[3] = LAYOUT(
|
||||
TO(0),
|
||||
KC_S, KC_T, KC_U,
|
||||
KC_V, KC_W, KC_X,
|
||||
KC_Y, KC_Z, KC_ENT
|
||||
)
|
||||
};
|
||||
25
keyboards/amptrics/0422/readme.md
Normal file
25
keyboards/amptrics/0422/readme.md
Normal file
@@ -0,0 +1,25 @@
|
||||
# Amptrics 0422 Programmable Keypad
|
||||
|
||||

|
||||
|
||||
* Keyboard Maintainer: [vchowl](https://github.com/vchowl)
|
||||
* Hardware Supported: STM32F072RBT6
|
||||
* Hardware Availability: Not yet available.
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make amptrics/0422:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make amptrics/0422: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 `QK_BOOT` if it is available
|
||||
@@ -23,7 +23,6 @@
|
||||
"rainbow_swirl": true,
|
||||
"snake": true,
|
||||
"knight": true,
|
||||
"christmas": true,
|
||||
"static_gradient": true,
|
||||
"rgb_test": true,
|
||||
"alternating": true,
|
||||
|
||||
@@ -4,7 +4,7 @@ ARMV = 6
|
||||
USE_FPU = no
|
||||
MCU_FAMILY = HT32
|
||||
MCU_SERIES = HT32F523xx
|
||||
MCU_LDSCRIPT = HT32F52342_ANNEPRO2
|
||||
MCU_LDSCRIPT = HT32F52342_ANNEPRO2_C15
|
||||
MCU_STARTUP = ht32f523xx
|
||||
|
||||
BOARD = ANNEPRO2_C15
|
||||
|
||||
@@ -4,7 +4,7 @@ ARMV = 6
|
||||
USE_FPU = no
|
||||
MCU_FAMILY = HT32
|
||||
MCU_SERIES = HT32F523xx
|
||||
MCU_LDSCRIPT = HT32F52342_ANNEPRO2
|
||||
MCU_LDSCRIPT = HT32F52352_ANNEPRO2_C18
|
||||
MCU_STARTUP = ht32f523xx
|
||||
|
||||
BOARD = ANNEPRO2_C18
|
||||
|
||||
92
keyboards/annepro2/ld/HT32F52352_ANNEPRO2_C18.ld
Normal file
92
keyboards/annepro2/ld/HT32F52352_ANNEPRO2_C18.ld
Normal file
@@ -0,0 +1,92 @@
|
||||
/*
|
||||
* Copyright (c) 2013-2016 Fabio UJonathan A. Kollaschtzig, http://fabioutzig.com
|
||||
* (c) 2020 Yaotian Feng (Codetector) <codetector@codetector.cn>
|
||||
* (c) 2025 Michał Kopeć <michal@nozomi.space>
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the "Software"),
|
||||
* to deal in the Software without restriction, including without limitation
|
||||
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
* and/or sell copies of the Software, and to permit persons to whom the
|
||||
* Software is furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*/
|
||||
|
||||
/*
|
||||
* HT32F52342 w/ Anne Pro 2 bootloader memory setup.
|
||||
*/
|
||||
MEMORY {
|
||||
flash0 : org = 0x00004000, len = 64k - 16k /* firmware */
|
||||
flash1 : org = 0x00000000, len = 0
|
||||
flash2 : org = 0x00000000, len = 0
|
||||
flash3 : org = 0x00000000, len = 0
|
||||
flash4 : org = 0x00000000, len = 0
|
||||
flash5 : org = 0x00000000, len = 0
|
||||
flash6 : org = 0x00000000, len = 0
|
||||
flash7 : org = 0x00000000, len = 0
|
||||
ram0 : org = 0x20000000, len = 16k /* RAM */
|
||||
ram1 : org = 0x00000000, len = 0
|
||||
ram2 : org = 0x00000000, len = 0
|
||||
ram3 : org = 0x00000000, len = 0
|
||||
ram4 : org = 0x00000000, len = 0
|
||||
ram5 : org = 0x00000000, len = 0
|
||||
ram6 : org = 0x00000000, len = 0
|
||||
ram7 : org = 0x00000000, len = 0
|
||||
}
|
||||
|
||||
/* For each data/text section two region are defined, a virtual region
|
||||
and a load region (_LMA suffix).*/
|
||||
|
||||
/* Flash region to be used for exception vectors.*/
|
||||
REGION_ALIAS("VECTORS_FLASH", flash0);
|
||||
REGION_ALIAS("VECTORS_FLASH_LMA", flash0);
|
||||
|
||||
/* Flash region to be used for constructors and destructors.*/
|
||||
REGION_ALIAS("XTORS_FLASH", flash0);
|
||||
REGION_ALIAS("XTORS_FLASH_LMA", flash0);
|
||||
|
||||
/* Flash region to be used for code text.*/
|
||||
REGION_ALIAS("TEXT_FLASH", flash0);
|
||||
REGION_ALIAS("TEXT_FLASH_LMA", flash0);
|
||||
|
||||
/* Flash region to be used for read only data.*/
|
||||
REGION_ALIAS("RODATA_FLASH", flash0);
|
||||
REGION_ALIAS("RODATA_FLASH_LMA", flash0);
|
||||
|
||||
/* Flash region to be used for various.*/
|
||||
REGION_ALIAS("VARIOUS_FLASH", flash0);
|
||||
REGION_ALIAS("VARIOUS_FLASH_LMA", flash0);
|
||||
|
||||
/* Flash region to be used for RAM(n) initialization data.*/
|
||||
REGION_ALIAS("RAM_INIT_FLASH_LMA", flash0);
|
||||
|
||||
/* RAM region to be used for Main stack. This stack accommodates the processing
|
||||
of all exceptions and interrupts.*/
|
||||
REGION_ALIAS("MAIN_STACK_RAM", ram0);
|
||||
|
||||
/* RAM region to be used for the process stack. This is the stack used by
|
||||
the main() function.*/
|
||||
REGION_ALIAS("PROCESS_STACK_RAM", ram0);
|
||||
|
||||
/* RAM region to be used for data segment.*/
|
||||
REGION_ALIAS("DATA_RAM", ram0);
|
||||
REGION_ALIAS("DATA_RAM_LMA", flash0);
|
||||
|
||||
/* RAM region to be used for BSS segment.*/
|
||||
REGION_ALIAS("BSS_RAM", ram0);
|
||||
|
||||
/* RAM region to be used for the default heap.*/
|
||||
REGION_ALIAS("HEAP_RAM", ram0);
|
||||
|
||||
/* Generic rules inclusion.*/
|
||||
INCLUDE rules.ld
|
||||
27
keyboards/cannonkeys/link/config.h
Normal file
27
keyboards/cannonkeys/link/config.h
Normal file
@@ -0,0 +1,27 @@
|
||||
/* Copyright 2024 CannonKeys */
|
||||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
|
||||
#pragma once
|
||||
|
||||
/* VBUS-routed pin for upstream detection */
|
||||
#define USB_VBUS_PIN GP27
|
||||
|
||||
#define SPLIT_HAND_PIN_LOW_IS_LEFT
|
||||
|
||||
// Configure full duplex split comms over PIO
|
||||
#define SERIAL_USART_FULL_DUPLEX
|
||||
#define SERIAL_USART_TX_PIN GP28
|
||||
#define SERIAL_USART_RX_PIN GP29
|
||||
#define SERIAL_USART_PIN_SWAP
|
||||
|
||||
/* RP2040- and hardware-specific config */
|
||||
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
|
||||
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U
|
||||
#define PICO_XOSC_STARTUP_DELAY_MULTIPLIER 64
|
||||
|
||||
/* I2C for OLEDs */
|
||||
#define I2C_DRIVER I2CD1
|
||||
#define I2C1_SDA_PIN GP14
|
||||
#define I2C1_SCL_PIN GP15
|
||||
|
||||
#define OLED_DISPLAY_64X128
|
||||
7
keyboards/cannonkeys/link/halconf.h
Normal file
7
keyboards/cannonkeys/link/halconf.h
Normal file
@@ -0,0 +1,7 @@
|
||||
// Copyright 2024 Andrew Kannan
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
#define HAL_USE_I2C TRUE
|
||||
#include_next <halconf.h>
|
||||
135
keyboards/cannonkeys/link/keyboard.json
Normal file
135
keyboards/cannonkeys/link/keyboard.json
Normal file
@@ -0,0 +1,135 @@
|
||||
{
|
||||
"manufacturer": "CannonKeys",
|
||||
"keyboard_name": "Link",
|
||||
"maintainer": "awkannan",
|
||||
"bootloader": "rp2040",
|
||||
"bootmagic": {
|
||||
"matrix": [0, 5]
|
||||
},
|
||||
"build": {
|
||||
"debounce_type": "asym_eager_defer_pk"
|
||||
},
|
||||
"diode_direction": "COL2ROW",
|
||||
"dynamic_keymap": {
|
||||
"layer_count": 6
|
||||
},
|
||||
"encoder": {
|
||||
"rotary": [
|
||||
{"pin_a": "GP12", "pin_b": "GP13", "resolution": 2}
|
||||
]
|
||||
},
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"encoder": true,
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
"nkro": true,
|
||||
"oled": true
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["GP17", "GP18", "GP19", "GP20", "GP21", "GP24"],
|
||||
"rows": ["GP25", "GP26", "GP16", "GP11", "GP10"]
|
||||
},
|
||||
"processor": "RP2040",
|
||||
"qmk": {
|
||||
"tap_keycode_delay": 10
|
||||
},
|
||||
"split": {
|
||||
"bootmagic": {
|
||||
"matrix": [5, 5]
|
||||
},
|
||||
"enabled": true,
|
||||
"handedness": {
|
||||
"pin": "GP8"
|
||||
},
|
||||
"matrix_pins": {
|
||||
"right": {
|
||||
"cols": ["GP16", "GP11", "GP10", "GP3", "GP2", "GP1"],
|
||||
"rows": ["GP9", "GP0", "GP17", "GP18", "GP19"]
|
||||
}
|
||||
},
|
||||
"serial": {
|
||||
"driver": "vendor"
|
||||
},
|
||||
"transport": {
|
||||
"sync": {
|
||||
"layer_state": true,
|
||||
"matrix_state": true,
|
||||
"oled": true,
|
||||
"wpm": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"url": "https://cannonkeys.com/",
|
||||
"usb": {
|
||||
"device_version": "0.0.1",
|
||||
"pid": "0x0038",
|
||||
"vid": "0xCA04"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
{"matrix": [0, 5], "x": 0, "y": 0},
|
||||
{"matrix": [0, 4], "x": 1, "y": 0},
|
||||
{"matrix": [0, 3], "x": 2, "y": 0},
|
||||
{"matrix": [0, 2], "x": 3, "y": 0},
|
||||
{"matrix": [0, 1], "x": 4, "y": 0},
|
||||
{"matrix": [0, 0], "x": 5, "y": 0},
|
||||
{"matrix": [5, 0], "x": 11, "y": 0},
|
||||
{"matrix": [5, 1], "x": 12, "y": 0},
|
||||
{"matrix": [5, 2], "x": 13, "y": 0},
|
||||
{"matrix": [5, 3], "x": 14, "y": 0},
|
||||
{"matrix": [5, 4], "x": 15, "y": 0},
|
||||
{"matrix": [5, 5], "x": 16, "y": 0},
|
||||
{"matrix": [1, 5], "x": 0, "y": 1},
|
||||
{"matrix": [1, 4], "x": 1, "y": 1},
|
||||
{"matrix": [1, 3], "x": 2, "y": 1},
|
||||
{"matrix": [1, 2], "x": 3, "y": 1},
|
||||
{"matrix": [1, 1], "x": 4, "y": 1},
|
||||
{"matrix": [1, 0], "x": 5, "y": 1},
|
||||
{"matrix": [6, 0], "x": 11, "y": 1},
|
||||
{"matrix": [6, 1], "x": 12, "y": 1},
|
||||
{"matrix": [6, 2], "x": 13, "y": 1},
|
||||
{"matrix": [6, 3], "x": 14, "y": 1},
|
||||
{"matrix": [6, 4], "x": 15, "y": 1},
|
||||
{"matrix": [6, 5], "x": 16, "y": 1},
|
||||
{"matrix": [2, 5], "x": 0, "y": 2},
|
||||
{"matrix": [2, 4], "x": 1, "y": 2},
|
||||
{"matrix": [2, 3], "x": 2, "y": 2},
|
||||
{"matrix": [2, 2], "x": 3, "y": 2},
|
||||
{"matrix": [2, 1], "x": 4, "y": 2},
|
||||
{"matrix": [2, 0], "x": 5, "y": 2},
|
||||
{"matrix": [7, 0], "x": 11, "y": 2},
|
||||
{"matrix": [7, 1], "x": 12, "y": 2},
|
||||
{"matrix": [7, 2], "x": 13, "y": 2},
|
||||
{"matrix": [7, 3], "x": 14, "y": 2},
|
||||
{"matrix": [7, 4], "x": 15, "y": 2},
|
||||
{"matrix": [7, 5], "x": 16, "y": 2},
|
||||
{"matrix": [3, 5], "x": 0, "y": 3},
|
||||
{"matrix": [3, 4], "x": 1, "y": 3},
|
||||
{"matrix": [3, 3], "x": 2, "y": 3},
|
||||
{"matrix": [3, 2], "x": 3, "y": 3},
|
||||
{"matrix": [3, 1], "x": 4, "y": 3},
|
||||
{"matrix": [3, 0], "x": 5, "y": 3},
|
||||
{"matrix": [4, 5], "x": 6, "y": 3},
|
||||
{"matrix": [9, 5], "x": 10, "y": 3},
|
||||
{"matrix": [8, 0], "x": 11, "y": 3},
|
||||
{"matrix": [8, 1], "x": 12, "y": 3},
|
||||
{"matrix": [8, 2], "x": 13, "y": 3},
|
||||
{"matrix": [8, 3], "x": 14, "y": 3},
|
||||
{"matrix": [8, 4], "x": 15, "y": 3},
|
||||
{"matrix": [8, 5], "x": 16, "y": 3},
|
||||
{"matrix": [4, 4], "x": 2, "y": 4},
|
||||
{"matrix": [4, 3], "x": 3, "y": 4},
|
||||
{"matrix": [4, 2], "x": 4, "y": 4},
|
||||
{"matrix": [4, 1], "x": 5, "y": 4},
|
||||
{"matrix": [4, 0], "x": 6, "y": 4, "h": 1.5},
|
||||
{"matrix": [9, 0], "x": 10, "y": 4, "h": 1.5},
|
||||
{"matrix": [9, 1], "x": 11, "y": 4},
|
||||
{"matrix": [9, 2], "x": 12, "y": 4},
|
||||
{"matrix": [9, 3], "x": 13, "y": 4},
|
||||
{"matrix": [9, 4], "x": 14, "y": 4}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
31
keyboards/cannonkeys/link/keymaps/default/keymap.c
Normal file
31
keyboards/cannonkeys/link/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,31 @@
|
||||
// Copyright 2025 Andrew Kannan (awkannan)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[0] = LAYOUT(
|
||||
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_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
|
||||
KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_MUTE, KC_MPLY, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
|
||||
KC_LGUI, KC_LALT, KC_LCTL, MO(1), KC_ENT, KC_SPC, MO(2), KC_RCTL, KC_RALT, KC_RGUI
|
||||
),
|
||||
|
||||
[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_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_F12,
|
||||
KC_WREF, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_PIPE,
|
||||
KC_TRNS, KC_EQL, KC_MINS, KC_PLUS, KC_LCBR, KC_RCBR, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_DOT, KC_COLN, KC_BSLS, 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,
|
||||
QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_INS, KC_DEL,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGDN, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_CAPS, KC_PGUP, KC_MPRV, KC_MNXT, KC_PSCR, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
)
|
||||
};
|
||||
93
keyboards/cannonkeys/link/link.c
Normal file
93
keyboards/cannonkeys/link/link.c
Normal file
@@ -0,0 +1,93 @@
|
||||
// Copyright 2025 Andrew Kannan (awkannan)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include "quantum.h"
|
||||
|
||||
#ifdef OLED_ENABLE
|
||||
oled_rotation_t oled_init_kb(oled_rotation_t rotation) {
|
||||
if (is_keyboard_master()) {
|
||||
return OLED_ROTATION_0;
|
||||
} else {
|
||||
return OLED_ROTATION_90;
|
||||
}
|
||||
return rotation;
|
||||
}
|
||||
|
||||
static void render_logo(void) {
|
||||
static const char PROGMEM qmk_logo[] = {
|
||||
0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94,
|
||||
0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4,
|
||||
0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,0
|
||||
};
|
||||
oled_write_P(qmk_logo, false);
|
||||
}
|
||||
|
||||
void print_status_narrow(void) {
|
||||
oled_write_P(PSTR("\n\n"), false);
|
||||
switch (get_highest_layer(layer_state)) {
|
||||
case 0:
|
||||
oled_write_ln_P(PSTR("Qwrt"), false);
|
||||
break;
|
||||
case 1:
|
||||
oled_write_ln_P(PSTR("Clmk"), false);
|
||||
break;
|
||||
default:
|
||||
oled_write_P(PSTR("Mod\n"), false);
|
||||
break;
|
||||
}
|
||||
oled_write_P(PSTR("\n\n"), false);
|
||||
oled_write_ln_P(PSTR("LAYER"), false);
|
||||
switch (get_highest_layer(layer_state)) {
|
||||
case 0:
|
||||
case 1:
|
||||
oled_write_P(PSTR("Base\n"), false);
|
||||
break;
|
||||
case 2:
|
||||
oled_write_P(PSTR("Raise"), false);
|
||||
break;
|
||||
case 3:
|
||||
oled_write_P(PSTR("Lower"), false);
|
||||
break;
|
||||
default:
|
||||
oled_write_ln_P(PSTR("Undef"), false);
|
||||
}
|
||||
oled_write_P(PSTR("\n\n"), false);
|
||||
led_t led_usb_state = host_keyboard_led_state();
|
||||
oled_write_ln_P(PSTR("CPSLK"), led_usb_state.caps_lock);
|
||||
}
|
||||
|
||||
bool oled_task_kb(void) {
|
||||
if (!oled_task_user()) {
|
||||
return false;
|
||||
}
|
||||
if (is_keyboard_master()) {
|
||||
print_status_narrow();
|
||||
} else {
|
||||
render_logo();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef ENCODER_ENABLE
|
||||
bool encoder_update_kb(uint8_t index, bool clockwise) {
|
||||
if (!encoder_update_user(index, clockwise)) {
|
||||
return false;
|
||||
}
|
||||
if (index == 0) {
|
||||
if (clockwise) {
|
||||
tap_code(KC_VOLU);
|
||||
} else {
|
||||
tap_code(KC_VOLD);
|
||||
}
|
||||
} else if (index == 1) {
|
||||
if (clockwise) {
|
||||
tap_code(KC_PGDN);
|
||||
} else {
|
||||
tap_code(KC_PGUP);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
#endif
|
||||
27
keyboards/cannonkeys/link/readme.md
Normal file
27
keyboards/cannonkeys/link/readme.md
Normal file
@@ -0,0 +1,27 @@
|
||||
# Link
|
||||
|
||||
The Link is a Sofle58 inspired Ergo Split keyboard from CannonKeys.
|
||||
It uses 1.3" SH1107 screens and ALPS EC11 compatible encoders.
|
||||
|
||||
* Keyboard Maintainer: [Andrew Kannan](https://github.com/awkannan)
|
||||
* Hardware Supported: RP2040
|
||||
* Hardware Availability: [CannonKeys](https://cannonkeys.com)
|
||||
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make cannonkeys/link:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make cannonkeys/link: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 top-most and outer-most key in the matrix and plug in the keyboard
|
||||
* **Physical reset button**: Hold the "BOOTMODE" button on the back of the PCB and briefly press the "RESET" button on the back of the PCB
|
||||
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
|
||||
25
keyboards/cipulot/ok_1/config.h
Normal file
25
keyboards/cipulot/ok_1/config.h
Normal file
@@ -0,0 +1,25 @@
|
||||
/* Copyright 2024 Cipulot
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
// PWM driver with direct memory access (DMA) support
|
||||
#define WS2812_PWM_COMPLEMENTARY_OUTPUT
|
||||
#define WS2812_PWM_DRIVER PWMD1
|
||||
#define WS2812_PWM_CHANNEL 1
|
||||
#define WS2812_PWM_PAL_MODE 2
|
||||
#define WS2812_DMA_STREAM STM32_DMA1_STREAM5
|
||||
#define WS2812_DMA_CHANNEL 6
|
||||
22
keyboards/cipulot/ok_1/halconf.h
Normal file
22
keyboards/cipulot/ok_1/halconf.h
Normal file
@@ -0,0 +1,22 @@
|
||||
/* Copyright 2024 Cipulot
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#define HAL_USE_PAL TRUE
|
||||
#define HAL_USE_PWM TRUE
|
||||
|
||||
#include_next <halconf.h>
|
||||
255
keyboards/cipulot/ok_1/keyboard.json
Normal file
255
keyboards/cipulot/ok_1/keyboard.json
Normal file
@@ -0,0 +1,255 @@
|
||||
{
|
||||
"manufacturer": "Cipulot",
|
||||
"keyboard_name": "OK-1",
|
||||
"maintainer": "Cipulot",
|
||||
"bootloader": "stm32-dfu",
|
||||
"build": {
|
||||
"lto": true
|
||||
},
|
||||
"diode_direction": "COL2ROW",
|
||||
"features": {
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
"nkro": true,
|
||||
"rgb_matrix": true
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["B10", "B2", "B1", "B0", "A7", "A6", "A5", "A1", "A0", "F1", "F0", "C15", "A4", "A3"],
|
||||
"rows": ["B11", "A2", "B9", "B8", "B7", "B6"]
|
||||
},
|
||||
"processor": "STM32F072",
|
||||
"qmk": {
|
||||
"locking": {
|
||||
"enabled": true,
|
||||
"resync": true
|
||||
}
|
||||
},
|
||||
"rgb_matrix": {
|
||||
"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,
|
||||
"fractal": 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_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
|
||||
},
|
||||
"default": {
|
||||
"animation": "rainbow_moving_chevron"
|
||||
},
|
||||
"driver": "ws2812",
|
||||
"layout": [
|
||||
{"matrix": [0, 13], "x": 205, "y": 0, "flags": 1},
|
||||
{"matrix": [0, 12], "x": 187, "y": 0, "flags": 4},
|
||||
{"matrix": [0, 11], "x": 172, "y": 0, "flags": 4},
|
||||
{"matrix": [0, 10], "x": 157, "y": 0, "flags": 4},
|
||||
{"matrix": [0, 9], "x": 142, "y": 0, "flags": 4},
|
||||
{"matrix": [0, 8], "x": 127, "y": 0, "flags": 4},
|
||||
{"matrix": [0, 7], "x": 112, "y": 0, "flags": 4},
|
||||
{"matrix": [0, 6], "x": 97, "y": 0, "flags": 4},
|
||||
{"matrix": [0, 5], "x": 82, "y": 0, "flags": 4},
|
||||
{"matrix": [0, 4], "x": 67, "y": 0, "flags": 4},
|
||||
{"matrix": [0, 3], "x": 52, "y": 0, "flags": 4},
|
||||
{"matrix": [0, 2], "x": 37, "y": 0, "flags": 4},
|
||||
{"matrix": [0, 1], "x": 22, "y": 0, "flags": 4},
|
||||
{"matrix": [0, 0], "x": 4, "y": 0, "flags": 1},
|
||||
{"matrix": [1, 0], "x": 0, "y": 13, "flags": 4},
|
||||
{"matrix": [1, 1], "x": 15, "y": 13, "flags": 4},
|
||||
{"matrix": [1, 2], "x": 30, "y": 13, "flags": 4},
|
||||
{"matrix": [1, 3], "x": 45, "y": 13, "flags": 4},
|
||||
{"matrix": [1, 4], "x": 60, "y": 13, "flags": 4},
|
||||
{"matrix": [1, 5], "x": 75, "y": 13, "flags": 4},
|
||||
{"matrix": [1, 6], "x": 90, "y": 13, "flags": 4},
|
||||
{"matrix": [1, 7], "x": 105, "y": 13, "flags": 4},
|
||||
{"matrix": [1, 8], "x": 119, "y": 13, "flags": 4},
|
||||
{"matrix": [1, 9], "x": 134, "y": 13, "flags": 4},
|
||||
{"matrix": [1, 10], "x": 149, "y": 13, "flags": 4},
|
||||
{"matrix": [1, 11], "x": 164, "y": 13, "flags": 4},
|
||||
{"matrix": [1, 12], "x": 179, "y": 13, "flags": 4},
|
||||
{"matrix": [1, 13], "x": 202, "y": 13, "flags": 1},
|
||||
{"matrix": [2, 13], "x": 205, "y": 26, "flags": 4},
|
||||
{"matrix": [2, 12], "x": 187, "y": 26, "flags": 4},
|
||||
{"matrix": [2, 11], "x": 172, "y": 26, "flags": 4},
|
||||
{"matrix": [2, 10], "x": 157, "y": 26, "flags": 4},
|
||||
{"matrix": [2, 9], "x": 142, "y": 26, "flags": 4},
|
||||
{"matrix": [2, 8], "x": 127, "y": 26, "flags": 4},
|
||||
{"matrix": [2, 7], "x": 112, "y": 26, "flags": 4},
|
||||
{"matrix": [2, 6], "x": 97, "y": 26, "flags": 4},
|
||||
{"matrix": [2, 5], "x": 82, "y": 26, "flags": 4},
|
||||
{"matrix": [2, 4], "x": 67, "y": 26, "flags": 4},
|
||||
{"matrix": [2, 3], "x": 52, "y": 26, "flags": 4},
|
||||
{"matrix": [2, 2], "x": 37, "y": 26, "flags": 4},
|
||||
{"matrix": [2, 1], "x": 22, "y": 26, "flags": 4},
|
||||
{"matrix": [2, 0], "x": 4, "y": 26, "flags": 1},
|
||||
{"matrix": [3, 0], "x": 6, "y": 38, "flags": 8},
|
||||
{"matrix": [3, 1], "x": 26, "y": 38, "flags": 4},
|
||||
{"matrix": [3, 2], "x": 41, "y": 38, "flags": 4},
|
||||
{"matrix": [3, 3], "x": 56, "y": 38, "flags": 4},
|
||||
{"matrix": [3, 4], "x": 71, "y": 38, "flags": 4},
|
||||
{"matrix": [3, 5], "x": 86, "y": 38, "flags": 4},
|
||||
{"matrix": [3, 6], "x": 101, "y": 38, "flags": 4},
|
||||
{"matrix": [3, 7], "x": 116, "y": 38, "flags": 4},
|
||||
{"matrix": [3, 8], "x": 131, "y": 38, "flags": 4},
|
||||
{"matrix": [3, 9], "x": 146, "y": 38, "flags": 4},
|
||||
{"matrix": [3, 10], "x": 161, "y": 38, "flags": 4},
|
||||
{"matrix": [3, 11], "x": 175, "y": 38, "flags": 4},
|
||||
{"matrix": [3, 12], "x": 200, "y": 38, "flags": 1},
|
||||
{"matrix": [4, 12], "x": 209, "y": 51, "flags": 1},
|
||||
{"matrix": [4, 11], "x": 189, "y": 51, "flags": 1},
|
||||
{"matrix": [4, 10], "x": 168, "y": 51, "flags": 4},
|
||||
{"matrix": [4, 9], "x": 153, "y": 51, "flags": 4},
|
||||
{"matrix": [4, 8], "x": 138, "y": 51, "flags": 4},
|
||||
{"matrix": [4, 7], "x": 123, "y": 51, "flags": 4},
|
||||
{"matrix": [4, 6], "x": 108, "y": 51, "flags": 4},
|
||||
{"matrix": [4, 5], "x": 93, "y": 51, "flags": 4},
|
||||
{"matrix": [4, 4], "x": 78, "y": 51, "flags": 4},
|
||||
{"matrix": [4, 3], "x": 63, "y": 51, "flags": 4},
|
||||
{"matrix": [4, 2], "x": 49, "y": 51, "flags": 4},
|
||||
{"matrix": [4, 1], "x": 34, "y": 51, "flags": 4},
|
||||
{"matrix": [4, 0], "x": 9, "y": 51, "flags": 4},
|
||||
{"matrix": [5, 0], "x": 0, "y": 64, "flags": 1},
|
||||
{"matrix": [5, 1], "x": 15, "y": 64, "flags": 1},
|
||||
{"matrix": [5, 2], "x": 30, "y": 64, "flags": 1},
|
||||
{"matrix": [5, 3], "x": 47, "y": 64, "flags": 1},
|
||||
{"matrix": [5, 6], "x": 103, "y": 64, "flags": 4},
|
||||
{"matrix": [5, 9], "x": 159, "y": 64, "flags": 1},
|
||||
{"matrix": [5, 10], "x": 177, "y": 64, "flags": 1},
|
||||
{"matrix": [5, 11], "x": 194, "y": 64, "flags": 1},
|
||||
{"matrix": [5, 12], "x": 209, "y": 64, "flags": 1},
|
||||
{"matrix": [5, 13], "x": 224, "y": 64, "flags": 1}
|
||||
],
|
||||
"sleep": true
|
||||
},
|
||||
"usb": {
|
||||
"device_version": "0.0.1",
|
||||
"pid": "0x6BCA",
|
||||
"shared_endpoint": {
|
||||
"keyboard": true
|
||||
},
|
||||
"vid": "0x6369"
|
||||
},
|
||||
"ws2812": {
|
||||
"driver": "pwm",
|
||||
"pin": "B13"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0, "w": 1.5},
|
||||
{"matrix": [0, 1], "x": 1.5, "y": 0},
|
||||
{"matrix": [0, 2], "x": 2.5, "y": 0},
|
||||
{"matrix": [0, 3], "x": 3.5, "y": 0},
|
||||
{"matrix": [0, 4], "x": 4.5, "y": 0},
|
||||
{"matrix": [0, 5], "x": 5.5, "y": 0},
|
||||
{"matrix": [0, 6], "x": 6.5, "y": 0},
|
||||
{"matrix": [0, 7], "x": 7.5, "y": 0},
|
||||
{"matrix": [0, 8], "x": 8.5, "y": 0},
|
||||
{"matrix": [0, 9], "x": 9.5, "y": 0},
|
||||
{"matrix": [0, 10], "x": 10.5, "y": 0},
|
||||
{"matrix": [0, 11], "x": 11.5, "y": 0},
|
||||
{"matrix": [0, 12], "x": 12.5, "y": 0},
|
||||
{"matrix": [0, 13], "x": 13.5, "y": 0, "w": 1.5},
|
||||
{"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": [1, 12], "x": 12, "y": 1},
|
||||
{"matrix": [1, 13], "x": 13, "y": 1, "w": 2},
|
||||
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.5},
|
||||
{"matrix": [2, 1], "x": 1.5, "y": 2},
|
||||
{"matrix": [2, 2], "x": 2.5, "y": 2},
|
||||
{"matrix": [2, 3], "x": 3.5, "y": 2},
|
||||
{"matrix": [2, 4], "x": 4.5, "y": 2},
|
||||
{"matrix": [2, 5], "x": 5.5, "y": 2},
|
||||
{"matrix": [2, 6], "x": 6.5, "y": 2},
|
||||
{"matrix": [2, 7], "x": 7.5, "y": 2},
|
||||
{"matrix": [2, 8], "x": 8.5, "y": 2},
|
||||
{"matrix": [2, 9], "x": 9.5, "y": 2},
|
||||
{"matrix": [2, 10], "x": 10.5, "y": 2},
|
||||
{"matrix": [2, 11], "x": 11.5, "y": 2},
|
||||
{"matrix": [2, 12], "x": 12.5, "y": 2},
|
||||
{"matrix": [2, 13], "x": 13.5, "y": 2, "w": 1.5},
|
||||
{"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75},
|
||||
{"matrix": [3, 1], "x": 1.75, "y": 3},
|
||||
{"matrix": [3, 2], "x": 2.75, "y": 3},
|
||||
{"matrix": [3, 3], "x": 3.75, "y": 3},
|
||||
{"matrix": [3, 4], "x": 4.75, "y": 3},
|
||||
{"matrix": [3, 5], "x": 5.75, "y": 3},
|
||||
{"matrix": [3, 6], "x": 6.75, "y": 3},
|
||||
{"matrix": [3, 7], "x": 7.75, "y": 3},
|
||||
{"matrix": [3, 8], "x": 8.75, "y": 3},
|
||||
{"matrix": [3, 9], "x": 9.75, "y": 3},
|
||||
{"matrix": [3, 10], "x": 10.75, "y": 3},
|
||||
{"matrix": [3, 11], "x": 11.75, "y": 3},
|
||||
{"matrix": [3, 12], "x": 12.75, "y": 3, "w": 2.25},
|
||||
{"matrix": [4, 0], "x": 0, "y": 4, "w": 2.25},
|
||||
{"matrix": [4, 1], "x": 2.25, "y": 4},
|
||||
{"matrix": [4, 2], "x": 3.25, "y": 4},
|
||||
{"matrix": [4, 3], "x": 4.25, "y": 4},
|
||||
{"matrix": [4, 4], "x": 5.25, "y": 4},
|
||||
{"matrix": [4, 5], "x": 6.25, "y": 4},
|
||||
{"matrix": [4, 6], "x": 7.25, "y": 4},
|
||||
{"matrix": [4, 7], "x": 8.25, "y": 4},
|
||||
{"matrix": [4, 8], "x": 9.25, "y": 4},
|
||||
{"matrix": [4, 9], "x": 10.25, "y": 4},
|
||||
{"matrix": [4, 10], "x": 11.25, "y": 4},
|
||||
{"matrix": [4, 11], "x": 12.25, "y": 4, "w": 1.75},
|
||||
{"matrix": [4, 12], "x": 14, "y": 4},
|
||||
{"matrix": [5, 0], "x": 0, "y": 5},
|
||||
{"matrix": [5, 1], "x": 1, "y": 5},
|
||||
{"matrix": [5, 2], "x": 2, "y": 5},
|
||||
{"matrix": [5, 3], "x": 3, "y": 5, "w": 1.25},
|
||||
{"matrix": [5, 6], "x": 4.25, "y": 5, "w": 6.25},
|
||||
{"matrix": [5, 9], "x": 10.5, "y": 5, "w": 1.25},
|
||||
{"matrix": [5, 10], "x": 11.75, "y": 5, "w": 1.25},
|
||||
{"matrix": [5, 11], "x": 13, "y": 5},
|
||||
{"matrix": [5, 12], "x": 14, "y": 5},
|
||||
{"matrix": [5, 13], "x": 15, "y": 5}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
90
keyboards/cipulot/ok_1/keymaps/default/keymap.c
Normal file
90
keyboards/cipulot/ok_1/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,90 @@
|
||||
/* Copyright 2024 Cipulot
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
// clang-format off
|
||||
enum layers{
|
||||
_MAC_BASE,
|
||||
_MAC_FN,
|
||||
_WIN_BASE,
|
||||
_WIN_FN
|
||||
};
|
||||
|
||||
enum custom_keycodes {
|
||||
SNIP = SAFE_RANGE,
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
#define MAC PDF(_MAC_BASE)
|
||||
#define WIN PDF(_WIN_BASE)
|
||||
|
||||
#define MACFN MO(_MAC_FN)
|
||||
#define WINFN MO(_WIN_FN)
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
// clang-format off
|
||||
[_MAC_BASE] = LAYOUT(
|
||||
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL,
|
||||
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_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
|
||||
MACFN, KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, KC_ROPT, KC_LEFT, KC_DOWN, KC_RIGHT
|
||||
),
|
||||
[_MAC_FN] = LAYOUT(
|
||||
_______, KC_BRID, KC_BRIU, KC_MCTL, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, SNIP,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, WIN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, RM_VALU,
|
||||
_______, _______, _______, _______, _______, _______, _______, RM_PREV, RM_VALD, RM_PREV
|
||||
),
|
||||
[_WIN_BASE] = LAYOUT(
|
||||
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL,
|
||||
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_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
|
||||
WINFN, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_LEFT, KC_DOWN, KC_RIGHT
|
||||
),
|
||||
[_WIN_FN] = LAYOUT(
|
||||
_______, KC_BRID, KC_BRIU, _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, SNIP,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, NK_TOGG, MAC, _______, _______, _______, _______, RM_VALU,
|
||||
_______, _______, _______, _______, _______, _______, _______, RM_PREV, RM_VALD, RM_PREV
|
||||
),
|
||||
// clang-format on
|
||||
};
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
switch (keycode) {
|
||||
case SNIP:
|
||||
if (record->event.pressed) {
|
||||
if (IS_LAYER_ON(_WIN_FN)) {
|
||||
tap_code(KC_PSCR);
|
||||
} else if (IS_LAYER_ON(_MAC_FN)) {
|
||||
tap_code16(LSFT(LGUI(KC_3)));
|
||||
}
|
||||
}
|
||||
return false;
|
||||
|
||||
default:
|
||||
return true;
|
||||
}
|
||||
}
|
||||
22
keyboards/cipulot/ok_1/mcuconf.h
Normal file
22
keyboards/cipulot/ok_1/mcuconf.h
Normal file
@@ -0,0 +1,22 @@
|
||||
/* Copyright 2024 Cipulot
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include_next <mcuconf.h>
|
||||
|
||||
#undef STM32_PWM_USE_TIM1
|
||||
#define STM32_PWM_USE_TIM1 TRUE
|
||||
25
keyboards/cipulot/ok_1/readme.md
Normal file
25
keyboards/cipulot/ok_1/readme.md
Normal file
@@ -0,0 +1,25 @@
|
||||
# OK-1
|
||||
|
||||
OK-1 is a low profile keyboard.
|
||||
|
||||
* Keyboard Maintainer: [cipulot](https://github.com/cipulot)
|
||||
* Hardware Supported: OK-1
|
||||
* Hardware Availability: TBD
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make cipulot/ok_1:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make cipulot/ok_1: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:
|
||||
|
||||
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is configured.
|
||||
* **Physical reset button**: Long press the reset button soldered on the PCB.
|
||||
* **Bootmagic reset**: Hold down the top left key and plug in the controller.
|
||||
2
keyboards/cipulot/ok_1/rules.mk
Normal file
2
keyboards/cipulot/ok_1/rules.mk
Normal file
@@ -0,0 +1,2 @@
|
||||
# Wildcard to allow APM32 MCU
|
||||
DFU_SUFFIX_ARGS = -v FFFF -p FFFF
|
||||
55
keyboards/djreisch/lumpy27/keyboard.json
Normal file
55
keyboards/djreisch/lumpy27/keyboard.json
Normal file
@@ -0,0 +1,55 @@
|
||||
{
|
||||
"manufacturer": "djreisch",
|
||||
"keyboard_name": "LumPy27",
|
||||
"maintainer": "djreisch",
|
||||
"board": "GENERIC_RP_RP2040",
|
||||
"bootloader": "rp2040",
|
||||
"diode_direction": "COL2ROW",
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"extrakey": true,
|
||||
"mousekey": true
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["GP0", "GP1", "GP2", "GP3", "GP4", "GP5"],
|
||||
"rows": ["GP14", "GP15", "GP16", "GP17", "GP18"]
|
||||
},
|
||||
"processor": "RP2040",
|
||||
"usb": {
|
||||
"device_version": "1.0.0",
|
||||
"pid": "0x2326",
|
||||
"vid": "0xFEED"
|
||||
},
|
||||
"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": [0, 4], "x": 4, "y": 0},
|
||||
{"matrix": [0, 5], "x": 5, "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": [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": [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": [4, 3], "x": 3, "y": 4},
|
||||
{"matrix": [4, 4], "x": 4, "y": 4},
|
||||
{"matrix": [4, 5], "x": 5, "y": 4}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
76
keyboards/djreisch/lumpy27/keymaps/default/keymap.c
Normal file
76
keyboards/djreisch/lumpy27/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,76 @@
|
||||
/* Copyright 2024 Daniel Reisch (djreisch)
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
enum custom_keycodes { MACRO_GG = QK_USER };
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/*
|
||||
Main
|
||||
,-----------------------------------------.
|
||||
| ESC | 1 | 2 | 3 | 4 | 5 |
|
||||
|------+------+------+------+------+------|
|
||||
| Tab | G | Q | W | E | R |
|
||||
|------+------+------+------+------+------|
|
||||
| LSHIFT | A | S | D | F |
|
||||
|------+------+------+------+------+------|
|
||||
| LCTL | B | Z | X | C | V |-------|
|
||||
`-----------------------------------------/ /
|
||||
| LAlt | FN | / Space /
|
||||
| | |/ /
|
||||
`---------------------'
|
||||
*/
|
||||
[0] = LAYOUT(KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5,
|
||||
KC_TAB, KC_G, KC_Q, KC_W, KC_E, KC_R,
|
||||
KC_LSFT, KC_A, KC_S, KC_D, KC_F,
|
||||
KC_LCTL, KC_B, KC_Z, KC_X, KC_C, KC_V,
|
||||
KC_LALT, MO(1), KC_SPACE),
|
||||
|
||||
/*
|
||||
Alt
|
||||
,-----------------------------------------.
|
||||
| ESC | 0 | 9 | 8 | 7 | 6 |
|
||||
|------+------+------+------+------+------|
|
||||
| F1 | F2 | F3 | F4 | F5 | F6 |
|
||||
|------+------+------+------+------+------|
|
||||
| LSHIFT | A | S | Y | H |
|
||||
|------+------+------+------+------+------|
|
||||
| LCTL | B | Z | X | C | M |-------|
|
||||
`-----------------------------------------/ /
|
||||
| LAlt | FN | / Enter /
|
||||
| | |/ /
|
||||
`---------------------'
|
||||
*/
|
||||
[1] = LAYOUT(KC_ESC, KC_0, KC_9, KC_8, KC_7, KC_6,
|
||||
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6,
|
||||
KC_LSFT, KC_A, KC_S, KC_Y, KC_H,
|
||||
KC_LCTL, MACRO_GG, KC_Z, KC_X, KC_C, KC_M,
|
||||
KC_LALT, KC_TRNS, KC_ENTER)
|
||||
};
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
switch (keycode) {
|
||||
case MACRO_GG:
|
||||
if (record->event.pressed) {
|
||||
// when keycode MACRO_GG is pressed, press shift+enter, send string "gg" and press enter
|
||||
SEND_STRING(SS_DOWN(X_LSFT) SS_DELAY(10) SS_TAP(X_ENTER) SS_UP(X_LSFT) "gg" SS_TAP(X_ENTER));
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
29
keyboards/djreisch/lumpy27/readme.md
Normal file
29
keyboards/djreisch/lumpy27/readme.md
Normal file
@@ -0,0 +1,29 @@
|
||||
# LumPy27
|
||||
|
||||
The Lightweight User-Modifiable Pi/Python keyboard is a 26-key ergonomic gaming keyboard running on an RP2040. Originally designed to run CircuitPython and KMK, since QMK supports the RP2040 bootloader this is now an additional option for firmware.
|
||||
|
||||
Q: Why is it named the LumPy27 even though it has 26 keys?
|
||||
|
||||
A: When originally designing the PCB and coming up with a name, I miscounted the switches. With the name emblazoned on the silkscreen I figured it sounded better than LumPy26.
|
||||
|
||||
Q: Why are the keys in the wrong place?
|
||||
|
||||
A: For certain games I found it easier instead of remapping them to just change where they are. That's why keys like B and G are not in the right spots.
|
||||
|
||||
* Keyboard Maintainer: [djreisch](https://github.com/djreisch)
|
||||
* Hardware Availability: [DuckyDebug.org](https://duckydebug.org/products/lumpy27-ergonomic-gaming-keyboard)
|
||||
|
||||
qmk compile example for this keyboard (after setting up your build environment):
|
||||
|
||||
qmk compile -kb djreisch/lumpy27 -km default
|
||||
|
||||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
||||
|
||||
## Bootloader
|
||||
|
||||
Enter the bootloader in 2 ways:
|
||||
|
||||
* **Bootloader Reset**: Hold down the bootload button and press the reset button
|
||||
* **Bootloader Power On**: Hold down the bootloader button and plug in the keyboard
|
||||
|
||||
|
||||
95
keyboards/green_keys/gravity_45/keyboard.json
Normal file
95
keyboards/green_keys/gravity_45/keyboard.json
Normal file
@@ -0,0 +1,95 @@
|
||||
{
|
||||
"manufacturer": "GreenKeys",
|
||||
"keyboard_name": "Gravity-45",
|
||||
"maintainer": "takashicompany",
|
||||
"processor": "RP2040",
|
||||
"bootloader": "rp2040",
|
||||
"diode_direction": "COL2ROW",
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
"nkro": true,
|
||||
"rgblight": true
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["GP14", "GP15", "GP26", "GP27", "GP28", "GP29", "GP5", "GP4", "GP3", "GP2", "GP1", "GP0"],
|
||||
"rows": ["GP10", "GP11", "GP12", "GP13"]
|
||||
},
|
||||
"rgblight": {
|
||||
"animations": {
|
||||
"alternating": true,
|
||||
"breathing": true,
|
||||
"christmas": true,
|
||||
"knight": true,
|
||||
"rainbow_mood": true,
|
||||
"rainbow_swirl": true,
|
||||
"snake": true,
|
||||
"static_gradient": true,
|
||||
"twinkle": true
|
||||
},
|
||||
"led_count": 1,
|
||||
"max_brightness": 120
|
||||
},
|
||||
"url": "https://green-keys.info",
|
||||
"usb": {
|
||||
"device_version": "1.0.0",
|
||||
"pid": "0x9121",
|
||||
"vid": "0x1209"
|
||||
},
|
||||
"ws2812": {
|
||||
"driver": "vendor",
|
||||
"pin": "GP8"
|
||||
},
|
||||
"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": [0, 4], "x": 4, "y": 0},
|
||||
{"matrix": [0, 5], "x": 5, "y": 0},
|
||||
{"matrix": [0, 6], "x": 9.5, "y": 0},
|
||||
{"matrix": [0, 7], "x": 10.5, "y": 0},
|
||||
{"matrix": [0, 8], "x": 11.5, "y": 0},
|
||||
{"matrix": [0, 9], "x": 12.5, "y": 0},
|
||||
{"matrix": [0, 10], "x": 13.5, "y": 0},
|
||||
{"matrix": [0, 11], "x": 14.5, "y": 0},
|
||||
{"matrix": [1, 0], "x": 0.25, "y": 1},
|
||||
{"matrix": [1, 1], "x": 1.25, "y": 1},
|
||||
{"matrix": [1, 2], "x": 2.25, "y": 1},
|
||||
{"matrix": [1, 3], "x": 3.25, "y": 1},
|
||||
{"matrix": [1, 4], "x": 4.25, "y": 1},
|
||||
{"matrix": [1, 5], "x": 5.25, "y": 1},
|
||||
{"matrix": [3, 11], "x": 7.625, "y": 1.5},
|
||||
{"matrix": [1, 6], "x": 9.75, "y": 1},
|
||||
{"matrix": [1, 7], "x": 10.75, "y": 1},
|
||||
{"matrix": [1, 8], "x": 11.75, "y": 1},
|
||||
{"matrix": [1, 9], "x": 12.75, "y": 1},
|
||||
{"matrix": [1, 10], "x": 13.75, "y": 1},
|
||||
{"matrix": [1, 11], "x": 14.75, "y": 1},
|
||||
{"matrix": [2, 0], "x": 0.5, "y": 2},
|
||||
{"matrix": [2, 1], "x": 1.5, "y": 2},
|
||||
{"matrix": [2, 2], "x": 2.5, "y": 2},
|
||||
{"matrix": [2, 3], "x": 3.5, "y": 2},
|
||||
{"matrix": [2, 4], "x": 4.5, "y": 2},
|
||||
{"matrix": [2, 5], "x": 5.5, "y": 2},
|
||||
{"matrix": [2, 6], "x": 10, "y": 2},
|
||||
{"matrix": [2, 7], "x": 11, "y": 2},
|
||||
{"matrix": [2, 8], "x": 12, "y": 2},
|
||||
{"matrix": [2, 9], "x": 13, "y": 2},
|
||||
{"matrix": [2, 10], "x": 14, "y": 2},
|
||||
{"matrix": [2, 11], "x": 15, "y": 2},
|
||||
{"matrix": [3, 2], "x": 2.5, "y": 3},
|
||||
{"matrix": [3, 3], "x": 3.5, "y": 3, "w": 1.25},
|
||||
{"matrix": [3, 4], "x": 4.75, "y": 3, "w": 1.25},
|
||||
{"matrix": [3, 5], "x": 6, "y": 3, "w": 1.25},
|
||||
{"matrix": [3, 6], "x": 9.75, "y": 3, "w": 1.25},
|
||||
{"matrix": [3, 7], "x": 11, "y": 3, "w": 1.25},
|
||||
{"matrix": [3, 8], "x": 12.25, "y": 3, "w": 1.25},
|
||||
{"matrix": [3, 9], "x": 13.5, "y": 3, "w": 1.25}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
70
keyboards/green_keys/gravity_45/keymaps/default/keymap.c
Normal file
70
keyboards/green_keys/gravity_45/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,70 @@
|
||||
// Copyright 2025 takashicompany (@takashicompany)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[0] = LAYOUT(
|
||||
KC_ESC, LT(7, KC_Q), KC_W, KC_E, LT(6, KC_R), KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
|
||||
KC_LCTL, KC_A, KC_S, LT(6, KC_D), KC_F, KC_G, RGB_TOG, KC_H, KC_J, LT(6, KC_K), KC_L, KC_ENT, KC_ENT,
|
||||
KC_LSFT, LSFT_T(KC_Z), LGUI_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, LCTL_T(KC_DOT), KC_BSPC, KC_DEL,
|
||||
KC_LCTL, KC_LGUI, LALT_T(KC_LNG2), LSFT_T(KC_TAB), LT(2, KC_SPC), LT(1, KC_LNG1), KC_RALT, KC_RGUI
|
||||
),
|
||||
|
||||
[1] = LAYOUT(
|
||||
KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS,
|
||||
KC_TRNS, LCTL_T(KC_EQL), KC_LBRC, KC_SLSH, KC_MINS, KC_INT1, KC_TRNS, KC_SCLN, KC_QUOT, KC_RBRC, KC_NUHS, KC_INT3, KC_TRNS,
|
||||
KC_TRNS, LSFT_T(KC_PLUS), KC_LCBR, KC_QUES, KC_UNDS, LSFT(KC_INT1), KC_COLN, KC_DQUO, KC_RCBR, LSFT(KC_NUHS), LSFT(KC_INT3), KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
|
||||
[2] = LAYOUT(
|
||||
KC_TRNS, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, LGUI(KC_INT3), KC_TRNS,
|
||||
KC_TRNS, KC_PLUS, KC_LCBR, KC_QUES, KC_UNDS, LSFT(KC_INT1), KC_TRNS, KC_COLN, KC_DQUO, KC_RCBR, LSFT(KC_NUHS), LSFT(KC_INT3), KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_LGUI, KC_LALT, KC_LNG2, KC_LSFT, KC_SPC, KC_LNG1, KC_TRNS, KC_TRNS, KC_DEL, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
|
||||
[3] = LAYOUT(
|
||||
KC_TRNS, LT(7, KC_Q), KC_W, KC_E, LT(6, KC_R), KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_TRNS,
|
||||
KC_TRNS, KC_A, KC_S, LT(6, KC_D), KC_F, KC_G, KC_TRNS, KC_H, KC_J, LT(6, KC_K), KC_L, KC_ENT, KC_TRNS,
|
||||
KC_TRNS, LSFT_T(KC_Z), LGUI_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, LCTL_T(KC_DOT), KC_BSPC, KC_TRNS,
|
||||
KC_LCTL, KC_LGUI, LALT_T(KC_LNG2), LSFT_T(KC_TAB), LT(5, KC_SPC), LT(4, KC_LNG1), KC_RALT, KC_RGUI
|
||||
),
|
||||
|
||||
[4] = LAYOUT(
|
||||
KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS,
|
||||
KC_TRNS, KC_CIRC, KC_AT, KC_SLSH, KC_MINS, KC_UNDS, KC_TRNS, KC_SCLN, KC_COLN, KC_LBRC, KC_RBRC, KC_INT3, KC_TRNS,
|
||||
KC_TRNS, LT(5, KC_TILD), KC_GRV, KC_QUES, KC_EQL, KC_UNDS, KC_PLUS, KC_ASTR, KC_LCBR, KC_RCBR, KC_PIPE, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
|
||||
[5] = LAYOUT(
|
||||
KC_TRNS, KC_EXLM, KC_DQUO, KC_HASH, KC_DLR, KC_PERC, KC_AMPR, KC_QUOT, KC_LPRN, KC_RPRN, KC_BSLS, KC_TRNS,
|
||||
KC_TRNS, KC_TILD, KC_GRV, KC_QUES, KC_EQL, KC_UNDS, KC_TRNS, KC_PLUS, KC_ASTR, KC_LCBR, KC_RCBR, KC_PIPE, KC_TRNS,
|
||||
KC_TRNS, KC_LSFT, KC_LGUI, KC_LALT, KC_LNG2, KC_LSFT, KC_SPC, KC_LNG1, KC_TRNS, KC_TRNS, KC_DEL, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
|
||||
[6] = LAYOUT(
|
||||
KC_TRNS, KC_ESC, KC_TAB, KC_UP, KC_NO, KC_NO, KC_NO, KC_NO, KC_UP, KC_NO, KC_NO, KC_TRNS,
|
||||
KC_TRNS, KC_LCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_TRNS, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_TRNS,
|
||||
KC_TRNS, KC_LSFT, KC_LGUI, KC_LALT, KC_LNG2, KC_TRNS, KC_NO, KC_LNG1, KC_NO, KC_NO, KC_DEL, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
|
||||
[7] = LAYOUT(
|
||||
KC_TRNS, KC_NO, KC_TAB, KC_NO, KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_TRNS,
|
||||
KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS,
|
||||
KC_TRNS, KC_LSFT, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, MO(8), MO(9), KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
|
||||
[8] = LAYOUT(
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_NO, DF(0), DF(3), KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO, QK_BOOT, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
)
|
||||
};
|
||||
37
keyboards/green_keys/gravity_45/readme.md
Normal file
37
keyboards/green_keys/gravity_45/readme.md
Normal file
@@ -0,0 +1,37 @@
|
||||
# Gravity-45
|
||||
|
||||

|
||||
|
||||
Gravity-45 is a 45-key integrated keyboard.
|
||||
It uses the Waveshare RP2040-Zero MCU.
|
||||
Keyswitch sockets are used for easy keyswitch replacement.
|
||||
The tight PCB outline lines allow for easy case design.
|
||||
|
||||
---
|
||||
|
||||
Gravity-45 は 45キーの一体型のキーボードだ。
|
||||
MCUにはWaveshare RP2040-Zeroを採用している。
|
||||
キースイッチソケットを使用するためキースイッチの交換が容易に行える。
|
||||
PCBの外形線がタイトなので、ケースの設計が容易だ。
|
||||
|
||||
* Keyboard Maintainer: [takashicompany](https://github.com/takashicompany)
|
||||
* Hardware Supported: PCB, Waveshare RP2040-Zero
|
||||
* Hardware Availability: [GreenKeys](https://green-keys.info/)
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make green_keys/gravity_45:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make green_keys/gravity_45: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 `QK_BOOT` if it is available
|
||||
5
keyboards/handwired/footy/config.h
Normal file
5
keyboards/handwired/footy/config.h
Normal file
@@ -0,0 +1,5 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
#pragma once
|
||||
|
||||
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
|
||||
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U
|
||||
35
keyboards/handwired/footy/keyboard.json
Normal file
35
keyboards/handwired/footy/keyboard.json
Normal file
@@ -0,0 +1,35 @@
|
||||
{
|
||||
"manufacturer": "CJ Pais",
|
||||
"keyboard_name": "Footy",
|
||||
"maintainer": "cjpais",
|
||||
"bootloader": "rp2040",
|
||||
"diode_direction": "COL2ROW",
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"extrakey": true,
|
||||
"mousekey": true
|
||||
},
|
||||
"bootmagic": {
|
||||
"matrix": [0, 1]
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["GP11", "GP10", "GP15"],
|
||||
"rows": ["GP14"]
|
||||
},
|
||||
"processor": "RP2040",
|
||||
"url": "https://workshop.cjpais.com/projects/footy",
|
||||
"usb": {
|
||||
"device_version": "1.0.0",
|
||||
"pid": "0x0001",
|
||||
"vid": "0x636A"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [0, 1], "x": 1, "y": 0},
|
||||
{"matrix": [0, 2], "x": 2, "y": 0}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
10
keyboards/handwired/footy/keymaps/default/keymap.json
Normal file
10
keyboards/handwired/footy/keymaps/default/keymap.json
Normal file
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"keyboard": "handwired/footy",
|
||||
"keymap": "default",
|
||||
"layout": "LAYOUT",
|
||||
"layers": [
|
||||
[
|
||||
"KC_A", "KC_B", "KC_C"
|
||||
]
|
||||
]
|
||||
}
|
||||
15
keyboards/handwired/footy/keymaps/handy/keymap.json
Normal file
15
keyboards/handwired/footy/keymaps/handy/keymap.json
Normal file
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"keyboard": "handwired/footy",
|
||||
"keymap": "handy",
|
||||
"layout": "LAYOUT",
|
||||
"layers": [
|
||||
[
|
||||
"KC_NO", "MT(MOD_RCTL | MOD_RGUI, KC_NO)", "KC_NO"
|
||||
]
|
||||
],
|
||||
"config": {
|
||||
"tapping": {
|
||||
"term": 50
|
||||
}
|
||||
}
|
||||
}
|
||||
15
keyboards/handwired/footy/keymaps/superwhisper/keymap.json
Normal file
15
keyboards/handwired/footy/keymaps/superwhisper/keymap.json
Normal file
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"keyboard": "handwired/footy",
|
||||
"keymap": "superwhisper",
|
||||
"layout": "LAYOUT",
|
||||
"layers": [
|
||||
[
|
||||
"KC_NO", "LOPT(KC_SPACE)", "KC_NO"
|
||||
]
|
||||
],
|
||||
"config": {
|
||||
"tapping": {
|
||||
"term": 50
|
||||
}
|
||||
}
|
||||
}
|
||||
42
keyboards/handwired/footy/readme.md
Normal file
42
keyboards/handwired/footy/readme.md
Normal file
@@ -0,0 +1,42 @@
|
||||
# Footy
|
||||
|
||||

|
||||
|
||||
*Footy is a foot pedal intended to be used with a speech to text application like 'handy' or superwhisper. Initially developed as an assistive technology device for those with limited typing abilities.*
|
||||
|
||||
* Keyboard Maintainer: [CJ Pais](https://github.com/cjpais)
|
||||
* Hardware Supported: [Keebio Stampy](https://keeb.io/products/stampy-rp2040-usb-c-controller-board-for-handwiring)
|
||||
* Hardware Availability: [3D printed case](https://makerworld.com/en/models/1185240-footy)
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make handwired/footy:default
|
||||
|
||||
Flashing example for this keyboard (enter the bootloader first):
|
||||
|
||||
make handwired/footy:default:flash
|
||||
|
||||
or drag and drop .uf2 file on the removable storage
|
||||
|
||||
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:
|
||||
|
||||
* **Physical reset button**: Briefly double press the button on the back of the PCB
|
||||
|
||||
## Keymaps
|
||||
|
||||
Right now there are two primary keymaps, one for 'handy' and one for 'superwhisper'.
|
||||
|
||||
Handy's default keymap is for the center switch to be RCTRL + RGUI.
|
||||
|
||||
Superwhisper's default keymap is for the center switch to be LOPT + SPACE.
|
||||
|
||||
You can build either of these firmware images by running the following commands:
|
||||
|
||||
```
|
||||
make handwired/footy:handy
|
||||
make handwired/footy:superwhisper
|
||||
```
|
||||
107
keyboards/handwired/hen_des/epssp75/keyboard.json
Normal file
107
keyboards/handwired/hen_des/epssp75/keyboard.json
Normal file
@@ -0,0 +1,107 @@
|
||||
{
|
||||
"manufacturer": "Henning Cordes",
|
||||
"keyboard_name": "epssp75",
|
||||
"maintainer": "hen-des",
|
||||
"bootloader": "rp2040",
|
||||
"diode_direction": "COL2ROW",
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"command": false,
|
||||
"console": false,
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
"nkro": true
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["GP6", "GP7", "GP8", "GP9", "GP10", "GP11", "GP12", "GP13", "GP14", "GP15", "GP16", "GP17", "GP18", "GP19", "GP20", "GP21", "GP22"],
|
||||
"rows": ["GP1", "GP2", "GP3", "GP4", "GP5"]
|
||||
},
|
||||
"processor": "RP2040",
|
||||
"url": "https://hen-des.github.io/epssp75/",
|
||||
"usb": {
|
||||
"device_version": "1.0.0",
|
||||
"pid": "0x0075",
|
||||
"vid": "0x6863"
|
||||
},
|
||||
"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": [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.5, "y": 0},
|
||||
{"matrix": [0, 9], "x": 8.5, "y": 0},
|
||||
{"matrix": [0, 10], "x": 10, "y": 0},
|
||||
{"matrix": [0, 11], "x": 11, "y": 0},
|
||||
{"matrix": [0, 12], "x": 12, "y": 0},
|
||||
{"matrix": [0, 13], "x": 13, "y": 0},
|
||||
{"matrix": [0, 14], "x": 14, "y": 0},
|
||||
{"matrix": [0, 15], "x": 15, "y": 0},
|
||||
{"matrix": [0, 16], "x": 16, "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, 8], "x": 7.25, "y": 1, "w": 2.5},
|
||||
{"matrix": [1, 10], "x": 10, "y": 1},
|
||||
{"matrix": [1, 11], "x": 11, "y": 1},
|
||||
{"matrix": [1, 12], "x": 12, "y": 1},
|
||||
{"matrix": [1, 13], "x": 13, "y": 1},
|
||||
{"matrix": [1, 14], "x": 14, "y": 1},
|
||||
{"matrix": [1, 15], "x": 15, "y": 1},
|
||||
{"matrix": [1, 16], "x": 16, "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, "h": 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, "h": 2},
|
||||
{"matrix": [2, 11], "x": 11, "y": 2},
|
||||
{"matrix": [2, 12], "x": 12, "y": 2},
|
||||
{"matrix": [2, 13], "x": 13, "y": 2},
|
||||
{"matrix": [2, 14], "x": 14, "y": 2},
|
||||
{"matrix": [2, 15], "x": 15, "y": 2},
|
||||
{"matrix": [2, 16], "x": 16, "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, 7], "x": 7, "y": 3},
|
||||
{"matrix": [3, 8], "x": 8, "y": 3},
|
||||
{"matrix": [3, 9], "x": 9, "y": 3},
|
||||
{"matrix": [3, 11], "x": 11, "y": 3},
|
||||
{"matrix": [3, 12], "x": 12, "y": 3},
|
||||
{"matrix": [3, 13], "x": 13, "y": 3},
|
||||
{"matrix": [3, 14], "x": 14, "y": 3},
|
||||
{"matrix": [3, 15], "x": 15, "y": 3},
|
||||
{"matrix": [3, 16], "x": 16, "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, 5], "x": 4, "y": 4, "w": 2},
|
||||
{"matrix": [4, 6], "x": 6, "y": 4, "h": 2},
|
||||
{"matrix": [4, 10], "x": 10, "y": 4, "h": 2},
|
||||
{"matrix": [4, 11], "x": 11, "y": 4, "w": 2},
|
||||
{"matrix": [4, 13], "x": 13, "y": 4},
|
||||
{"matrix": [4, 14], "x": 14, "y": 4},
|
||||
{"matrix": [4, 15], "x": 15, "y": 4},
|
||||
{"matrix": [4, 16], "x": 16, "y": 4}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
21
keyboards/handwired/hen_des/epssp75/keymaps/default/keymap.c
Normal file
21
keyboards/handwired/hen_des/epssp75/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,21 @@
|
||||
// Copyright 2023 QMK
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = LAYOUT(
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_F22, KC_RBRC, KC_PSCR, KC_F23, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_F20, KC_ENT, KC_F21, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_DEL, KC_HOME, KC_UP, KC_END, KC_BSPC, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
|
||||
KC_RSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LEFT, KC_DOWN, KC_RGHT, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_NUBS, KC_SPC, KC_LSFT, KC_ENT, KC_SPC, KC_RALT, MO(1), RGUI_T(KC_APP), KC_RCTL
|
||||
),
|
||||
[1] = LAYOUT(
|
||||
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F22, KC_PAUS, KC_PSCR, KC_F23, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
|
||||
KC_TAB, KC_PGUP, LCTL(KC_LEFT), KC_UP, LCTL(KC_RGHT), KC_PGDN, KC_F20, KC_ENT, KC_F21, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12,
|
||||
KC_CAPS, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, KC_DEL, KC_HOME, KC_VOLU, KC_END, KC_BSPC, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
|
||||
KC_RSFT, LCA(KC_F2), KC_TAB, KC_F2, KC_F5, KC_F23, KC_MUTE, KC_VOLD, KC_MUTE, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_RSFT,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_NUBS, KC_SPC, KC_LSFT, KC_ENT, KC_SPC, KC_RALT, _______, KC_APP, KC_RCTL
|
||||
)
|
||||
};
|
||||
18
keyboards/handwired/hen_des/epssp75/readme.md
Normal file
18
keyboards/handwired/hen_des/epssp75/readme.md
Normal file
@@ -0,0 +1,18 @@
|
||||
# epssp75
|
||||
|
||||
Ergonomic PSeudo SPlit 75-key Keyboard. Desinged after two years of working with a [Truly Ergonomic CLEAVE Keyboard](https://trulyergonomic.com) and also inspired by the [Redox Keyboard](https://github.com/mattdibi/redox-keyboard).
|
||||
I am using and the [NOTED](https://neo-layout.org/Layouts/noted/) layout and the [ReNeo](https://neo-layout.org/Einrichtung/reneo/) software which offers additional possible key functions and layers.
|
||||
|
||||
* Keyboard Maintainer: [Henning Cordes](https://github.com/hen-des)
|
||||
* Files: [https://github.com/hen-des/epssp75](https://github.com/hen-des/epssp75)
|
||||
|
||||
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).
|
||||
|
||||
Detailed [description](https://hen-des.github.io/epssp75/index.html) and expiriences of the conception and manufacturing.
|
||||
|
||||
## Bootloader
|
||||
|
||||
Enter the bootloader in 2 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
|
||||
94
keyboards/handwired/lumawing/keyboard.json
Normal file
94
keyboards/handwired/lumawing/keyboard.json
Normal file
@@ -0,0 +1,94 @@
|
||||
{
|
||||
"keyboard_name": "LuMaWing",
|
||||
"manufacturer": "Lucas Mateijsen",
|
||||
"url": "",
|
||||
"maintainer": "qmk",
|
||||
"usb": {
|
||||
"vid": "0xBB80",
|
||||
"pid": "0x050D",
|
||||
"device_version": "0.0.1"
|
||||
},
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"command": true,
|
||||
"console": false,
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
"nkro": false
|
||||
},
|
||||
"qmk": {
|
||||
"locking": {
|
||||
"enabled": true,
|
||||
"resync": true
|
||||
}
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["B1", "B3", "B2", "B6", "B5", "B4", "E6", "D7", "C6", "D4", "D0", "D1", "D2", "D3"],
|
||||
"rows": ["F4", "F5", "F6", "F7"]
|
||||
},
|
||||
"diode_direction": "COL2ROW",
|
||||
"development_board": "promicro",
|
||||
"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": [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": [0, 12], "x": 12, "y": 0},
|
||||
{"matrix": [0, 13], "x": 13, "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": [1, 12], "x": 12, "y": 1},
|
||||
{"matrix": [1, 13], "x": 13, "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": [2, 12], "x": 12, "y": 2},
|
||||
{"matrix": [2, 13], "x": 13, "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, 6], "x": 5, "y": 3, "w": 2},
|
||||
{"matrix": [3, 7], "x": 7, "y": 3, "w": 2},
|
||||
{"matrix": [3, 9], "x": 9, "y": 3},
|
||||
{"matrix": [3, 10], "x": 10, "y": 3},
|
||||
{"matrix": [3, 11], "x": 11, "y": 3},
|
||||
{"matrix": [3, 12], "x": 12, "y": 3},
|
||||
{"matrix": [3, 13], "x": 13, "y": 3}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
70
keyboards/handwired/lumawing/keymaps/default/keymap.c
Normal file
70
keyboards/handwired/lumawing/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,70 @@
|
||||
/* Copyright 2021 Richard Nunez <l.mateijsen@outlook.com>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
#define KC_COPY LCTL(KC_C)
|
||||
#define KC_CUT LCTL(KC_X)
|
||||
#define KC_PSTE LCTL(KC_V)
|
||||
|
||||
#define KC_UNDO LCTL(KC_Z)
|
||||
#define KC_AGIN LCTL(KC_Y)
|
||||
|
||||
enum layer_names {
|
||||
_COLEMAKDH,
|
||||
_QWERTY,
|
||||
_NUMBERS,
|
||||
_FUNCTIONAL,
|
||||
_ADMIN
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[_COLEMAKDH] = LAYOUT(
|
||||
KC_ESC, KC_Q, KC_W, KC_F, KC_P, KC_B, XXXXXXX, XXXXXXX, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_DEL,
|
||||
KC_TAB, KC_A, KC_R, KC_S, KC_T, KC_G, XXXXXXX, XXXXXXX, KC_M, KC_N, KC_E, KC_I, KC_O, KC_BSPC,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_D, KC_V, XXXXXXX, XXXXXXX, KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
|
||||
KC_LCTL, XXXXXXX, KC_LGUI, KC_LALT, MO(3), KC_SPC, KC_ENT, MO(2), KC_RALT, KC_RGUI, XXXXXXX, KC_ENT
|
||||
),
|
||||
|
||||
[_QWERTY] = LAYOUT(
|
||||
KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, XXXXXXX, XXXXXXX, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
|
||||
KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, XXXXXXX, XXXXXXX, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_DEL,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, XXXXXXX, XXXXXXX, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
|
||||
KC_LCTL, XXXXXXX, KC_LGUI, KC_LALT, MO(3), KC_SPC, KC_ENT, MO(2), KC_RALT, KC_RGUI, XXXXXXX, KC_ENT
|
||||
),
|
||||
|
||||
[_NUMBERS] = LAYOUT(
|
||||
KC_ESC, 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,
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_QUOT, KC_LBRC, KC_RBRC, XXXXXXX, XXXXXXX,
|
||||
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______,
|
||||
_______, XXXXXXX, XXXXXXX, _______, MO(4), _______, _______, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX
|
||||
),
|
||||
|
||||
[_FUNCTIONAL] = LAYOUT(
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_UP, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
XXXXXXX, KC_UNDO, KC_CUT, KC_COPY, KC_PSTE, KC_AGIN, XXXXXXX, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_RGHT, XXXXXXX, XXXXXXX,
|
||||
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______,
|
||||
_______, XXXXXXX, XXXXXXX, _______, _______, _______, _______, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX
|
||||
),
|
||||
|
||||
[_ADMIN] = LAYOUT(
|
||||
QK_BOOT, DF(0), DF(1), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, XXXXXXX, XXXXXXX, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
|
||||
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______,
|
||||
_______, XXXXXXX, XXXXXXX, _______, _______, _______, _______, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX
|
||||
)
|
||||
};
|
||||
15
keyboards/handwired/lumawing/readme.md
Normal file
15
keyboards/handwired/lumawing/readme.md
Normal file
@@ -0,0 +1,15 @@
|
||||
# LuMaWing handwired
|
||||
|
||||
Custom handwired LuMaWing keyboard.
|
||||
|
||||
* Keyboard Maintainer: [Lucas Mateijsen](https://github.com/LucasMateijsen/)
|
||||
* Hardware Supported: Handwired LuMaWing 14x4 ortho keyboard Pro-Micro
|
||||
* Hardware Availability:
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make handwired/ortho4x14:default
|
||||
|
||||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
||||
|
||||
To get into the Bootloader, simply hold down the top-left key (pos 0, 0) and power the board.
|
||||
20
keyboards/jcpm2/config.h
Normal file
20
keyboards/jcpm2/config.h
Normal file
@@ -0,0 +1,20 @@
|
||||
/* Copyright 2025 Jeremy Cook Consulting LLC <info@jeremyscook.com>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* If you did not receive a copy of the GNU General Public License
|
||||
* along with this program, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#define OLED_DISPLAY_128X64
|
||||
#define OLED_TIMEOUT 2000000
|
||||
46
keyboards/jcpm2/jcpm2.c
Normal file
46
keyboards/jcpm2/jcpm2.c
Normal file
@@ -0,0 +1,46 @@
|
||||
/* Copyright 2025 Jeremy Cook Consulting LLC <info@jeremyscook.com>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#include "quantum.h"
|
||||
|
||||
#ifdef OLED_ENABLE
|
||||
static uint32_t logo_timer = 0;
|
||||
|
||||
oled_rotation_t oled_init_kb(oled_rotation_t rotation) {
|
||||
logo_timer = timer_read();
|
||||
return OLED_ROTATION_180;
|
||||
}
|
||||
|
||||
static void render_logo(void) {
|
||||
static const char PROGMEM qmk_logo[] = {
|
||||
0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x91, 0x92, 0x93, 0x94,
|
||||
0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4,
|
||||
0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0x00
|
||||
};
|
||||
oled_write_P(qmk_logo, false);
|
||||
}
|
||||
|
||||
bool oled_task_kb(void) {
|
||||
if (timer_elapsed32(logo_timer) < 1000) {
|
||||
render_logo();
|
||||
return false;
|
||||
}
|
||||
if (!oled_task_user()) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
#endif
|
||||
79
keyboards/jcpm2/keyboard.json
Normal file
79
keyboards/jcpm2/keyboard.json
Normal file
@@ -0,0 +1,79 @@
|
||||
{
|
||||
"manufacturer": "jeremyscook",
|
||||
"keyboard_name": "jcpm2",
|
||||
"maintainer": "jeremyscook",
|
||||
"development_board": "promicro",
|
||||
"encoder": {
|
||||
"rotary": [
|
||||
{"pin_a": "D2", "pin_b": "D3"}
|
||||
]
|
||||
},
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"encoder": true,
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
"nkro": true,
|
||||
"oled": true,
|
||||
"rgb_matrix": true
|
||||
},
|
||||
"matrix_pins": {
|
||||
"direct": [
|
||||
["D4", null, "F4", "B3"],
|
||||
["B4", null, "F5", "B2"],
|
||||
["B1", "F7", "F6", "B6"]
|
||||
]
|
||||
},
|
||||
"rgb_matrix": {
|
||||
"animations": {
|
||||
"digital_rain": true,
|
||||
"hue_breathing": true,
|
||||
"typing_heatmap": true
|
||||
},
|
||||
"default": {
|
||||
"animation": "typing_heatmap",
|
||||
"val": 180
|
||||
},
|
||||
"driver": "ws2812",
|
||||
"layout": [
|
||||
{"matrix": [2, 0], "x": 0, "y": 64, "flags": 4},
|
||||
{"matrix": [2, 1], "x": 75, "y": 64, "flags": 4},
|
||||
{"matrix": [2, 2], "x": 150, "y": 64, "flags": 4},
|
||||
{"matrix": [1, 2], "x": 150, "y": 32, "flags": 4},
|
||||
{"matrix": [0, 2], "x": 150, "y": 0, "flags": 4},
|
||||
{"matrix": [0, 3], "x": 224, "y": 0, "flags": 4},
|
||||
{"matrix": [1, 3], "x": 224, "y": 32, "flags": 4},
|
||||
{"matrix": [2, 3], "x": 224, "y": 64, "flags": 4},
|
||||
{"x": 224, "y": 0, "flags": 2},
|
||||
{"x": 224, "y": 64, "flags": 2},
|
||||
{"x": 112, "y": 64, "flags": 2},
|
||||
{"x": 0, "y": 64, "flags": 2}
|
||||
],
|
||||
"sleep": true
|
||||
},
|
||||
"url": "https://github.com/JeremySCook/JC-Pro-Macro-2",
|
||||
"usb": {
|
||||
"device_version": "1.0.0",
|
||||
"pid": "0x0000",
|
||||
"vid": "0xFEED"
|
||||
},
|
||||
"ws2812": {
|
||||
"pin": "C6"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "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, 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}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
132
keyboards/jcpm2/keymaps/default/keymap.c
Normal file
132
keyboards/jcpm2/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,132 @@
|
||||
// Copyright 2023 QMK
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
// Define the layers
|
||||
enum layer_names {
|
||||
_LAYER0,
|
||||
_LAYER0_MOD,
|
||||
_LAYER1,
|
||||
_LAYER2
|
||||
};
|
||||
|
||||
#define UNDERGLOW 60
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/*
|
||||
* ┌───┬───┬───┬───┐
|
||||
* │ E │ n │ 6 │ 7 │
|
||||
* ├───┼───┼───┼───┤
|
||||
* │ B │ n │ 5 │ 8 │
|
||||
* ├───┼───┼───┼───┤
|
||||
* │ 2 │ 3 │ 4 │ 9 │
|
||||
* └───┴───┴───┴───┘
|
||||
*/
|
||||
[_LAYER0] = LAYOUT( // default
|
||||
KC_MUTE, LSFT(KC_COMM), LSFT(KC_DOT),
|
||||
DF(_LAYER1), KC_J, KC_L,
|
||||
KC_MPRV, KC_MPLY, KC_MNXT, TG(_LAYER0_MOD) // btm-right one shot mod layer
|
||||
),
|
||||
[_LAYER0_MOD] = LAYOUT( // default MOD
|
||||
_______, RM_VALU, RM_NEXT, // _______ transparent, goes to above layer
|
||||
_______, RM_VALD, RM_TOGG,
|
||||
LCTL(LGUI(KC_SPC)), _______, _______, TG(_LAYER0_MOD)
|
||||
),
|
||||
[_LAYER1] = LAYOUT( // FCPX
|
||||
LSFT(LGUI(KC_B)), LGUI(KC_B), LGUI(KC_EQL),
|
||||
DF(_LAYER2), LALT(KC_K), LGUI(KC_MINS),
|
||||
KC_J, KC_K, KC_L, KC_BSPC
|
||||
),
|
||||
[_LAYER2] = LAYOUT( // KICAD
|
||||
KC_E, KC_ESC, KC_M,
|
||||
DF(_LAYER0), LGUI(KC_Z), KC_X,
|
||||
KC_V, KC_D, KC_U, KC_BSPC
|
||||
)
|
||||
};
|
||||
|
||||
#ifdef ENCODER_MAP_ENABLE
|
||||
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
|
||||
[_LAYER0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, // default
|
||||
[_LAYER0_MOD] = { ENCODER_CCW_CW(_______, _______) }, // default MOD
|
||||
[_LAYER1] = { ENCODER_CCW_CW(KC_LEFT, KC_RIGHT) }, // FCPX
|
||||
[_LAYER2] = { ENCODER_CCW_CW(KC_R, S(KC_R)) } // KICAD
|
||||
};
|
||||
#endif
|
||||
|
||||
#ifdef OLED_ENABLE
|
||||
// Function to display the current layer and information on the OLED
|
||||
bool oled_task_user(void) {
|
||||
switch (get_highest_layer(layer_state | default_layer_state)) {
|
||||
case _LAYER0:
|
||||
oled_write_ln_P(PSTR("(VOL- VOL+) LAYER0"), false);
|
||||
oled_write_ln_P(PSTR(""), false);
|
||||
oled_write_ln_P(PSTR("MUTE SLOW FAST"), false);
|
||||
oled_write_ln_P(PSTR(""), false);
|
||||
oled_write_ln_P(PSTR("LAYR RSET 10BK 10FW"), false);
|
||||
oled_write_ln_P(PSTR(""), false);
|
||||
oled_write_ln_P(PSTR("MREV MPLA MFWD +OPT"), false);
|
||||
break;
|
||||
case _LAYER0_MOD:
|
||||
oled_write_ln_P(PSTR("____ ____ 0-MOD"), false);
|
||||
oled_write_ln_P(PSTR(""), false);
|
||||
oled_write_ln_P(PSTR("____ BRI+ ANIM"), false);
|
||||
oled_write_ln_P(PSTR(""), false);
|
||||
oled_write_ln_P(PSTR("____ ____ BRI- TOGG"), false);
|
||||
oled_write_ln_P(PSTR(""), false);
|
||||
oled_write_ln_P(PSTR("EMOJ ____ ____ -OPT"), false);
|
||||
break;
|
||||
case _LAYER1:
|
||||
oled_write_ln_P(PSTR("(FRA- FRA+) FCPX"), false);
|
||||
oled_write_ln_P(PSTR(""), false);
|
||||
oled_write_ln_P(PSTR("XXXX BRAK ZOM+"), false);
|
||||
oled_write_ln_P(PSTR(""), false);
|
||||
oled_write_ln_P(PSTR("LAYR RSET KFRA ZOM-"), false);
|
||||
oled_write_ln_P(PSTR(""), false);
|
||||
oled_write_ln_P(PSTR("BACK STOP FORW DELT"), false);
|
||||
break;
|
||||
case _LAYER2:
|
||||
oled_write_ln_P(PSTR("(RO L RO R) KICAD"), false);
|
||||
oled_write_ln_P(PSTR(""), false);
|
||||
oled_write_ln_P(PSTR("EDIT ESCP MOVE"), false);
|
||||
oled_write_ln_P(PSTR(""), false);
|
||||
oled_write_ln_P(PSTR("LAYR RSET UNDO TRAK"), false);
|
||||
oled_write_ln_P(PSTR(""), false);
|
||||
oled_write_ln_P(PSTR("VIA DRAG SALL DELT"), false);
|
||||
break;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
|
||||
bool rgb_matrix_indicators_user(void) {
|
||||
switch(get_highest_layer(layer_state|default_layer_state)) {
|
||||
case _LAYER2:
|
||||
rgb_matrix_set_color(11, 0, 0, UNDERGLOW);
|
||||
rgb_matrix_set_color(10, 0, 0, UNDERGLOW);
|
||||
rgb_matrix_set_color(9, 0, 0, UNDERGLOW);
|
||||
rgb_matrix_set_color(8, 0, 0, UNDERGLOW);
|
||||
break;
|
||||
case _LAYER1:
|
||||
rgb_matrix_set_color(11, 0, UNDERGLOW, 0);
|
||||
rgb_matrix_set_color(10, 0, UNDERGLOW, 0);
|
||||
rgb_matrix_set_color(9, 0, UNDERGLOW, 0);
|
||||
rgb_matrix_set_color(8, 0, UNDERGLOW, 0);
|
||||
break;
|
||||
case _LAYER0_MOD:
|
||||
rgb_matrix_set_color(11, UNDERGLOW/2, 0, UNDERGLOW/2);
|
||||
rgb_matrix_set_color(10, UNDERGLOW/2, 0, UNDERGLOW/2);
|
||||
rgb_matrix_set_color(9, UNDERGLOW/2, 0, UNDERGLOW/2);
|
||||
rgb_matrix_set_color(8, UNDERGLOW/2, 0, UNDERGLOW/2);
|
||||
break;
|
||||
case _LAYER0:
|
||||
rgb_matrix_set_color(11, UNDERGLOW, 0, 0);
|
||||
rgb_matrix_set_color(10, UNDERGLOW, 0, 0);
|
||||
rgb_matrix_set_color(9, UNDERGLOW, 0, 0);
|
||||
rgb_matrix_set_color(8, UNDERGLOW, 0, 0);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
1
keyboards/jcpm2/keymaps/default/rules.mk
Normal file
1
keyboards/jcpm2/keymaps/default/rules.mk
Normal file
@@ -0,0 +1 @@
|
||||
ENCODER_MAP_ENABLE = yes
|
||||
27
keyboards/jcpm2/readme.md
Normal file
27
keyboards/jcpm2/readme.md
Normal file
@@ -0,0 +1,27 @@
|
||||
# jcpm2
|
||||
|
||||

|
||||
|
||||
An 8-key macro pad with rotary encoder, RGB backlighting and underlighting. Made and sold by JCC LLC.
|
||||
|
||||
* Keyboard Maintainer: [jeremyscook](https://github.com/jeremyscook)
|
||||
* Hardware Supported: JCPM2 PCB, Pro Micro
|
||||
* Hardware Availability: [Tindie.com](https://www.tindie.com/products/25414)
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make jcpm2:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make jcpm2: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 rotary encoder and plug in the keyboard
|
||||
* **Physical reset button**: Double-click the small inside button on top of the PCB
|
||||
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
|
||||
8
keyboards/keychron/x0/board.h
Normal file
8
keyboards/keychron/x0/board.h
Normal file
@@ -0,0 +1,8 @@
|
||||
// Copyright 2023 @ Keychron(https://www.keychron.com)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
#pragma once
|
||||
|
||||
#include_next <board.h>
|
||||
|
||||
#undef STM32_HSECLK
|
||||
#define STM32_HSECLK 16000000U
|
||||
23
keyboards/keychron/x0/config.h
Normal file
23
keyboards/keychron/x0/config.h
Normal file
@@ -0,0 +1,23 @@
|
||||
/* Copyright 2023 @ Keychron(https://www.keychron.com)
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
/* I2C Driver Configuration */
|
||||
#define I2C1_SCL_PIN B8
|
||||
#define I2C1_SDA_PIN B9
|
||||
#define I2C1_CLOCK_SPEED 400000
|
||||
#define I2C1_DUTY_CYCLE FAST_DUTY_CYCLE_2
|
||||
21
keyboards/keychron/x0/halconf.h
Normal file
21
keyboards/keychron/x0/halconf.h
Normal file
@@ -0,0 +1,21 @@
|
||||
/* Copyright 2020 QMK
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#define HAL_USE_I2C TRUE
|
||||
|
||||
#include_next <halconf.h>
|
||||
73
keyboards/keychron/x0/info.json
Normal file
73
keyboards/keychron/x0/info.json
Normal file
@@ -0,0 +1,73 @@
|
||||
{
|
||||
"manufacturer": "Keychron",
|
||||
"keyboard_name": "Lemokey X0",
|
||||
"maintainer": "lalalademaxiya1",
|
||||
"bootloader": "stm32-dfu",
|
||||
"diode_direction": "COL2ROW",
|
||||
"eeprom": {
|
||||
"wear_leveling": {
|
||||
"backing_size": 4096
|
||||
}
|
||||
},
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
"nkro": true
|
||||
},
|
||||
"indicators": {
|
||||
"caps_lock": "A3"
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["C6", "C7", "C8", "A14", "A15", "C10", "C11"],
|
||||
"rows": ["C12", "D2", "B3", "B4", "B5", "B6"]
|
||||
},
|
||||
"processor": "STM32F401",
|
||||
"url": "https://www.lemokey.com/products/lemokey-x0-qmk-wired-mechanical-gaming-keypad",
|
||||
"usb": {
|
||||
"device_version": "1.1.0",
|
||||
"pid": "0x0200",
|
||||
"vid": "0x362D"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [0, 1], "x": 2, "y": 0},
|
||||
{"matrix": [0, 2], "x": 3, "y": 0},
|
||||
{"matrix": [0, 3], "x": 4, "y": 0},
|
||||
{"matrix": [0, 4], "x": 5, "y": 0},
|
||||
{"matrix": [0, 5], "x": 6, "y": 0},
|
||||
{"matrix": [1, 0], "x": 0, "y": 1.25},
|
||||
{"matrix": [1, 1], "x": 1, "y": 1.25},
|
||||
{"matrix": [1, 2], "x": 2, "y": 1.25},
|
||||
{"matrix": [1, 3], "x": 3, "y": 1.25},
|
||||
{"matrix": [1, 4], "x": 4, "y": 1.25},
|
||||
{"matrix": [1, 5], "x": 5, "y": 1.25},
|
||||
{"matrix": [1, 6], "x": 6, "y": 1.25},
|
||||
{"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5},
|
||||
{"matrix": [2, 1], "x": 1.5, "y": 2.25},
|
||||
{"matrix": [2, 2], "x": 2.5, "y": 2.25},
|
||||
{"matrix": [2, 3], "x": 3.5, "y": 2.25},
|
||||
{"matrix": [2, 4], "x": 4.5, "y": 2.25},
|
||||
{"matrix": [2, 5], "x": 5.5, "y": 2.25, "w": 1.5},
|
||||
{"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75},
|
||||
{"matrix": [3, 1], "x": 1.75, "y": 3.25},
|
||||
{"matrix": [3, 2], "x": 2.75, "y": 3.25},
|
||||
{"matrix": [3, 3], "x": 3.75, "y": 3.25},
|
||||
{"matrix": [3, 4], "x": 4.75, "y": 3.25},
|
||||
{"matrix": [3, 5], "x": 5.75, "y": 3.25, "w": 1.25},
|
||||
{"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25},
|
||||
{"matrix": [4, 2], "x": 2.25, "y": 4.25},
|
||||
{"matrix": [4, 3], "x": 3.25, "y": 4.25},
|
||||
{"matrix": [4, 4], "x": 4.25, "y": 4.25},
|
||||
{"matrix": [4, 5], "x": 5.25, "y": 4.25, "w": 1.75},
|
||||
{"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5},
|
||||
{"matrix": [5, 2], "x": 2.75, "y": 5.25},
|
||||
{"matrix": [5, 3], "x": 3.75, "y": 5.25},
|
||||
{"matrix": [5, 4], "x": 4.75, "y": 5.25},
|
||||
{"matrix": [5, 5], "x": 6, "y": 5.25}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
25
keyboards/keychron/x0/mcuconf.h
Normal file
25
keyboards/keychron/x0/mcuconf.h
Normal file
@@ -0,0 +1,25 @@
|
||||
/* Copyright 2020 QMK
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include_next <mcuconf.h>
|
||||
|
||||
#undef STM32_PLLM_VALUE
|
||||
#define STM32_PLLM_VALUE 8
|
||||
|
||||
#undef STM32_I2C_USE_I2C1
|
||||
#define STM32_I2C_USE_I2C1 TRUE
|
||||
23
keyboards/keychron/x0/readme.md
Normal file
23
keyboards/keychron/x0/readme.md
Normal file
@@ -0,0 +1,23 @@
|
||||
# Lemokey X0
|
||||
|
||||

|
||||
|
||||
A one-handed gaming keypad.
|
||||
|
||||
* Keyboard Maintainer: [Keychron](https://github.com/keychron)
|
||||
* Hardware Supported: Lemokey X0
|
||||
* Hardware Availability: [Keychron](https://www.lemokey.com/products/lemokey-x0-qmk-wired-mechanical-gaming-keypad)
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make keychron/x0/red:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make keychron/x0/red: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
|
||||
|
||||
To enter the bootloader, hold down the key located at **K00**, labelled and commonly programmed as **Esc**, while plugging in the keyboard.
|
||||
25
keyboards/keychron/x0/red/config.h
Normal file
25
keyboards/keychron/x0/red/config.h
Normal file
@@ -0,0 +1,25 @@
|
||||
/* Copyright 2023 @ Keychron (https://www.keychron.com)
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#ifdef LED_MATRIX_ENABLE
|
||||
# define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND
|
||||
|
||||
# define SNLED27351_PHASE_CHANNEL SNLED27351_SCAN_PHASE_6_CHANNEL
|
||||
# define SNLED27351_CURRENT_TUNE \
|
||||
{ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60 }
|
||||
#endif
|
||||
60
keyboards/keychron/x0/red/keyboard.json
Normal file
60
keyboards/keychron/x0/red/keyboard.json
Normal file
@@ -0,0 +1,60 @@
|
||||
{
|
||||
"features": {
|
||||
"led_matrix": true
|
||||
},
|
||||
"led_matrix": {
|
||||
"animations": {
|
||||
"band_pinwheel": true,
|
||||
"band_spiral": true,
|
||||
"breathing": true,
|
||||
"cycle_left_right": true,
|
||||
"cycle_out_in": true,
|
||||
"cycle_up_down": true,
|
||||
"dual_beacon": true,
|
||||
"solid_reactive_multinexus": true,
|
||||
"solid_reactive_multiwide": true,
|
||||
"solid_reactive_simple": true,
|
||||
"solid_splash": true,
|
||||
"wave_left_right": true,
|
||||
"wave_up_down": true
|
||||
},
|
||||
"driver": "snled27351",
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
|
||||
{"matrix": [0, 1], "x": 37, "y": 0, "flags": 1},
|
||||
{"matrix": [0, 2], "x": 75, "y": 0, "flags": 1},
|
||||
{"matrix": [0, 3], "x": 112, "y": 0, "flags": 1},
|
||||
{"matrix": [0, 4], "x": 149, "y": 0, "flags": 1},
|
||||
{"matrix": [0, 5], "x": 187, "y": 0, "flags": 1},
|
||||
{"matrix": [1, 0], "x": 0, "y": 13, "flags": 1},
|
||||
{"matrix": [1, 1], "x": 37, "y": 13, "flags": 4},
|
||||
{"matrix": [1, 2], "x": 75, "y": 13, "flags": 4},
|
||||
{"matrix": [1, 3], "x": 112, "y": 13, "flags": 4},
|
||||
{"matrix": [1, 4], "x": 149, "y": 13, "flags": 4},
|
||||
{"matrix": [1, 5], "x": 187, "y": 13, "flags": 4},
|
||||
{"matrix": [1, 6], "x": 224, "y": 13, "flags": 4},
|
||||
{"matrix": [2, 0], "x": 0, "y": 26, "flags": 1},
|
||||
{"matrix": [2, 1], "x": 37, "y": 26, "flags": 4},
|
||||
{"matrix": [2, 2], "x": 75, "y": 26, "flags": 4},
|
||||
{"matrix": [2, 3], "x": 112, "y": 26, "flags": 4},
|
||||
{"matrix": [2, 4], "x": 149, "y": 26, "flags": 4},
|
||||
{"matrix": [2, 5], "x": 187, "y": 26, "flags": 4},
|
||||
{"matrix": [3, 0], "x": 0, "y": 38, "flags": 1},
|
||||
{"matrix": [3, 1], "x": 37, "y": 38, "flags": 4},
|
||||
{"matrix": [3, 2], "x": 75, "y": 38, "flags": 4},
|
||||
{"matrix": [3, 3], "x": 112, "y": 38, "flags": 4},
|
||||
{"matrix": [3, 4], "x": 149, "y": 38, "flags": 4},
|
||||
{"matrix": [3, 5], "x": 187, "y": 38, "flags": 4},
|
||||
{"matrix": [4, 0], "x": 0, "y": 51, "flags": 1},
|
||||
{"matrix": [4, 2], "x": 75, "y": 51, "flags": 4},
|
||||
{"matrix": [4, 3], "x": 112, "y": 51, "flags": 4},
|
||||
{"matrix": [4, 4], "x": 149, "y": 51, "flags": 4},
|
||||
{"matrix": [4, 5], "x": 187, "y": 51, "flags": 4},
|
||||
{"matrix": [5, 0], "x": 0, "y": 64, "flags": 1},
|
||||
{"matrix": [5, 2], "x": 75, "y": 64, "flags": 1},
|
||||
{"matrix": [5, 3], "x": 112, "y": 64, "flags": 1},
|
||||
{"matrix": [5, 4], "x": 149, "y": 64, "flags": 1}
|
||||
],
|
||||
"sleep": true
|
||||
}
|
||||
}
|
||||
41
keyboards/keychron/x0/red/keymaps/default/keymap.c
Normal file
41
keyboards/keychron/x0/red/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,41 @@
|
||||
/* Copyright 2023 @ Keychron (https://www.keychron.com)
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
enum layers {
|
||||
WIN_BASE,
|
||||
WIN_FN,
|
||||
};
|
||||
|
||||
// clang-format off
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[WIN_BASE] = LAYOUT(
|
||||
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5,
|
||||
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V,
|
||||
KC_LCTL, KC_LALT, MO(WIN_FN), MO(WIN_FN), KC_SPC),
|
||||
|
||||
[WIN_FN] = LAYOUT(
|
||||
_______, KC_BRID, KC_BRIU, LGUI(KC_TAB), LGUI(KC_E), _______,
|
||||
_______, _______, _______, _______, _______, _______, _______,
|
||||
LM_TOGG, LM_PREV, LM_BRIU, LM_NEXT, _______, _______,
|
||||
_______, LM_SPDD, LM_BRID, LM_SPDU, _______, _______,
|
||||
_______, _______, _______, _______, NK_TOGG,
|
||||
_______, _______, _______, _______, _______),
|
||||
};
|
||||
61
keyboards/keychron/x0/red/red.c
Normal file
61
keyboards/keychron/x0/red/red.c
Normal file
@@ -0,0 +1,61 @@
|
||||
/* Copyright 2023 @ Keychron (https://www.keychron.com)
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "quantum.h"
|
||||
|
||||
#ifdef LED_MATRIX_ENABLE
|
||||
// clang-format off
|
||||
const snled27351_led_t PROGMEM g_snled27351_leds[LED_MATRIX_LED_COUNT] = {
|
||||
/* Refer to SNLED27351 manual for these locations
|
||||
* driver
|
||||
* | LED address
|
||||
* | | */
|
||||
{0, CB6_CA1 },
|
||||
{0, CB6_CA2 },
|
||||
{0, CB6_CA3 },
|
||||
{0, CB6_CA4 },
|
||||
{0, CB6_CA5 },
|
||||
{0, CB6_CA6 },
|
||||
{0, CB5_CA1 },
|
||||
{0, CB5_CA2 },
|
||||
{0, CB5_CA3 },
|
||||
{0, CB5_CA4 },
|
||||
{0, CB5_CA5 },
|
||||
{0, CB5_CA6 },
|
||||
{0, CB5_CA7 },
|
||||
{0, CB4_CA1 },
|
||||
{0, CB4_CA2 },
|
||||
{0, CB4_CA3 },
|
||||
{0, CB4_CA4 },
|
||||
{0, CB4_CA5 },
|
||||
{0, CB4_CA6 },
|
||||
{0, CB3_CA1 },
|
||||
{0, CB3_CA2 },
|
||||
{0, CB3_CA3 },
|
||||
{0, CB3_CA4 },
|
||||
{0, CB3_CA5 },
|
||||
{0, CB3_CA6 },
|
||||
{0, CB2_CA1 },
|
||||
{0, CB2_CA3 },
|
||||
{0, CB2_CA4 },
|
||||
{0, CB2_CA5 },
|
||||
{0, CB2_CA6 },
|
||||
{0, CB1_CA1 },
|
||||
{0, CB1_CA3 },
|
||||
{0, CB1_CA4 },
|
||||
{0, CB1_CA5 },
|
||||
};
|
||||
#endif
|
||||
@@ -201,6 +201,81 @@
|
||||
{"matrix": [4, 13], "x":13.5, "y":4, "w":1.5}
|
||||
]
|
||||
},
|
||||
"LAYOUT_1x2u": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x":0, "y":0, "w":1.5},
|
||||
{"matrix": [0, 1], "x":1.5, "y":0},
|
||||
{"matrix": [0, 2], "x":2.5, "y":0},
|
||||
{"matrix": [0, 3], "x":3.5, "y":0},
|
||||
{"matrix": [0, 4], "x":4.5, "y":0},
|
||||
{"matrix": [0, 5], "x":5.5, "y":0},
|
||||
{"matrix": [0, 6], "x":6.5, "y":0},
|
||||
{"matrix": [0, 7], "x":7.5, "y":0},
|
||||
{"matrix": [0, 8], "x":8.5, "y":0},
|
||||
{"matrix": [0, 9], "x":9.5, "y":0},
|
||||
{"matrix": [0, 10], "x":10.5, "y":0},
|
||||
{"matrix": [0, 11], "x":11.5, "y":0},
|
||||
{"matrix": [0, 12], "x":12.5, "y":0},
|
||||
{"matrix": [0, 13], "x":13.5, "y":0, "w":1.5},
|
||||
|
||||
{"matrix": [1, 0], "x":0, "y":1, "w":1.5},
|
||||
{"matrix": [1, 1], "x":1.5, "y":1},
|
||||
{"matrix": [1, 2], "x":2.5, "y":1},
|
||||
{"matrix": [1, 3], "x":3.5, "y":1},
|
||||
{"matrix": [1, 4], "x":4.5, "y":1},
|
||||
{"matrix": [1, 5], "x":5.5, "y":1},
|
||||
{"matrix": [1, 6], "x":6.5, "y":1, "h":1.5},
|
||||
{"matrix": [1, 7], "x":7.5, "y":1, "h":1.5},
|
||||
{"matrix": [1, 8], "x":8.5, "y":1},
|
||||
{"matrix": [1, 9], "x":9.5, "y":1},
|
||||
{"matrix": [1, 10], "x":10.5, "y":1},
|
||||
{"matrix": [1, 11], "x":11.5, "y":1},
|
||||
{"matrix": [1, 12], "x":12.5, "y":1},
|
||||
{"matrix": [1, 13], "x":13.5, "y":1, "w":1.5},
|
||||
|
||||
{"matrix": [2, 0], "x":0, "y":2, "w":1.5},
|
||||
{"matrix": [2, 1], "x":1.5, "y":2},
|
||||
{"matrix": [2, 2], "x":2.5, "y":2},
|
||||
{"matrix": [2, 3], "x":3.5, "y":2},
|
||||
{"matrix": [2, 4], "x":4.5, "y":2},
|
||||
{"matrix": [2, 5], "x":5.5, "y":2},
|
||||
{"matrix": [2, 8], "x":8.5, "y":2},
|
||||
{"matrix": [2, 9], "x":9.5, "y":2},
|
||||
{"matrix": [2, 10], "x":10.5, "y":2},
|
||||
{"matrix": [2, 11], "x":11.5, "y":2},
|
||||
{"matrix": [2, 12], "x":12.5, "y":2},
|
||||
{"matrix": [2, 13], "x":13.5, "y":2, "w":1.5},
|
||||
|
||||
{"matrix": [3, 0], "x":0, "y":3, "w":1.5},
|
||||
{"matrix": [3, 1], "x":1.5, "y":3},
|
||||
{"matrix": [3, 2], "x":2.5, "y":3},
|
||||
{"matrix": [3, 3], "x":3.5, "y":3},
|
||||
{"matrix": [3, 4], "x":4.5, "y":3},
|
||||
{"matrix": [3, 5], "x":5.5, "y":3},
|
||||
{"matrix": [3, 6], "x":6.5, "y":2.5, "h":1.5},
|
||||
{"matrix": [3, 7], "x":7.5, "y":2.5, "h":1.5},
|
||||
{"matrix": [3, 8], "x":8.5, "y":3},
|
||||
{"matrix": [3, 9], "x":9.5, "y":3},
|
||||
{"matrix": [3, 10], "x":10.5, "y":3},
|
||||
{"matrix": [3, 11], "x":11.5, "y":3},
|
||||
{"matrix": [3, 12], "x":12.5, "y":3},
|
||||
{"matrix": [3, 13], "x":13.5, "y":3, "w":1.5},
|
||||
|
||||
{"matrix": [4, 0], "x":0, "y":4, "w":1.5},
|
||||
{"matrix": [4, 1], "x":1.5, "y":4},
|
||||
{"matrix": [4, 2], "x":2.5, "y":4},
|
||||
{"matrix": [4, 3], "x":3.5, "y":4},
|
||||
{"matrix": [4, 4], "x":4.5, "y":4},
|
||||
{"matrix": [4, 5], "x":5.5, "y":4},
|
||||
{"matrix": [4, 6], "x":6.5, "y":4, "w":2},
|
||||
{"matrix": [4, 8], "x":8.5, "y":4},
|
||||
{"matrix": [4, 9], "x":9.5, "y":4},
|
||||
{"matrix": [4, 10], "x":10.5, "y":4},
|
||||
{"matrix": [4, 11], "x":11.5, "y":4},
|
||||
{"matrix": [4, 12], "x":12.5, "y":4},
|
||||
{"matrix": [4, 13], "x":13.5, "y":4, "w":1.5}
|
||||
]
|
||||
},
|
||||
"LAYOUT_2x3u": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x":0, "y":0, "w":1.5},
|
||||
|
||||
10
keyboards/mzmkb/slimdash/info.json
Normal file
10
keyboards/mzmkb/slimdash/info.json
Normal file
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"manufacturer": "mzmkb",
|
||||
"maintainer": "mizma",
|
||||
"bootloader": "rp2040",
|
||||
"processor": "RP2040",
|
||||
"split": {
|
||||
"enabled": true
|
||||
},
|
||||
"url": "https://github.com/mizma/slimdash"
|
||||
}
|
||||
41
keyboards/mzmkb/slimdash/readme.md
Normal file
41
keyboards/mzmkb/slimdash/readme.md
Normal file
@@ -0,0 +1,41 @@
|
||||
# Slimdash
|
||||
|
||||

|
||||
|
||||
__SlimDash__ is a slim low profile split ortho-staggered keyboard inspired by omkbd/ErgoDash
|
||||
with following key highlights:
|
||||
|
||||
* Ortho-Staggered Split keyboard layout
|
||||
* Slim body (20-22mm depending on key caps and rubber feet used)
|
||||
* Rigid body structure
|
||||
* Per-Key RGB LED Matrix lighting
|
||||
* USB-C connector
|
||||
* Easy build utilizing PCBA service for the harder SMT components
|
||||
* Keyboard Maintainer: [mizma](https://github.com/mizma)
|
||||
* Hardware Supported: [SlimDash](https://github.com/mizma/SlimDash/)
|
||||
* Hardware Availability: Build your own using design data at [SlimDash](https://github.com/mizma/SlimDash/)
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make mzmkb/slimdash/rev1:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make mzmkb/slimdash/rev1:default:flash
|
||||
|
||||
You may also enter Bootloader on your keyboard, and copy the `mzmkb_slimdash_*_*.uf2`
|
||||
file into the `RPI-RP2` drive shown in your PC.
|
||||
|
||||
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:
|
||||
|
||||
* __Reset button__: Double-tap the RESET button on the side of the keyboard near
|
||||
TRRS jack.
|
||||
* __Physical reset button__: Hold BOOT_SW and press RESET on the side of the keyboard
|
||||
near TRRS jack.
|
||||
* __Keycode in layout__: Press the key mapped to `QK_BOOT` if it is available
|
||||
28
keyboards/mzmkb/slimdash/rev1/config.h
Normal file
28
keyboards/mzmkb/slimdash/rev1/config.h
Normal file
@@ -0,0 +1,28 @@
|
||||
/* Copyright 2025 mizma (@mizma)
|
||||
*
|
||||
* 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
|
||||
|
||||
// Make it easier to enter the bootloader
|
||||
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
|
||||
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U
|
||||
|
||||
// UART1, communication between the two halves
|
||||
#define SERIAL_USART_FULL_DUPLEX // Enable full duplex operation mode
|
||||
#define SERIAL_USART_TX_PIN GP17 // USART TX pin
|
||||
#define SERIAL_USART_RX_PIN GP18 // USART RX pin
|
||||
#define SERIAL_PIO_USE_PIO1 // Use PIO1 as PIO0 is used for WS2812 driver
|
||||
|
||||
239
keyboards/mzmkb/slimdash/rev1/keyboard.json
Normal file
239
keyboards/mzmkb/slimdash/rev1/keyboard.json
Normal file
@@ -0,0 +1,239 @@
|
||||
{
|
||||
"keyboard_name": "slimdash rev1.0",
|
||||
"diode_direction": "COL2ROW",
|
||||
"features": {
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
"nkro": true,
|
||||
"rgb_matrix": true,
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["GP0", "GP1", "GP3", "GP5", "GP8", "GP7", "GP9"],
|
||||
"rows": ["GP2", "GP4", "GP6", "GP11", "GP10"]
|
||||
},
|
||||
"rgb_matrix": {
|
||||
"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_color": 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
|
||||
},
|
||||
"driver": "ws2812",
|
||||
"layout": [
|
||||
{"matrix": [3, 6], "x": 105, "y": 51, "flags": 4},
|
||||
{"matrix": [4, 6], "x": 105, "y": 64, "flags": 4},
|
||||
{"matrix": [4, 5], "x": 90, "y": 51, "flags": 4},
|
||||
{"matrix": [4, 4], "x": 75, "y": 51, "flags": 4},
|
||||
{"matrix": [4, 3], "x": 45, "y": 51, "flags": 4},
|
||||
{"matrix": [4, 2], "x": 30, "y": 51, "flags": 4},
|
||||
{"matrix": [4, 1], "x": 15, "y": 51, "flags": 4},
|
||||
{"matrix": [4, 0], "x": 0, "y": 51, "flags": 4},
|
||||
{"matrix": [3, 0], "x": 0, "y": 38, "flags": 4},
|
||||
{"matrix": [3, 1], "x": 15, "y": 38, "flags": 4},
|
||||
{"matrix": [3, 2], "x": 30, "y": 38, "flags": 4},
|
||||
{"matrix": [3, 3], "x": 45, "y": 38, "flags": 4},
|
||||
{"matrix": [3, 4], "x": 60, "y": 38, "flags": 4},
|
||||
{"matrix": [3, 5], "x": 75, "y": 38, "flags": 4},
|
||||
{"matrix": [2, 6], "x": 90, "y": 26, "flags": 4},
|
||||
{"matrix": [1, 6], "x": 90, "y": 13, "flags": 4},
|
||||
{"matrix": [2, 5], "x": 75, "y": 26, "flags": 4},
|
||||
{"matrix": [2, 4], "x": 60, "y": 26, "flags": 4},
|
||||
{"matrix": [2, 3], "x": 45, "y": 26, "flags": 4},
|
||||
{"matrix": [2, 2], "x": 30, "y": 26, "flags": 4},
|
||||
{"matrix": [2, 1], "x": 15, "y": 26, "flags": 4},
|
||||
{"matrix": [2, 0], "x": 0, "y": 26, "flags": 4},
|
||||
{"matrix": [1, 0], "x": 0, "y": 13, "flags": 4},
|
||||
{"matrix": [1, 1], "x": 15, "y": 13, "flags": 4},
|
||||
{"matrix": [1, 2], "x": 30, "y": 13, "flags": 4},
|
||||
{"matrix": [1, 3], "x": 45, "y": 13, "flags": 4},
|
||||
{"matrix": [1, 4], "x": 60, "y": 13, "flags": 4},
|
||||
{"matrix": [1, 5], "x": 75, "y": 13, "flags": 4},
|
||||
{"matrix": [0, 6], "x": 90, "y": 0, "flags": 4},
|
||||
{"matrix": [0, 5], "x": 75, "y": 0, "flags": 4},
|
||||
{"matrix": [0, 4], "x": 60, "y": 0, "flags": 4},
|
||||
{"matrix": [0, 3], "x": 45, "y": 0, "flags": 4},
|
||||
{"matrix": [0, 2], "x": 30, "y": 0, "flags": 4},
|
||||
{"matrix": [0, 1], "x": 15, "y": 0, "flags": 4},
|
||||
{"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
|
||||
{"matrix": [8, 6], "x": 119, "y": 51, "flags": 4},
|
||||
{"matrix": [9, 6], "x": 119, "y": 64, "flags": 4},
|
||||
{"matrix": [9, 5], "x": 134, "y": 51, "flags": 4},
|
||||
{"matrix": [9, 4], "x": 149, "y": 51, "flags": 4},
|
||||
{"matrix": [9, 3], "x": 179, "y": 51, "flags": 4},
|
||||
{"matrix": [9, 2], "x": 194, "y": 51, "flags": 4},
|
||||
{"matrix": [9, 1], "x": 209, "y": 51, "flags": 4},
|
||||
{"matrix": [9, 0], "x": 224, "y": 51, "flags": 4},
|
||||
{"matrix": [8, 0], "x": 224, "y": 38, "flags": 4},
|
||||
{"matrix": [8, 1], "x": 209, "y": 38, "flags": 4},
|
||||
{"matrix": [8, 2], "x": 194, "y": 38, "flags": 4},
|
||||
{"matrix": [8, 3], "x": 179, "y": 38, "flags": 4},
|
||||
{"matrix": [8, 4], "x": 164, "y": 38, "flags": 4},
|
||||
{"matrix": [8, 5], "x": 149, "y": 38, "flags": 4},
|
||||
{"matrix": [7, 6], "x": 134, "y": 26, "flags": 4},
|
||||
{"matrix": [6, 6], "x": 134, "y": 13, "flags": 4},
|
||||
{"matrix": [7, 5], "x": 149, "y": 26, "flags": 4},
|
||||
{"matrix": [7, 4], "x": 164, "y": 26, "flags": 4},
|
||||
{"matrix": [7, 3], "x": 179, "y": 26, "flags": 4},
|
||||
{"matrix": [7, 2], "x": 194, "y": 26, "flags": 4},
|
||||
{"matrix": [7, 1], "x": 209, "y": 26, "flags": 4},
|
||||
{"matrix": [7, 0], "x": 224, "y": 26, "flags": 4},
|
||||
{"matrix": [6, 0], "x": 224, "y": 13, "flags": 4},
|
||||
{"matrix": [6, 1], "x": 209, "y": 13, "flags": 4},
|
||||
{"matrix": [6, 2], "x": 194, "y": 13, "flags": 4},
|
||||
{"matrix": [6, 3], "x": 179, "y": 13, "flags": 4},
|
||||
{"matrix": [6, 4], "x": 164, "y": 13, "flags": 4},
|
||||
{"matrix": [6, 5], "x": 149, "y": 13, "flags": 4},
|
||||
{"matrix": [5, 6], "x": 134, "y": 0, "flags": 4},
|
||||
{"matrix": [5, 5], "x": 149, "y": 0, "flags": 4},
|
||||
{"matrix": [5, 4], "x": 164, "y": 0, "flags": 4},
|
||||
{"matrix": [5, 3], "x": 179, "y": 0, "flags": 4},
|
||||
{"matrix": [5, 2], "x": 194, "y": 0, "flags": 4},
|
||||
{"matrix": [5, 1], "x": 209, "y": 0, "flags": 4},
|
||||
{"matrix": [5, 0], "x": 224, "y": 0, "flags": 4}
|
||||
],
|
||||
"max_brightness": 128,
|
||||
"sleep": true,
|
||||
"split_count": [35, 35]
|
||||
},
|
||||
"split": {
|
||||
"matrix_pins": {
|
||||
"right": {
|
||||
"cols": ["GP0", "GP1", "GP3", "GP5", "GP8", "GP7", "GP9"],
|
||||
"rows": ["GP2", "GP4", "GP6", "GP11", "GP10"]
|
||||
}
|
||||
},
|
||||
"serial": {
|
||||
"driver": "vendor"
|
||||
},
|
||||
"transport": {
|
||||
"sync": {
|
||||
"matrix_state": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"usb": {
|
||||
"device_version": "1.0.0",
|
||||
"pid": "0x7344",
|
||||
"vid": "0x4D5A"
|
||||
},
|
||||
"ws2812": {
|
||||
"driver": "vendor",
|
||||
"pin": "GP20"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0.375},
|
||||
{"matrix": [0, 1], "x": 1, "y": 0.375},
|
||||
{"matrix": [0, 2], "x": 2, "y": 0.125},
|
||||
{"matrix": [0, 3], "x": 3, "y": 0},
|
||||
{"matrix": [0, 4], "x": 4, "y": 0.125},
|
||||
{"matrix": [0, 5], "x": 5, "y": 0.25},
|
||||
{"matrix": [0, 6], "x": 6, "y": 0.75},
|
||||
{"matrix": [5, 6], "x": 11.5, "y": 0.75},
|
||||
{"matrix": [5, 5], "x": 12.5, "y": 0.25},
|
||||
{"matrix": [5, 4], "x": 13.5, "y": 0.125},
|
||||
{"matrix": [5, 3], "x": 14.5, "y": 0},
|
||||
{"matrix": [5, 2], "x": 15.5, "y": 0.125},
|
||||
{"matrix": [5, 1], "x": 16.5, "y": 0.375},
|
||||
{"matrix": [5, 0], "x": 17.5, "y": 0.375},
|
||||
{"matrix": [1, 0], "x": 0, "y": 1.375},
|
||||
{"matrix": [1, 1], "x": 1, "y": 1.375},
|
||||
{"matrix": [1, 2], "x": 2, "y": 1.125},
|
||||
{"matrix": [1, 3], "x": 3, "y": 1},
|
||||
{"matrix": [1, 4], "x": 4, "y": 1.125},
|
||||
{"matrix": [1, 5], "x": 5, "y": 1.25},
|
||||
{"matrix": [1, 6], "x": 6, "y": 1.75},
|
||||
{"matrix": [6, 6], "x": 11.5, "y": 1.75},
|
||||
{"matrix": [6, 5], "x": 12.5, "y": 1.25},
|
||||
{"matrix": [6, 4], "x": 13.5, "y": 1.125},
|
||||
{"matrix": [6, 3], "x": 14.5, "y": 1},
|
||||
{"matrix": [6, 2], "x": 15.5, "y": 1.125},
|
||||
{"matrix": [6, 1], "x": 16.5, "y": 1.375},
|
||||
{"matrix": [6, 0], "x": 17.5, "y": 1.375},
|
||||
{"matrix": [2, 0], "x": 0, "y": 2.375},
|
||||
{"matrix": [2, 1], "x": 1, "y": 2.375},
|
||||
{"matrix": [2, 2], "x": 2, "y": 2.125},
|
||||
{"matrix": [2, 3], "x": 3, "y": 2},
|
||||
{"matrix": [2, 4], "x": 4, "y": 2.125},
|
||||
{"matrix": [2, 5], "x": 5, "y": 2.25},
|
||||
{"matrix": [2, 6], "x": 6, "y": 2.75},
|
||||
{"matrix": [7, 6], "x": 11.5, "y": 2.75},
|
||||
{"matrix": [7, 5], "x": 12.5, "y": 2.25},
|
||||
{"matrix": [7, 4], "x": 13.5, "y": 2.125},
|
||||
{"matrix": [7, 3], "x": 14.5, "y": 2},
|
||||
{"matrix": [7, 2], "x": 15.5, "y": 2.125},
|
||||
{"matrix": [7, 1], "x": 16.5, "y": 2.375},
|
||||
{"matrix": [7, 0], "x": 17.5, "y": 2.375},
|
||||
{"matrix": [3, 0], "x": 0, "y": 3.375},
|
||||
{"matrix": [3, 1], "x": 1, "y": 3.375},
|
||||
{"matrix": [3, 2], "x": 2, "y": 3.125},
|
||||
{"matrix": [3, 3], "x": 3, "y": 3},
|
||||
{"matrix": [3, 4], "x": 4, "y": 3.125},
|
||||
{"matrix": [3, 5], "x": 5, "y": 3.25},
|
||||
{"matrix": [3, 6], "x": 7.25, "y": 4},
|
||||
{"matrix": [8, 6], "x": 10.25, "y": 4},
|
||||
{"matrix": [8, 5], "x": 12.5, "y": 3.25},
|
||||
{"matrix": [8, 4], "x": 13.5, "y": 3.125},
|
||||
{"matrix": [8, 3], "x": 14.5, "y": 3},
|
||||
{"matrix": [8, 2], "x": 15.5, "y": 3.125},
|
||||
{"matrix": [8, 1], "x": 16.5, "y": 3.375},
|
||||
{"matrix": [8, 0], "x": 17.5, "y": 3.375},
|
||||
{"matrix": [4, 0], "x": 0, "y": 4.375},
|
||||
{"matrix": [4, 1], "x": 1, "y": 4.375},
|
||||
{"matrix": [4, 2], "x": 2, "y": 4.125},
|
||||
{"matrix": [4, 3], "x": 3, "y": 4},
|
||||
{"matrix": [4, 4], "x": 5.25, "y": 5},
|
||||
{"matrix": [4, 5], "x": 6.25, "y": 4, "h": 2},
|
||||
{"matrix": [4, 6], "x": 7.25, "y": 5},
|
||||
{"matrix": [9, 6], "x": 10.25, "y": 5},
|
||||
{"matrix": [9, 5], "x": 11.25, "y": 4, "h": 2},
|
||||
{"matrix": [9, 4], "x": 12.25, "y": 5},
|
||||
{"matrix": [9, 3], "x": 14.5, "y": 4},
|
||||
{"matrix": [9, 2], "x": 15.5, "y": 4.125},
|
||||
{"matrix": [9, 1], "x": 16.5, "y": 4.375},
|
||||
{"matrix": [9, 0], "x": 17.5, "y": 4.375}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
126
keyboards/mzmkb/slimdash/rev1/keymaps/default/keymap.c
Normal file
126
keyboards/mzmkb/slimdash/rev1/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,126 @@
|
||||
/* Copyright 2025 mizma (@mizma)
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
enum layer_names {
|
||||
_QWERTY,
|
||||
_GAMEMODE,
|
||||
_LOWER,
|
||||
_RAISE
|
||||
};
|
||||
|
||||
#define LOWER MO(_LOWER)
|
||||
#define RAISE MO(_RAISE)
|
||||
#define GAMEM TG(_GAMEMODE)
|
||||
|
||||
#define EISU LALT(KC_GRV)
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
/* Qwerty
|
||||
* ,------------------------------------------------. .------------------------------------------------.
|
||||
* | ESC | 1 | 2 | 3 | 4 | 5 | - | | = | 6 | 7 | 8 | 9 | 0 | Bksp |
|
||||
* |------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
|
||||
* | Tab | Q | W | E | R | T | [ | | ] | Y | U | I | O | P | \ |
|
||||
* |------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
|
||||
* | LCTL | A | S | D | F | G | Del | | Ins | H | J | K | L | ; | ' |
|
||||
* |------+------+------+------+------+------+------. .------+------+------+------+------+------+------|
|
||||
* | LSFT | Z | X | C | V | B | | N | M | , | . | / | RSFT |
|
||||
* |------+------+------+------+------+--+---+--+------. .------+--+---+--+------+------+------+------+------|
|
||||
* | RM_DN| RM_UP| GAMEM| GUI | | | LALT | | RALT | | | HOME | END |PageUp|PageDn|
|
||||
* .---------------------------. .------| Space|------| |------| Enter|------. .---------------------------.
|
||||
* | Lower| | LSFT | | RCTL | | Raise|
|
||||
* .--------------------. .--------------------.
|
||||
*/
|
||||
[_QWERTY] = LAYOUT(
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MINS, KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
|
||||
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_DEL , KC_INS, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LALT, KC_RALT, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
|
||||
RM_VALD, RM_VALU, GAMEM, KC_LGUI, LOWER, KC_SPC, KC_LSFT, KC_RCTL, KC_ENT, RAISE, KC_HOME, KC_END, KC_PGUP, KC_PGDN
|
||||
),
|
||||
|
||||
/* Game Mode Toggle: sample toggle layer. turn off GUI key and add arrows
|
||||
* ,------------------------------------------------. .------------------------------------------------.
|
||||
* | | | | | | | | | | | | | | | |
|
||||
* |------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
|
||||
* | | | | | | | | | | | | | | | |
|
||||
* |------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
|
||||
* | | | | | | | | | | | | | | | |
|
||||
* |------+------+------+------+------+------+------. .------+------+------+------+------+------+------|
|
||||
* | | | | | | | | | | | | | |
|
||||
* |------+------+------+------+------+--+---+--+------. .------+--+---+--+------+------+------+------+------|
|
||||
* | | | | NOOP | | | | | | | | ← | ↓ | ↑ | → |
|
||||
* .---------------------------. .------| |------| |------| |------. .---------------------------.
|
||||
* | | | | | | | |
|
||||
* .--------------------. .--------------------.
|
||||
*/
|
||||
[_GAMEMODE] = LAYOUT(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, KC_NO, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
|
||||
),
|
||||
|
||||
/* Lower: NUMPAD, App/Media keys and RGM Matrix
|
||||
* ,------------------------------------------------. .------------------------------------------------.
|
||||
* | ` | | | | | Mute | Vol- | | Vol+ | | NumL | / | * | - | |
|
||||
* |------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
|
||||
* | | | | |RGBTGL| | BrDn | | BrUp | | 7 | 8 | 9 | + | |
|
||||
* |------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
|
||||
* | CAPS | | |RM_HUD|RM_HUU| |RM_PRV| |RM_NXT| | 4 | 5 | 6 | , | |
|
||||
* |------+------+------+------+------+------+------. .------+------+------+------+------+------+------|
|
||||
* | | | |RM_SPD|RM_SPU| | | | 1 | 2 | 3 | = | |
|
||||
* |------+------+------+------+------+--+---+--+------. .------+--+---+--+------+------+------+------+------|
|
||||
* | | | | | | | | | | | | 0 | . | | |
|
||||
* .---------------------------. .------| |------| |------| PENT |------. .---------------------------.
|
||||
* | | | | | | | |
|
||||
* .--------------------. .--------------------.
|
||||
*/
|
||||
[_LOWER] = LAYOUT(
|
||||
KC_GRV, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, _______,
|
||||
_______, _______, _______, _______, RM_TOGG, _______, KC_BRID, KC_BRIU, _______, KC_P7, KC_P8, KC_P9, KC_PPLS, _______,
|
||||
KC_CAPS, _______, _______, RM_HUED, RM_HUEU, _______, RM_PREV, RM_NEXT, _______, KC_P4, KC_P5, KC_P6, KC_PCMM, _______,
|
||||
_______, _______, _______, RM_SPDD, RM_SPDU, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, KC_PEQL, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, KC_PENT, _______, KC_P0, KC_PDOT, _______, _______
|
||||
),
|
||||
|
||||
/* Raise: Functions and Mouse
|
||||
* ,------------------------------------------------. .------------------------------------------------.
|
||||
* | ` | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
|
||||
* |------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
|
||||
* | | | |WheelL|WheelR| | | | | | | Pause|ScrolL| PrnSc| F12 |
|
||||
* |------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
|
||||
* | CAPS | |Mouse3|Mouse2|Mouse1|WheelU| | | | ← | ↓ | ↑ | → | | |
|
||||
* |------+------+------+------+------+------+------. .------+------+------+------+------+------+------|
|
||||
* | |Accel0|Accel1|Accel2| |WheelD| |MouseL|MouseD|MouseU|MouseR| | |
|
||||
* |------+------+------+------+------+--+---+--+------. .------+--+---+--+------+------+------+------+------|
|
||||
* | | | | | | | | | | | | | | | |
|
||||
* .---------------------------. .------| |------| |------| |------. .---------------------------.
|
||||
* | | | | | | | |
|
||||
* .--------------------. .--------------------.
|
||||
*/
|
||||
[_RAISE] = LAYOUT(
|
||||
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
|
||||
_______, _______, _______, MS_WHLL, MS_WHLR, _______, _______, _______, _______, _______, KC_PAUS, KC_SCRL, KC_PSCR, KC_F12,
|
||||
KC_CAPS, _______, MS_BTN3, MS_BTN2, MS_BTN1, MS_WHLU, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______,
|
||||
_______, MS_ACL0, MS_ACL1, MS_ACL2, _______, MS_WHLD, _______, _______, MS_LEFT, MS_DOWN, MS_UP, MS_RGHT, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
)
|
||||
};
|
||||
|
||||
@@ -20,6 +20,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#define AUDIO_VOICES
|
||||
#define AUDIO_PIN C6
|
||||
|
||||
#define AUDIO_INIT_DELAY
|
||||
|
||||
/*
|
||||
* Feature disable options
|
||||
* These options are also useful to firmware size reduction.
|
||||
|
||||
@@ -13,6 +13,7 @@ This is the modified version of [calculator by MWWorks](https://github.com/MWWor
|
||||
Feel free to fix it! I think it needs to detect the precision of the two operands and then figure out what the precision of the result should be
|
||||
|
||||
*/
|
||||
#include <math.h>
|
||||
#include "rubi.h"
|
||||
|
||||
static uint8_t calc_current_operand = 0;
|
||||
|
||||
@@ -217,34 +217,34 @@
|
||||
{"matrix": [0, 8], "x": 80, "y": 0, "flags": 4},
|
||||
{"matrix": [0, 9], "x": 104, "y": 0, "flags": 4},
|
||||
|
||||
{"matrix": [1, 4], "x": 16, "y": 13, "flags": 4},
|
||||
{"matrix": [1, 4], "x": 0, "y": 13, "flags": 4},
|
||||
{"matrix": [2, 4], "x": 20, "y": 13, "flags": 4},
|
||||
{"matrix": [1, 5], "x": 32, "y": 13, "flags": 4},
|
||||
{"matrix": [1, 6], "x": 48, "y": 13, "flags": 4},
|
||||
{"matrix": [1, 7], "x": 64, "y": 13, "flags": 4},
|
||||
{"matrix": [1, 8], "x": 80, "y": 13, "flags": 4},
|
||||
{"matrix": [1, 9], "x": 96, "y": 13, "flags": 4},
|
||||
{"matrix": [2, 4], "x": 0, "y": 13, "flags": 4},
|
||||
|
||||
|
||||
{"matrix": [3, 4], "x": 0, "y": 26, "flags": 4},
|
||||
{"matrix": [2, 5], "x": 20, "y": 26, "flags": 4},
|
||||
{"matrix": [2, 6], "x": 36, "y": 26, "flags": 4},
|
||||
{"matrix": [2, 7], "x": 52, "y": 26, "flags": 4},
|
||||
{"matrix": [2, 8], "x": 68, "y": 26, "flags": 4},
|
||||
{"matrix": [2, 9], "x": 84, "y": 26, "flags": 4},
|
||||
{"matrix": [3, 4], "x": 0, "y": 26, "flags": 4},
|
||||
|
||||
{"matrix": [4, 4], "x": 0, "y": 39, "flags": 5},
|
||||
{"matrix": [3, 5], "x": 24, "y": 39, "flags": 4},
|
||||
{"matrix": [3, 6], "x": 40, "y": 39, "flags": 4},
|
||||
{"matrix": [3, 7], "x": 56, "y": 39, "flags": 4},
|
||||
{"matrix": [3, 8], "x": 72, "y": 39, "flags": 4},
|
||||
{"matrix": [3, 9], "x": 88, "y": 39, "flags": 4},
|
||||
{"matrix": [4, 4], "x": 0, "y": 39, "flags": 5},
|
||||
|
||||
{"matrix": [5, 4], "x": 0, "y": 51, "flags": 5},
|
||||
{"matrix": [4, 5], "x": 28, "y": 51, "flags": 4},
|
||||
{"matrix": [4, 6], "x": 44, "y": 51, "flags": 4},
|
||||
{"matrix": [4, 7], "x": 60, "y": 51, "flags": 4},
|
||||
{"matrix": [4, 8], "x": 76, "y": 51, "flags": 4},
|
||||
{"matrix": [4, 9], "x": 92, "y": 51, "flags": 4},
|
||||
{"matrix": [5, 4], "x": 0, "y": 51, "flags": 5},
|
||||
|
||||
{"matrix": [5, 5], "x": 0, "y": 64, "flags": 5},
|
||||
{"matrix": [5, 6], "x": 20, "y": 64, "flags": 5},
|
||||
@@ -274,6 +274,7 @@
|
||||
{"matrix": [7, 8], "x": 220, "y": 13, "flags": 4},
|
||||
{"matrix": [7, 9], "x": 224, "y": 13, "flags": 4},
|
||||
|
||||
{"matrix": [9, 0], "x": 100, "y": 26, "flags": 4},
|
||||
{"matrix": [8, 0], "x": 116, "y": 26, "flags": 4},
|
||||
{"matrix": [8, 1], "x": 132, "y": 26, "flags": 4},
|
||||
{"matrix": [8, 2], "x": 148, "y": 26, "flags": 4},
|
||||
@@ -284,23 +285,22 @@
|
||||
{"matrix": [8, 7], "x": 216, "y": 26, "flags": 4},
|
||||
{"matrix": [8, 8], "x": 220, "y": 26, "flags": 4},
|
||||
{"matrix": [8, 9], "x": 224, "y": 26, "flags": 4},
|
||||
{"matrix": [9, 0], "x": 100, "y": 26, "flags": 4},
|
||||
|
||||
|
||||
{"matrix": [10, 0], "x": 104, "y": 39, "flags": 4},
|
||||
{"matrix": [9, 1], "x": 120, "y": 39, "flags": 4},
|
||||
{"matrix": [9, 2], "x": 136, "y": 39, "flags": 4},
|
||||
{"matrix": [9, 3], "x": 152, "y": 39, "flags": 4},
|
||||
{"matrix": [9, 4], "x": 168, "y": 39, "flags": 4},
|
||||
{"matrix": [9, 5], "x": 184, "y": 39, "flags": 4},
|
||||
{"matrix": [9, 6], "x": 200, "y": 39, "flags": 4},
|
||||
{"matrix": [10, 0], "x": 104, "y": 39, "flags": 4},
|
||||
|
||||
|
||||
{"matrix": [11, 0], "x": 108, "y": 51, "flags": 4},
|
||||
{"matrix": [10, 1], "x": 124, "y": 51, "flags": 4},
|
||||
{"matrix": [10, 2], "x": 140, "y": 51, "flags": 4},
|
||||
{"matrix": [10, 3], "x": 156, "y": 51, "flags": 4},
|
||||
{"matrix": [10, 4], "x": 172, "y": 51, "flags": 4},
|
||||
{"matrix": [10, 6], "x": 188, "y": 51, "flags": 5},
|
||||
{"matrix": [10, 8], "x": 216, "y": 51, "flags": 4},
|
||||
{"matrix": [11, 0], "x": 108, "y": 51, "flags": 4},
|
||||
|
||||
{"matrix": [11, 1], "x": 118, "y": 64, "flags": 4},
|
||||
{"matrix": [11, 3], "x": 144, "y": 64, "flags": 5},
|
||||
|
||||
@@ -67,7 +67,7 @@ enum sofle_layers {
|
||||
_DEFAULTS = 0,
|
||||
_QWERTY = 0,
|
||||
_COLEMAK,
|
||||
_COLEMAKDH,
|
||||
_COLEMAKDH,
|
||||
_LOWER,
|
||||
_RAISE,
|
||||
_ADJUST,
|
||||
@@ -87,231 +87,62 @@ enum custom_keycodes {
|
||||
#define KC_COLEMAKDH PDF(_COLEMAKDH)
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/*
|
||||
* QWERTY
|
||||
* ,-----------------------------------------. ,-----------------------------------------.
|
||||
* | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ` |
|
||||
* |------+------+------+------+------+------| |------+------+------+------+------+------|
|
||||
* | TAB | Q | W | E | R | T | | Y | U | I | O | P | Bspc |
|
||||
* |------+------+------+------+------+------| |------+------+------+------+------+------|
|
||||
* |LShift| A | S | D | F | G |-------. ,-------| H | J | K | L | ; | ' |
|
||||
* |------+------+------+------+------+------| MUTE | |DISCORD|------+------+------+------+------+------|
|
||||
* | LCTR | Z | X | C | V | B |-------| |-------| N | M | , | . | / |LShift|
|
||||
* `-----------------------------------------/ / \ \-----------------------------------------'
|
||||
* | Bspc | WIN |LOWER | Enter| /Space / \Enter \ |SPACE |RAISE | RCTR | RAlt |
|
||||
* | | | | |/ / \ \ | | | | |
|
||||
* `----------------------------------' '------''---------------------------'
|
||||
*/
|
||||
[_QWERTY] = LAYOUT(
|
||||
//,------------------------------------------------. ,---------------------------------------------------.
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, LT(_SWITCH,KC_6), KC_7, KC_8, KC_9, KC_0, KC_GRV,
|
||||
//|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------|
|
||||
LT(_NUMPAD,KC_TAB),KC_Q,KC_W,KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
|
||||
//|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------|
|
||||
KC_LSFT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
|
||||
//|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------|
|
||||
KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_MUTE, KC_D_MUTE,KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT,
|
||||
//|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------|
|
||||
KC_BSPC, KC_LGUI, KC_LOWER, KC_SPC, KC_ENT , KC_SPC, KC_ENT , KC_RAISE, KC_RCTL, KC_RALT
|
||||
// \--------+--------+--------+---------+-------| |--------+---------+--------+---------+-------/
|
||||
[_QWERTY] = LAYOUT(
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, LT(_SWITCH,KC_6), KC_7, KC_8, KC_9, KC_0, KC_GRV,
|
||||
LT(_NUMPAD,KC_TAB),KC_Q,KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
|
||||
KC_LSFT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
|
||||
KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_MUTE, KC_D_MUTE, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT,
|
||||
KC_BSPC, KC_LGUI, KC_LOWER, KC_SPC, KC_ENT, KC_SPC, KC_ENT, KC_RAISE,KC_RCTL, KC_RALT
|
||||
),
|
||||
|
||||
/*
|
||||
* COLEMAK
|
||||
* ,-----------------------------------------. ,-----------------------------------------.
|
||||
* | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ` |
|
||||
* |------+------+------+------+------+------| |------+------+------+------+------+------|
|
||||
* | TAB | Q | W | F | P | G | | J | L | U | Y | ; | Bspc |
|
||||
* |------+------+------+------+------+------| |------+------+------+------+------+------|
|
||||
* |LShift| A | R | S | T | D |-------. ,-------| H | N | E | I | O | ' |
|
||||
* |------+------+------+------+------+------| MUTE | |DISCORD|------+------+------+------+------+------|
|
||||
* | LCTR | Z | X | C | V | B |-------| |-------| K | M | , | . | / |LShift|
|
||||
* `-----------------------------------------/ / \ \-----------------------------------------'
|
||||
* | Bspc | WIN |LOWER | Enter| /Space / \Enter \ |SPACE |RAISE | RCTR | RAlt |
|
||||
* | | | | |/ / \ \ | | | | |
|
||||
* `----------------------------------' '------''---------------------------'
|
||||
*/
|
||||
[_COLEMAK] = LAYOUT(
|
||||
//,------------------------------------------------. ,---------------------------------------------------.
|
||||
KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, LT(_SWITCH,KC_6), KC_7, KC_8, KC_9, KC_0, KC_TRNS,
|
||||
//|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------|
|
||||
KC_TRNS, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_TRNS,
|
||||
//|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------|
|
||||
KC_TRNS, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_TRNS,
|
||||
//|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------|
|
||||
KC_TRNS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_TRNS, KC_TRNS,KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_TRNS,
|
||||
//|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------|
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
// \--------+--------+--------+---------+-------| |--------+---------+--------+---------+-------/
|
||||
_______, KC_1, KC_2, KC_3, KC_4, KC_5, LT(_SWITCH,KC_6), KC_7, KC_8, KC_9, KC_0, _______,
|
||||
_______, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, _______,
|
||||
_______, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, _______,
|
||||
_______, KC_Z, KC_X, KC_C, KC_V, KC_B, _______, _______, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
/*
|
||||
* COLEMAK-DH
|
||||
* ,-----------------------------------------. ,-----------------------------------------.
|
||||
* | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ` |
|
||||
* |------+------+------+------+------+------| |------+------+------+------+------+------|
|
||||
* | TAB | Q | W | F | P | B | | J | L | U | Y | ; | Bspc |
|
||||
* |------+------+------+------+------+------| |------+------+------+------+------+------|
|
||||
* |LShift| A | R | S | T | G |-------. ,-------| M | N | E | I | O | ' |
|
||||
* |------+------+------+------+------+------| MUTE | |DISCORD|------+------+------+------+------+------|
|
||||
* | LCTR | Z | X | C | D | V |-------| |-------| K | H | , | . | / |LShift|
|
||||
* `-----------------------------------------/ / \ \-----------------------------------------'
|
||||
* | Bspc | WIN |LOWER | Enter| /Space / \Enter \ |SPACE |RAISE | RCTR | RAlt |
|
||||
* | | | | |/ / \ \ | | | | |
|
||||
* `----------------------------------' '------''---------------------------'
|
||||
*/
|
||||
[_COLEMAKDH] = LAYOUT(
|
||||
//,------------------------------------------------. ,---------------------------------------------------.
|
||||
KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, LT(_SWITCH,KC_6), KC_7, KC_8, KC_9, KC_0, KC_TRNS,
|
||||
//|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------|
|
||||
KC_TRNS, KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_TRNS,
|
||||
//|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------|
|
||||
KC_TRNS, KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O, KC_TRNS,
|
||||
//|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------|
|
||||
KC_TRNS, KC_Z, KC_X, KC_C, KC_D, KC_V, KC_TRNS, KC_TRNS,KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, KC_TRNS,
|
||||
//|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------|
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
// \--------+--------+--------+---------+-------| |--------+---------+--------+---------+-------/
|
||||
_______, KC_1, KC_2, KC_3, KC_4, KC_5, LT(_SWITCH,KC_6), KC_7, KC_8, KC_9, KC_0, _______,
|
||||
_______, KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, _______,
|
||||
_______, KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O, _______,
|
||||
_______, KC_Z, KC_X, KC_C, KC_D, KC_V, _______, _______, KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
/* LOWER
|
||||
* ,-----------------------------------------. ,-----------------------------------------.
|
||||
* | trans| F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 |
|
||||
* |------+------+------+------+------+------| |------+------+------+------+------+------|
|
||||
* | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | F12 |
|
||||
* |------+------+------+------+------+------| |------+------+------+------+------+------|
|
||||
* | trans| ! | @ | # | $ | % |-------. ,-------| ^ | & | * | ( | ) | | |
|
||||
* |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------|
|
||||
* | trans| = | - | + | { | } |-------| |-------| [ | ] | ; | : | \ | Shift|
|
||||
* `-----------------------------------------/ / \ \-----------------------------------------'
|
||||
* | Bspc | WIN |LOWER | Enter| /Space / \Enter \ |SPACE |RAISE | RCTR | RAlt |
|
||||
* | | | | |/ / \ \ | | | | |
|
||||
* `----------------------------------' '------''---------------------------'
|
||||
*/
|
||||
[_LOWER] = LAYOUT(
|
||||
//,------------------------------------------------. ,---------------------------------------------------.
|
||||
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
|
||||
//|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------|
|
||||
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
|
||||
//|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------|
|
||||
_______, KC_NO, KC_NO, KC_NO, KC_WH_U, KC_PGUP, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_NO, KC_DEL,
|
||||
//|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------|
|
||||
_______, KC_NO, KC_NO, KC_NO, KC_WH_D, KC_PGDN,_______, _______,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, _______,
|
||||
//|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------|
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
// \--------+--------+--------+---------+-------| |--------+---------+--------+---------+-------/
|
||||
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
|
||||
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_F12,
|
||||
_______, XXXXXXX, XXXXXXX, XXXXXXX, KC_WH_U, KC_PGUP, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, XXXXXXX, KC_DEL,
|
||||
_______, XXXXXXX, XXXXXXX, XXXXXXX, KC_WH_D, KC_PGDN, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
/* RAISE
|
||||
* ,----------------------------------------. ,-----------------------------------------.
|
||||
* | | | | | | | | | | | | | |
|
||||
* |------+------+------+------+------+------| |------+------+------+------+------+------|
|
||||
* | Esc | Ins | Pscr | Menu | | | | | PWrd | Up | NWrd | DLine| Bspc |
|
||||
* |------+------+------+------+------+------| |------+------+------+------+------+------|
|
||||
* | Tab | LAt | LCtl |LShift| | Caps |-------. ,-------| | Left | Down | Rigth| Del | Bspc |
|
||||
* |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------|
|
||||
* |Shift | Undo | Cut | Copy | Paste| |-------| |-------| | LStr | | LEnd | | Shift|
|
||||
* `-----------------------------------------/ / \ \-----------------------------------------'
|
||||
* | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | RGUI |
|
||||
* | | | | |/ / \ \ | | | | |
|
||||
* `----------------------------------' '------''---------------------------'
|
||||
*/
|
||||
[_RAISE] = LAYOUT(
|
||||
//,------------------------------------------------. ,---------------------------------------------------.
|
||||
_______, _______ , _______ , _______ , _______ , _______, _______, _______ , _______, _______ , _______ ,_______,
|
||||
//|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------|
|
||||
_______, KC_INS, KC_PSCR, KC_APP, XXXXXXX, XXXXXXX, KC_CIRC, KC_AMPR,KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
|
||||
//|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------|
|
||||
_______, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX, KC_CAPS, KC_MINS, KC_EQL, KC_LCBR, KC_RCBR, KC_PIPE, KC_GRV,
|
||||
//|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------|
|
||||
_______,KC_UNDO, KC_CUT, KC_COPY, KC_PASTE, XXXXXXX,_______, _______,KC_UNDS, KC_PLUS,KC_LBRC, KC_RBRC, KC_BSLS, KC_TILD,
|
||||
//|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------|
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
// \--------+--------+--------+---------+-------| |--------+---------+--------+---------+-------/
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, KC_INS, KC_PSCR, KC_APP, XXXXXXX, XXXXXXX, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
|
||||
_______, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX, KC_CAPS, KC_MINS, KC_EQL, KC_LCBR, KC_RCBR, KC_PIPE, KC_GRV,
|
||||
_______, KC_UNDO, KC_CUT, KC_COPY, KC_PASTE, XXXXXXX, _______, _______, KC_UNDS, KC_PLUS, KC_LBRC, KC_RBRC, KC_BSLS, KC_TILD,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
/* ADJUST
|
||||
* ,-----------------------------------------. ,-----------------------------------------.
|
||||
* | | | | | | | | | | | | | |
|
||||
* |------+------+------+------+------+------| |------+------+------+------+------+------|
|
||||
* | QK_BOOT| | | | | | | | | | | | |
|
||||
* |------+------+------+------+------+------| |------+------+------+------+------+------|
|
||||
* |UG_TOGG|hue^ |sat ^ | bri ^| |COLEMAK|-------. ,-------|desk <| | |desk >| | |
|
||||
* |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------|
|
||||
* | mode | hue dn|sat d|bri dn| |QWERTY|-------| |-------| | PREV | PLAY | NEXT | | |
|
||||
* `-----------------------------------------/ / \ \-----------------------------------------'
|
||||
* | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | RGUI |
|
||||
* | | | | |/ / \ \ | | | | |
|
||||
* `----------------------------------' '------''---------------------------'
|
||||
*/
|
||||
[_ADJUST] = LAYOUT(
|
||||
//,------------------------------------------------. ,---------------------------------------------------.
|
||||
EE_CLR, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
//|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------|
|
||||
QK_BOOT, XXXXXXX,XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
//|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------|
|
||||
UG_TOGG, UG_HUEU,UG_SATU, UG_VALU, KC_COLEMAKDH,KC_COLEMAK, C(G(KC_LEFT)),KC_NO,KC_NO,C(G(KC_RGHT)),XXXXXXX, XXXXXXX,
|
||||
//|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------|
|
||||
UG_NEXT, UG_HUED,UG_SATD, UG_VALD, XXXXXXX,KC_QWERTY,XXXXXXX, XXXXXXX, XXXXXXX, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, XXXXXXX,
|
||||
//|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------|
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
// \--------+--------+--------+---------+-------| |--------+---------+--------+---------+-------/
|
||||
[_ADJUST] = LAYOUT(
|
||||
EE_CLR, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
UG_TOGG, UG_HUEU, UG_SATU, UG_VALU,KC_COLEMAKDH,KC_COLEMAK, C(G(KC_LEFT)), XXXXXXX, XXXXXXX,C(G(KC_RGHT)),XXXXXXX,XXXXXXX,
|
||||
UG_NEXT, UG_HUED, UG_SATD, UG_VALD, XXXXXXX,KC_QWERTY,XXXXXXX, XXXXXXX, XXXXXXX, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, XXXXXXX,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
/* NUMPAD
|
||||
* ,-----------------------------------------. ,-----------------------------------------.
|
||||
* | trans| | | | | | | |NumLck| | | | |
|
||||
* |------+------+------+------+------+------| |------+------+------+------+------+------|
|
||||
* | ` | | | | | | | ^ | 7 | 8 | 9 | * | |
|
||||
* |------+------+------+------+------+------| |------+------+------+------+------+------|
|
||||
* | trans| | | | | |-------. ,-------| - | 4 | 5 | 6 | | | |
|
||||
* |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------|
|
||||
* | trans| | | | | |-------| |-------| + | 1 | 2 | 3 | \ | Shift|
|
||||
* `-----------------------------------------/ / \ \-----------------------------------------'
|
||||
* | Bspc | WIN |LOWER | Enter| /Space / \Enter \ |SPACE | 0 | . | RAlt |
|
||||
* | | | | |/ / \ \ | | | | |
|
||||
* `----------------------------------' '------''---------------------------'
|
||||
*/
|
||||
[_NUMPAD] = LAYOUT(
|
||||
//,------------------------------------------------. ,---------------------------------------------------.
|
||||
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, KC_NUM, XXXXXXX, XXXXXXX,XXXXXXX, XXXXXXX,
|
||||
//|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------|
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_CIRC, KC_P7, KC_P8, KC_P9, KC_ASTR, XXXXXXX,
|
||||
//|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------|
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MINS, KC_P4, KC_P5, KC_P6, KC_EQL, KC_PIPE,
|
||||
//|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------|
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,_______, _______,KC_PLUS, KC_P1, KC_P2, KC_P3, KC_SLSH, _______,
|
||||
//|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------|
|
||||
_______, OSM(MOD_MEH), _______, _______, _______, _______, _______, KC_P0, KC_PDOT, _______
|
||||
// \--------+--------+--------+---------+-------| |--------+---------+--------+---------+-------/
|
||||
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, KC_NUM, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_CIRC, KC_P7, KC_P8, KC_P9, KC_ASTR, XXXXXXX,
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MINS, KC_P4, KC_P5, KC_P6, KC_EQL, KC_PIPE,
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, KC_PLUS, KC_P1, KC_P2, KC_P3, KC_SLSH, _______,
|
||||
_______, OSM(MOD_MEH), _______, _______, _______, _______, _______, KC_P0, KC_PDOT, _______
|
||||
),
|
||||
|
||||
/* SWITCH
|
||||
* ,-----------------------------------------. ,-----------------------------------------.
|
||||
* | | | | | | | | | | | | | |
|
||||
* |------+------+------+------+------+------| |------+------+------+------+------+------|
|
||||
* | qwer | cole |col_dh| low | raise| adj | |numpad| | | | |QK_BOOT |
|
||||
* |------+------+------+------+------+------| |------+------+------+------+------+------|
|
||||
* | | | | | | |-------. ,-------| | | | | |EE_CLR|
|
||||
* |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------|
|
||||
* | SLEEP| | | | | |-------| |-------| | | | | | |
|
||||
* `-----------------------------------------/ / \ \-----------------------------------------'
|
||||
* | Bspc | WIN |LOWER | Enter| /Space / \Enter \ |SPACE | 0 | . | RAlt |
|
||||
* | | | | |/ / \ \ | | | | |
|
||||
* `----------------------------------' '------''---------------------------'
|
||||
*/
|
||||
// layer switcher
|
||||
[_SWITCH] = LAYOUT(
|
||||
//,------------------------------------------------. ,---------------------------------------------------.
|
||||
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,XXXXXXX, XXXXXXX,
|
||||
//|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------|
|
||||
TO(0), TO(1), TO(2), TO(3), TO(4), TO(5), TO(6), KC_NO, KC_NO, KC_NO, KC_NO, QK_BOOT,
|
||||
//|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------|
|
||||
KC_NO, KC_NO, KC_BRIU, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, EE_CLR,
|
||||
//|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------|
|
||||
KC_SYSTEM_SLEEP,KC_NO,KC_NO,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
|
||||
//|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------|
|
||||
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
|
||||
// \--------+--------+--------+---------+-------| |--------+---------+--------+---------+-------/
|
||||
|
||||
),
|
||||
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
TO(0), TO(1), TO(2), TO(3), TO(4), TO(5), TO(6), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, QK_BOOT,
|
||||
XXXXXXX, XXXXXXX, KC_BRIU, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, EE_CLR,
|
||||
KC_SYSTEM_SLEEP,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
|
||||
),
|
||||
};
|
||||
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
|
||||
1
keyboards/spleeb/rules.mk
Normal file
1
keyboards/spleeb/rules.mk
Normal file
@@ -0,0 +1 @@
|
||||
POINTING_DEVICE_DRIVER = cirque_pinnacle_i2c
|
||||
@@ -8,6 +8,10 @@
|
||||
# include "print.h"
|
||||
#endif // CONSOLE_ENABLE
|
||||
|
||||
#ifdef POINTING_DEVICE_ENABLE
|
||||
# include "drivers/sensors/cirque_pinnacle_gestures.h"
|
||||
#endif // POINTING_DEVICE_ENABLE
|
||||
|
||||
#if defined(POINTING_DEVICE_ENABLE) || defined(SPLEEB_ENCODER_MODE_MAP_ENABLE)
|
||||
typedef union {
|
||||
uint16_t raw;
|
||||
|
||||
80
keyboards/splitkb/halcyon/elora/info.json
Normal file
80
keyboards/splitkb/halcyon/elora/info.json
Normal file
@@ -0,0 +1,80 @@
|
||||
{
|
||||
"manufacturer": "splitkb.com",
|
||||
"maintainer": "splitkb",
|
||||
"url": "https://splitkb.com",
|
||||
"usb": {
|
||||
"device_version": "1.0.0",
|
||||
"vid": "0x8D1D"
|
||||
},
|
||||
"layout_aliases": {
|
||||
"LAYOUT": "LAYOUT_split_4x6_5"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT_split_4x6_5": {
|
||||
"layout": [
|
||||
{"label": "L06", "matrix": [0, 6], "x": 0, "y": 0.75},
|
||||
{"label": "L05", "matrix": [0, 5], "x": 1, "y": 0.75},
|
||||
{"label": "L04", "matrix": [0, 4], "x": 2, "y": 0.25},
|
||||
{"label": "L03", "matrix": [0, 3], "x": 3, "y": 0},
|
||||
{"label": "L02", "matrix": [0, 2], "x": 4, "y": 0.25},
|
||||
{"label": "L01", "matrix": [0, 1], "x": 5, "y": 0.5},
|
||||
{"label": "R01", "matrix": [5, 1], "x": 10.5, "y": 0.5},
|
||||
{"label": "R02", "matrix": [5, 2], "x": 11.5, "y": 0.25},
|
||||
{"label": "R03", "matrix": [5, 3], "x": 12.5, "y": 0},
|
||||
{"label": "R04", "matrix": [5, 4], "x": 13.5, "y": 0.25},
|
||||
{"label": "R05", "matrix": [5, 5], "x": 14.5, "y": 0.75},
|
||||
{"label": "R06", "matrix": [5, 6], "x": 15.5, "y": 0.75},
|
||||
{"label": "L12", "matrix": [1, 6], "x": 0, "y": 1.75},
|
||||
{"label": "L11", "matrix": [1, 5], "x": 1, "y": 1.75},
|
||||
{"label": "L10", "matrix": [1, 4], "x": 2, "y": 1.25},
|
||||
{"label": "L09", "matrix": [1, 3], "x": 3, "y": 1},
|
||||
{"label": "L08", "matrix": [1, 2], "x": 4, "y": 1.25},
|
||||
{"label": "L07", "matrix": [1, 1], "x": 5, "y": 1.5},
|
||||
{"label": "R07", "matrix": [6, 1], "x": 10.5, "y": 1.5},
|
||||
{"label": "R08", "matrix": [6, 2], "x": 11.5, "y": 1.25},
|
||||
{"label": "R09", "matrix": [6, 3], "x": 12.5, "y": 1},
|
||||
{"label": "R10", "matrix": [6, 4], "x": 13.5, "y": 1.25},
|
||||
{"label": "R11", "matrix": [6, 5], "x": 14.5, "y": 1.75},
|
||||
{"label": "R12", "matrix": [6, 6], "x": 15.5, "y": 1.75},
|
||||
{"label": "L18", "matrix": [2, 6], "x": 0, "y": 2.75},
|
||||
{"label": "L17", "matrix": [2, 5], "x": 1, "y": 2.75},
|
||||
{"label": "L16", "matrix": [2, 4], "x": 2, "y": 2.25},
|
||||
{"label": "L15", "matrix": [2, 3], "x": 3, "y": 2},
|
||||
{"label": "L14", "matrix": [2, 2], "x": 4, "y": 2.25},
|
||||
{"label": "L13", "matrix": [2, 1], "x": 5, "y": 2.5},
|
||||
{"label": "R13", "matrix": [7, 1], "x": 10.5, "y": 2.5},
|
||||
{"label": "R14", "matrix": [7, 2], "x": 11.5, "y": 2.25},
|
||||
{"label": "R15", "matrix": [7, 3], "x": 12.5, "y": 2},
|
||||
{"label": "R16", "matrix": [7, 4], "x": 13.5, "y": 2.25},
|
||||
{"label": "R17", "matrix": [7, 5], "x": 14.5, "y": 2.75},
|
||||
{"label": "R18", "matrix": [7, 6], "x": 15.5, "y": 2.75},
|
||||
{"label": "L26", "matrix": [3, 6], "x": 0, "y": 3.75},
|
||||
{"label": "L25", "matrix": [3, 5], "x": 1, "y": 3.75},
|
||||
{"label": "L24", "matrix": [3, 4], "x": 2, "y": 3.25},
|
||||
{"label": "L23", "matrix": [3, 3], "x": 3, "y": 3},
|
||||
{"label": "L22", "matrix": [3, 2], "x": 4, "y": 3.25},
|
||||
{"label": "L21", "matrix": [3, 1], "x": 5, "y": 3.5},
|
||||
{"label": "L20", "matrix": [4, 3], "x": 6, "y": 4},
|
||||
{"label": "L19", "matrix": [3, 0], "x": 7, "y": 4.25},
|
||||
{"label": "R19", "matrix": [8, 0], "x": 8.5, "y": 4.25},
|
||||
{"label": "R20", "matrix": [9, 3], "x": 9.5, "y": 4},
|
||||
{"label": "R21", "matrix": [8, 1], "x": 10.5, "y": 3.5},
|
||||
{"label": "R22", "matrix": [8, 2], "x": 11.5, "y": 3.25},
|
||||
{"label": "R23", "matrix": [8, 3], "x": 12.5, "y": 3},
|
||||
{"label": "R24", "matrix": [8, 4], "x": 13.5, "y": 3.25},
|
||||
{"label": "R26", "matrix": [8, 5], "x": 14.5, "y": 3.75},
|
||||
{"label": "R27", "matrix": [8, 6], "x": 15.5, "y": 3.75},
|
||||
{"label": "L31", "matrix": [4, 4], "x": 2.5, "y": 4.25},
|
||||
{"label": "L30", "matrix": [4, 2], "x": 3.5, "y": 4.25},
|
||||
{"label": "L29", "matrix": [4, 1], "x": 4.5, "y": 4.5},
|
||||
{"label": "L28", "matrix": [4, 5], "x": 5.5, "y": 5},
|
||||
{"label": "L27", "matrix": [4, 0], "x": 6.5, "y": 5.25},
|
||||
{"label": "R27", "matrix": [9, 0], "x": 9, "y": 5.25},
|
||||
{"label": "R28", "matrix": [9, 5], "x": 10, "y": 5},
|
||||
{"label": "R29", "matrix": [9, 1], "x": 11, "y": 4.5},
|
||||
{"label": "R30", "matrix": [9, 2], "x": 12, "y": 4.25},
|
||||
{"label": "R31", "matrix": [9, 4], "x": 13, "y": 4.25}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
241
keyboards/splitkb/halcyon/elora/keymaps/default/keymap.c
Normal file
241
keyboards/splitkb/halcyon/elora/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,241 @@
|
||||
// Copyright 2025 splitkb.com (support@splitkb.com)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
enum layers {
|
||||
_QWERTY = 0,
|
||||
_DVORAK,
|
||||
_COLEMAK_DH,
|
||||
_NAV,
|
||||
_SYM,
|
||||
_FUNCTION,
|
||||
_ADJUST,
|
||||
};
|
||||
|
||||
// Aliases for readability
|
||||
#define QWERTY DF(_QWERTY)
|
||||
#define COLEMAK DF(_COLEMAK_DH)
|
||||
#define DVORAK DF(_DVORAK)
|
||||
|
||||
#define SYM MO(_SYM)
|
||||
#define NAV MO(_NAV)
|
||||
#define FKEYS MO(_FUNCTION)
|
||||
#define ADJUST MO(_ADJUST)
|
||||
|
||||
#define CTL_ESC MT(MOD_LCTL, KC_ESC)
|
||||
#define CTL_QUOT MT(MOD_RCTL, KC_QUOTE)
|
||||
#define CTL_MINS MT(MOD_RCTL, KC_MINUS)
|
||||
#define ALT_ENT MT(MOD_LALT, KC_ENT)
|
||||
|
||||
// Note: LAlt/Enter (ALT_ENT) is not the same thing as the keyboard shortcut Alt+Enter.
|
||||
// The notation `mod/tap` denotes a key that activates the modifier `mod` when held down, and
|
||||
// produces the key `tap` when tapped (i.e. pressed and released).
|
||||
|
||||
// clang-format off
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/*
|
||||
* Base Layer: QWERTY
|
||||
*
|
||||
* ,-------------------------------------------. ,-------------------------------------------.
|
||||
* | Esc | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Esc |
|
||||
* |--------+------+------+------+------+------| |------+------+------+------+------+--------|
|
||||
* | Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp |
|
||||
* |--------+------+------+------+------+------| |------+------+------+------+------+--------|
|
||||
* |Ctrl/Esc| A | S | D | F | G | | H | J | K | L | ; : |Ctrl/' "|
|
||||
* |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------|
|
||||
* | LShift | Z | X | C | V | B | [ { |CapsLk| |F-keys| ] } | N | M | , < | . > | / ? | RShift |
|
||||
* `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------'
|
||||
* |Adjust| LGUI | LAlt/| Space| Nav | | Sym | Space| AltGr| RGUI | Menu |
|
||||
* | | | Enter| | | | | | | | |
|
||||
* `----------------------------------' `----------------------------------'
|
||||
*/
|
||||
[_QWERTY] = LAYOUT(
|
||||
KC_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_ESC ,
|
||||
KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y, KC_U , KC_I , KC_O , KC_P , KC_BSPC,
|
||||
CTL_ESC , KC_A , KC_S , KC_D , KC_F , KC_G , KC_H, KC_J , KC_K , KC_L ,KC_SCLN,CTL_QUOT,
|
||||
KC_LSFT , KC_Z , KC_X , KC_C , KC_V , KC_B , KC_LBRC,KC_CAPS, FKEYS , KC_RBRC, KC_N, KC_M ,KC_COMM, KC_DOT ,KC_SLSH, KC_RSFT,
|
||||
ADJUST , KC_LGUI, ALT_ENT, KC_SPC , NAV , SYM , KC_SPC ,KC_RALT, KC_RGUI, KC_APP
|
||||
),
|
||||
|
||||
/*
|
||||
* Base Layer: Dvorak
|
||||
*
|
||||
* ,-------------------------------------------. ,-------------------------------------------.
|
||||
* | Esc | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Esc |
|
||||
* |--------+------+------+------+------+------| |------+------+------+------+------+--------|
|
||||
* | Tab | ' " | , < | . > | P | Y | | F | G | C | R | L | Bksp |
|
||||
* |--------+------+------+------+------+------| |------+------+------+------+------+--------|
|
||||
* |Ctrl/Esc| A | O | E | U | I | | D | H | T | N | S |Ctrl/- _|
|
||||
* |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------|
|
||||
* | LShift | ; : | Q | J | K | X | [ { |CapsLk| |F-keys| ] } | B | M | W | V | Z | RShift |
|
||||
* `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------'
|
||||
* |Adjust| LGUI | LAlt/| Space| Nav | | Sym | Space| AltGr| RGUI | Menu |
|
||||
* | | | Enter| | | | | | | | |
|
||||
* `----------------------------------' `----------------------------------'
|
||||
*/
|
||||
[_DVORAK] = LAYOUT(
|
||||
KC_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_ESC ,
|
||||
KC_TAB ,KC_QUOTE,KC_COMM, KC_DOT, KC_P , KC_Y , KC_F, KC_G , KC_C , KC_R , KC_L , KC_BSPC,
|
||||
CTL_ESC , KC_A , KC_O , KC_E , KC_U , KC_I , KC_D, KC_H , KC_T , KC_N , KC_S , CTL_MINS,
|
||||
KC_LSFT ,KC_SCLN, KC_Q , KC_J , KC_K , KC_X , KC_LBRC,KC_CAPS, FKEYS , KC_RBRC, KC_B, KC_M , KC_W , KC_V , KC_Z , KC_RSFT,
|
||||
ADJUST, KC_LGUI, ALT_ENT, KC_SPC , NAV , SYM , KC_SPC ,KC_RALT, KC_RGUI, KC_APP
|
||||
),
|
||||
|
||||
/*
|
||||
* Base Layer: Colemak DH
|
||||
*
|
||||
* ,-------------------------------------------. ,-------------------------------------------.
|
||||
* | Esc | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Esc |
|
||||
* |--------+------+------+------+------+------| |------+------+------+------+------+--------|
|
||||
* | Tab | Q | W | F | P | B | | J | L | U | Y | ; : | Bksp |
|
||||
* |--------+------+------+------+------+------| |------+------+------+------+------+--------|
|
||||
* |Ctrl/Esc| A | R | S | T | G | | M | N | E | I | O |Ctrl/' "|
|
||||
* |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------|
|
||||
* | LShift | Z | X | C | D | V | [ { |CapsLk| |F-keys| ] } | K | H | , < | . > | / ? | RShift |
|
||||
* `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------'
|
||||
* |Adjust| LGUI | LAlt/| Space| Nav | | Sym | Space| AltGr| RGUI | Menu |
|
||||
* | | | Enter| | | | | | | | |
|
||||
* `----------------------------------' `----------------------------------'
|
||||
*/
|
||||
[_COLEMAK_DH] = LAYOUT(
|
||||
KC_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_ESC ,
|
||||
KC_TAB , KC_Q , KC_W , KC_F , KC_P , KC_B , KC_J, KC_L , KC_U , KC_Y ,KC_SCLN, KC_BSPC,
|
||||
CTL_ESC , KC_A , KC_R , KC_S , KC_T , KC_G , KC_M, KC_N , KC_E , KC_I , KC_O , CTL_QUOT,
|
||||
KC_LSFT , KC_Z , KC_X , KC_C , KC_D , KC_V , KC_LBRC,KC_CAPS, FKEYS , KC_RBRC, KC_K, KC_H ,KC_COMM, KC_DOT ,KC_SLSH, KC_RSFT,
|
||||
ADJUST, KC_LGUI, ALT_ENT, KC_SPC , NAV , SYM , KC_SPC ,KC_RALT, KC_RGUI, KC_APP
|
||||
),
|
||||
|
||||
/*
|
||||
* Nav Layer: Media, navigation
|
||||
*
|
||||
* ,-------------------------------------------. ,-------------------------------------------.
|
||||
* | | | | | | | | | | | | | |
|
||||
* |--------+------+------+------+------+------| |------+------+------+------+------+--------|
|
||||
* | | | | | | | | PgUp | Home | ↑ | End | VolUp| Delete |
|
||||
* |--------+------+------+------+------+------| |------+------+------+------+------+--------|
|
||||
* | | GUI | Alt | Ctrl | Shift| | | PgDn | ← | ↓ | → | VolDn| Insert |
|
||||
* |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------|
|
||||
* | | | | | | | |ScLck | | | | Pause|M Prev|M Play|M Next|VolMut| PrtSc |
|
||||
* `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------'
|
||||
* | | | | | | | | | | | |
|
||||
* | | | | | | | | | | | |
|
||||
* `----------------------------------' `----------------------------------'
|
||||
*/
|
||||
[_NAV] = LAYOUT(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_VOLU, KC_DEL,
|
||||
_______, KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, _______, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_VOLD, KC_INS,
|
||||
_______, _______, _______, _______, _______, _______, _______, KC_SCRL, _______, _______,KC_PAUSE, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_PSCR,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
/*
|
||||
* Sym Layer: Numbers and symbols
|
||||
*
|
||||
* ,-------------------------------------------. ,-------------------------------------------.
|
||||
* | | | | | | | | | | | | | |
|
||||
* |--------+------+------+------+------+------| |------+------+------+------+------+--------|
|
||||
* | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | = |
|
||||
* |--------+------+------+------+------+------| |------+------+------+------+------+--------|
|
||||
* | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | + |
|
||||
* |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------|
|
||||
* | | | \ | : | ; | - | [ | { | | | | } | ] | _ | , | . | / | ? |
|
||||
* `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------'
|
||||
* | | | | | | | | | | | |
|
||||
* | | | | | | | | | | | |
|
||||
* `----------------------------------' `----------------------------------'
|
||||
*/
|
||||
[_SYM] = LAYOUT(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_EQL ,
|
||||
KC_TILD , KC_EXLM, KC_AT , KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_PLUS,
|
||||
KC_PIPE , KC_BSLS, KC_COLN, KC_SCLN, KC_MINS, KC_LBRC, KC_LCBR, _______, _______, KC_RCBR, KC_RBRC, KC_UNDS, KC_COMM, KC_DOT, KC_SLSH, KC_QUES,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
/*
|
||||
* Function Layer: Function keys
|
||||
*
|
||||
* ,-------------------------------------------. ,-------------------------------------------.
|
||||
* | | | | | | | | | | | | | |
|
||||
* |--------+------+------+------+------+------| |------+------+------+------+------+--------|
|
||||
* | | F9 | F10 | F11 | F12 | | | | | | | | |
|
||||
* |--------+------+------+------+------+------| |------+------+------+------+------+--------|
|
||||
* | | F5 | F6 | F7 | F8 | | | | Shift| Ctrl | Alt | GUI | |
|
||||
* |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------|
|
||||
* | | F1 | F2 | F3 | F4 | | | | | | | | | | | | |
|
||||
* `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------'
|
||||
* | | | | | | | | | | | |
|
||||
* | | | | | | | | | | | |
|
||||
* `----------------------------------' `----------------------------------'
|
||||
*/
|
||||
[_FUNCTION] = LAYOUT(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, KC_F9 , KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, KC_F5 , KC_F6 , KC_F7 , KC_F8 , _______, _______, KC_RSFT, KC_RCTL, KC_LALT, KC_RGUI, _______,
|
||||
_______, KC_F1 , KC_F2 , KC_F3 , KC_F4 , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
/*
|
||||
* Adjust Layer: Default layer settings, RGB
|
||||
*
|
||||
* ,-------------------------------------------. ,-------------------------------------------.
|
||||
* | Reset | | | | | | | | | | | | |
|
||||
* |--------+------+------+------+------+------| |------+------+------+------+------+--------|
|
||||
* | | | |QWERTY| | | | | | | | | |
|
||||
* |--------+------+------+------+------+------| |------+------+------+------+------+--------|
|
||||
* | | | |Dvorak| | | | TOG | SAI | HUI | VAI | MOD | |
|
||||
* |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------|
|
||||
* | | | |Colmak| | | | | | | | | SAD | HUD | VAD | RMOD | |
|
||||
* `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------'
|
||||
* | | | | | | | | | | | |
|
||||
* | | | | | | | | | | | |
|
||||
* `----------------------------------' `----------------------------------'
|
||||
*/
|
||||
[_ADJUST] = LAYOUT(
|
||||
QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, QWERTY , _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, DVORAK , _______, _______, RM_TOGG, RM_SATU, RM_HUEU, RM_VALU, RM_NEXT, _______,
|
||||
_______, _______, _______, COLEMAK, _______, _______,_______, _______, _______, _______, _______, RM_SATD, RM_HUED, RM_VALD, RM_PREV, _______,
|
||||
_______, _______, _______,_______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
// /*
|
||||
// * Layer template
|
||||
// *
|
||||
// * ,-------------------------------------------. ,-------------------------------------------.
|
||||
// * | | | | | | | | | | | | | |
|
||||
// * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
|
||||
// * | | | | | | | | | | | | | |
|
||||
// * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
|
||||
// * | | | | | | | | | | | | | |
|
||||
// * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------|
|
||||
// * | | | | | | | | | | | | | | | | | |
|
||||
// * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------'
|
||||
// * | | | | | | | | | | | |
|
||||
// * | | | | | | | | | | | |
|
||||
// * `----------------------------------' `----------------------------------'
|
||||
// */
|
||||
// [_LAYERINDEX] = LAYOUT(
|
||||
// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
// ),
|
||||
//
|
||||
};
|
||||
|
||||
#if defined(ENCODER_MAP_ENABLE)
|
||||
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
|
||||
[0] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD), ENCODER_CCW_CW(KC_PGDN, KC_PGUP) },
|
||||
[1] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
|
||||
[2] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
|
||||
[3] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
|
||||
[4] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
|
||||
[5] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
|
||||
[6] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
|
||||
};
|
||||
#endif
|
||||
262
keyboards/splitkb/halcyon/elora/keymaps/default/readme.md
Normal file
262
keyboards/splitkb/halcyon/elora/keymaps/default/readme.md
Normal file
@@ -0,0 +1,262 @@
|
||||
# Halcyon Elora's Default Keymap
|
||||
|
||||
The default keymap contains 5 layers which allows it to include all keys found on an ANSI layout TKL keyboard plus media keys.
|
||||
Hardware features of the Elora such as rotary encoders and underglow are also supported.
|
||||
|
||||
The Elora keymap is in essence identical to the Kyria keymap, just with an additional number row. A deep dive into the keymap is provided there.
|
||||
|
||||
The five different layers are the following:
|
||||
1. Base layer (QWERTY, Colemak-DH or Dvorak)
|
||||
2. Navigation layer
|
||||
3. Symbols/Numbers layer
|
||||
4. Function layer
|
||||
5. Adjust layer
|
||||
|
||||
## Base layer(s)
|
||||
```
|
||||
Base Layer: -
|
||||
|
||||
,-------------------------------------------. ,-------------------------------------------.
|
||||
| Esc | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Esc |
|
||||
|--------+------+------+------+------+------| |------+------+------+------+------+--------|
|
||||
| Tab | - | - | - | - | - | | - | - | - | - | - | Bksp |
|
||||
|--------+------+------+------+------+------| |------+------+------+------+------+--------|
|
||||
|Ctrl/Esc| - | - | - | - | - | | - | - | - | - | - |Ctrl/ - |
|
||||
|--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------|
|
||||
| LShift | - | - | - | - | - | [ { |CapsLk| |F-Keys| ] } | - | - | - | - | - | RShift |
|
||||
`----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------'
|
||||
|Adjust| LGUI | LAlt/| Space| Nav | | Sym | Space| AltGr| RGUI | Menu |
|
||||
| | | Enter| | | | | | | | |
|
||||
`----------------------------------' `----------------------------------'
|
||||
```
|
||||
Three different well-known keyboard layouts are provided to fill in the placeholder `-` keys: QWERTY, Colemak-DH, and Dvorak. The default layer can be changed at runtime, more info on that in the section on the [adjust layer](#adjust-layer).
|
||||
|
||||
For the rest of this write-up, the base layer will be assumed to be QWERTY and will be used as a reference to describe physical keys, e.g. “<kbd>B</kbd> key” vs, the much more verbose, “lower inner index key”.
|
||||
|
||||
```
|
||||
Base Layer: QWERTY
|
||||
|
||||
,-------------------------------------------. ,-------------------------------------------.
|
||||
| Esc | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Esc |
|
||||
|--------+------+------+------+------+------| |------+------+------+------+------+--------|
|
||||
| Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp |
|
||||
|--------+------+------+------+------+------| |------+------+------+------+------+--------|
|
||||
|Ctrl/Esc| A | S | D | F | G | | H | J | K | L | ; : |Ctrl/' "|
|
||||
|--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------|
|
||||
| LShift | Z | X | C | V | B | [ { |CapsLk| |F-keys| ] } | N | M | , < | . > | / ? | RShift |
|
||||
`----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------'
|
||||
|Adjust| LGUI | LAlt/| Space| Nav | | Sym | Space| AltGr| RGUI | Menu |
|
||||
| | | Enter| | | | | | | | |
|
||||
`----------------------------------' `----------------------------------'
|
||||
```
|
||||
|
||||
Aside from variations in the alpha cluster, the rest of the base keys remain the same and are designed to feel familiar.
|
||||
|
||||

|
||||
|
||||
<details>
|
||||
After making transformations to the classic ANSI US QWERTY TKL 60% to arrive to the layout of the Elora, as illustrated in the animation above, the result looks like this:
|
||||
|
||||
```
|
||||
,-------------------------------------------. ,-------------------------------------------.
|
||||
| Esc | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Esc |
|
||||
|--------+------+------+------+------+------| |------+------+------+------+------+--------|
|
||||
| Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp |
|
||||
|--------+------+------+------+------+------| |------+------+------+------+------+--------|
|
||||
| Cap Lk | A | S | D | F | G | | H | J | K | L | ; : | ' " |
|
||||
|--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------|
|
||||
| LShift | Z | X | C | V | B | | | | | | N | M | , < | . > | / ? | RShift |
|
||||
`----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------'
|
||||
| LCtrl| LGUI | LAlt | Space| | | | Space| AltGr| RGUI | Menu |
|
||||
| | | | | | | | | | | |
|
||||
`----------------------------------' '----------------------------------'
|
||||
```
|
||||
|
||||
First thing to notice is the presence of blank keys. To fill in the blank keys above the <kbd>Space</kbd> keys, we can take inspiration from other split keyboards featuring an extra inner index column on each half. A common mapping for those kind of keys are the bracket keys that got removed in the fourth step of the animated transformation. The thumb keys besides <kbd>Space</kbd>s is prime real estate for dedicated layer-switching keys. It doesn't matter on which side is assigned the sym-layer-switch key but it helps to keep the nav-layer-switch on the left in order to keep the arrow keys on the right side like on a classic keyboard, so we'll put nav on the left and sym on the right. We'll address the remaining blank thumb keys later.
|
||||
|
||||
The base layer is starting to form but there remains some flaws. One glaring issue is the position of Control. Control is a very commonly used function but the key on which it sits right now is way too tucked in under the hand to be able to press it comfortably with either the thumb or the pinky from resting position. In fact, installing a rotary encoder there is a common move among Elora users and I guarantee you that activating Control by holding down a rotary encoder does not spark joy. Instead, let's employ a popular trick that involves remapping the current Caps Lock key, which is positioned at a comfortable position on the keyboard, to Control.
|
||||
|
||||
We can go further though; a variant of this trick makes the Control key produce Escape when tapped. This is called a “modtap”. There is no use to tapping Control by itself without chording it with another key and there is no use to holding down the Esc key so why not combine the two into a single key?
|
||||
|
||||
All of this leaves us with three blank keys.
|
||||
|
||||
```
|
||||
,-------------------------------------------. ,-------------------------------------------.
|
||||
| Esc | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Esc |
|
||||
|--------+------+------+------+------+------| |------+------+------+------+------+--------|
|
||||
| Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp |
|
||||
|--------+------+------+------+------+------| |------+------+------+------+------+--------|
|
||||
|Ctrl/Esc| A | S | D | F | G | | H | J | K | L | ; : | ' " |
|
||||
|--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------|
|
||||
| LShift | Z | X | C | V | B | [ { | | | | ] } | N | M | , < | . > | / ? | RShift |
|
||||
`--------+-------------+--------------------+------+------| |------+------+--------------------+------+---------------'
|
||||
| | LGUI | LAlt | Space| Nav | | Sym | Space| AltGr| RGUI | Menu |
|
||||
| | | | | | | | | | | |
|
||||
`----------------------------------' '----------------------------------'
|
||||
```
|
||||
|
||||
These keys are not easily reachable while touch typing (that is, not reachable without picking up your hand) and should thus be associated with functions that you are not likely to be typed within a stream of text. The idea is that if you have to pick up your hand to hit a key, you want it to be at a time when you are likely to be pausing your interaction with the machine, rather than in the midst of a flurry of typing. They're thus well suited for accessing the adjust layer and the function layer. We can also toss in Caps Lock even though it is an editing-type function that gets used within a stream of text because shouting in ALL-CAPS should be a deliberate action.
|
||||
|
||||
```
|
||||
,-------------------------------------------. ,-------------------------------------------.
|
||||
| Esc | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Esc |
|
||||
|--------+------+------+------+------+------| |------+------+------+------+------+--------|
|
||||
| Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp |
|
||||
|--------+------+------+------+------+------| |------+------+------+------+------+--------|
|
||||
|Ctrl/Esc| A | S | D | F | G | | H | J | K | L | ; : | ' " |
|
||||
|--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------|
|
||||
| LShift | Z | X | C | V | B | [ { |CapsLk| |F-keys| ] } | N | M | , < | . > | / ? | RShift |
|
||||
`----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------'
|
||||
|Adjust| LGUI | LAlt | Space| Nav | | Sym | Space| AltGr| RGUI | Menu |
|
||||
| | | | | | | | | | | |
|
||||
`----------------------------------' `----------------------------------'
|
||||
```
|
||||
|
||||
The next glaring issue is the absence of an Enter key on the current base layer this far. Enter is a very frequently used key so it deserves to be placed at a good spot in the keymap. The best way to insert it in the keymap with minimal changes to the current layout is to use modtaps. A tempting solution is to turn the <kbd>RShift</kbd> key into a <kbd>RShift/Enter</kbd> modtap but that can result in chat messages sent too frustratingly early when you're not used to it. Using GUI is also sub-optimal because tapping the GUI modifier actually has a use as opposed to taps of the Control or the Shift key. Pressing and releasing the GUI key by itself opens the App menu in many desktop environments. The natural choice is thus <kbd>LAlt/Enter</kbd>. That way, Enter is 1u away from resting thumb position and is unlikely to get accidentally activated because Alt is very rarely used in the midst of prose.
|
||||
|
||||
Finally, we're one Quality-Of-Life update away from the actual base layer. <kbd>Ctrl/' "</kbd> not only preserves symmetry in the keymap with <kbd>Ctrl/Esc</kbd> but also helps balance the load between your pinkies and invites you to use both hands instead of contortions. Perhaps more importantly, it also frees you from the necessity of picking up your hand, breaking touch typing position and pressing a pinky key with your ring finger in order to execute Ctrl+A or Ctrl+Z. That becomes even more important on a board with such an aggressive pinky columnar stagger like the Elora.
|
||||
|
||||
|
||||
```
|
||||
,-------------------------------------------. ,-------------------------------------------.
|
||||
| Esc | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Esc |
|
||||
|--------+------+------+------+------+------| |------+------+------+------+------+--------|
|
||||
| Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp |
|
||||
|--------+------+------+------+------+------| |------+------+------+------+------+--------|
|
||||
|Ctrl/Esc| A | S | D | F | G | | H | J | K | L | ; : |Ctrl/' "|
|
||||
|--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------|
|
||||
| LShift | Z | X | C | V | B | [ { |CapsLk| |F-keys| ] } | N | M | , < | . > | / ? | RShift |
|
||||
`----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------'
|
||||
|Adjust| LGUI | LAlt/| Space| Nav | | Sym | Space| AltGr| RGUI | Menu |
|
||||
| | | Enter| | | | | | | | |
|
||||
`----------------------------------' `----------------------------------'
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## Navigation layer
|
||||
|
||||
```
|
||||
Nav Layer: Media, navigation
|
||||
|
||||
,-------------------------------------------. ,-------------------------------------------.
|
||||
| | | | | | | | | | | | | |
|
||||
|--------+------+------+------+------+------| |------+------+------+------+------+--------|
|
||||
| | | | | | | | PgUp | Home | ↑ | End | VolUp| Delete |
|
||||
|--------+------+------+------+------+------| |------+------+------+------+------+--------|
|
||||
| | GUI | Alt | Ctrl | Shift| | | PgDn | ← | ↓ | → | VolDn| Insert |
|
||||
|--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------|
|
||||
| | | | | | | |ScLck | | | | Pause|M Prev|M Play|M Next|VolMut| PrtSc |
|
||||
`----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------'
|
||||
| | | | | | | | | | | |
|
||||
| | | | | | | | | | | |
|
||||
`----------------------------------' `----------------------------------'
|
||||
```
|
||||
|
||||
This is where you'll find all the keys that are generally between the main block of a classic keyboard and the numpad in addition to media controls and modifiers on easy access on the home row for fast and comfortable chording with navigation keys.
|
||||
|
||||
Useful mnemonics:
|
||||
- “GACS” to remember the order of the modifiers on the left-hand home row
|
||||
- <kbd>Scroll Lock</kbd> is on the same key as <kbd>Caps Lock</kbd> because they're both locks
|
||||
- <kbd>Delete</kbd> is on the same key as <kbd>Backspace</kbd> because they both erase characters
|
||||
- <kbd>Home</kbd> is the leftmost position on the current line so it is above <kbd>←</kbd>. Same logic applies for <kbd>End</kbd>.
|
||||
- <kbd>Media Previous</kbd> = ⏮, <kbd>Media Next</kbd> = ⏭
|
||||
- <kbd>Page Up</kbd>, <kbd>Page Down</kbd> and <kbd>Volume Up</kbd>, <kbd>Volume Down</kbd> are positioned like the main <kbd>Up</kbd> and <kbd>Down</kbd> keys.
|
||||
|
||||
## Sym layer
|
||||
```
|
||||
Sym Layer: Numbers, symbols
|
||||
|
||||
,-------------------------------------------. ,-------------------------------------------.
|
||||
| | | | | | | | | | | | | |
|
||||
|--------+------+------+------+------+------| |------+------+------+------+------+--------|
|
||||
| ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | = |
|
||||
|--------+------+------+------+------+------| |------+------+------+------+------+--------|
|
||||
| ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | + |
|
||||
|--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------|
|
||||
| | | \ | : | ; | - | [ | { | | | | } | ] | _ | , | . | / | ? |
|
||||
`----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------'
|
||||
| | | | | | | | | | | |
|
||||
| | | | | | | | | | | |
|
||||
`----------------------------------' `----------------------------------'
|
||||
```
|
||||
The top row is the unshifted num row, the home row of the layer is the shifted num row and the bottom row contains the hyphen `-` and the underscore `_` on the best lower row spot because of how frequent they are as well as redundant symbols that are already present on the base layer but are reproduced here to avoid juggling back and forth between base, shift, and sym when typing a string of symbols.
|
||||
|
||||
The layout of the first two rows needs no introduction, you're already used to them but it's worth looking into the structure of the bottom row.
|
||||
|
||||
The two halves are mirrored in a sense. On the right, you can find <kbd>,</kbd> <kbd>.</kbd> <kbd>/</kbd> at their usual spots with the addition of <kbd>Shift</kbd>+<kbd>/</kbd>=<kbd>?</kbd> to the right of the <kbd>/</kbd> key to remove the need to press simultaneously <kbd>Sym</kbd> and a <kbd>Shift</kbd> key to access `?`.
|
||||
|
||||
Now, if you look at the left side, you'll notice that the mirror of <kbd>,</kbd> is <kbd>;</kbd>, the mirror of <kbd>.</kbd> is <kbd>:</kbd> and the mirror of <kbd>/</kbd> is <kbd>\\</kbd>. The same logic used for <kbd>Shift</kbd>+<kbd>/</kbd>=<kbd>?</kbd> also applies to <kbd>Shift</kbd>+<kbd>\\</kbd>=<kbd>|</kbd>.
|
||||
|
||||
In case you wish to combine <kbd>Shift</kbd> with a symbol key anyways, you can hold down <kbd>Shift</kbd> on the base layer with your pinky, activate <kbd>Sym</kbd> with your right thumb and while still holding down the <kbd>Shift</kbd> key, tap your desired symbol key. Same thing if you need <kbd>Ctrl</kbd>+<kbd>Digit</kbd>.
|
||||
|
||||
## Function layer
|
||||
```
|
||||
Function Layer: Function keys
|
||||
|
||||
,-------------------------------------------. ,-------------------------------------------.
|
||||
| | | | | | | | | | | | | |
|
||||
|--------+------+------+------+------+------| |------+------+------+------+------+--------|
|
||||
| | F9 | F10 | F11 | F12 | | | | | | | | |
|
||||
|--------+------+------+------+------+------| |------+------+------+------+------+--------|
|
||||
| | F5 | F6 | F7 | F8 | | | | Shift| Ctrl | Alt | GUI | |
|
||||
|--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------|
|
||||
| | F1 | F2 | F3 | F4 | | | | | | | | | | | | |
|
||||
`----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------'
|
||||
| | | | | | | | | | | |
|
||||
| | | | | | | | | | | |
|
||||
`----------------------------------' `----------------------------------'
|
||||
```
|
||||
In a similar fashion to the nav layer, pressing down `FKEYS` with the right thumb enables a numpad of function keys on the opposite hand and modifiers on the right-hand home row. Once again, mirror symmetry is leveraged in this keymap for the order of the right-hand modifiers.
|
||||
|
||||
The <kbd>Alt</kbd> modifier, despite being situated on the right half of the keyboard is *not* `KC_RALT`, it is `KC_LALT`. `KC_RALT` is actually the <kbd>AltGr</kbd> key which generally acts very differently to the left <kbd>Alt</kbd> key. Keyboard shortcuts involving <kbd>AltGr</kbd>+<kbd>F#</kbd> are rare and infrequent as opposed to the much more common <kbd>Alt</kbd>+<kbd>F#</kbd> shortcuts. Consequently, `KC_LALT` was chosen for the function layer.
|
||||
|
||||
Since there are more than 10 function keys, the cluster of F-keys does not follow the usual 3×3+1 numpad arrangement.
|
||||
|
||||
|
||||
## Adjust layer
|
||||
```
|
||||
Adjust Layer: Default layer settings, RGB
|
||||
|
||||
,-------------------------------------------. ,-------------------------------------------.
|
||||
| | | | | | | | | | | | | |
|
||||
|--------+------+------+------+------+------| |------+------+------+------+------+--------|
|
||||
| | | |QWERTY| | | | | | | | | |
|
||||
|--------+------+------+------+------+------| |------+------+------+------+------+--------|
|
||||
| | | |Dvorak| | | | TOG | SAI | HUI | VAI | MOD | |
|
||||
|--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------|
|
||||
| | | |Colmak| | | | | | | | | SAD | HUD | VAD | RMOD | |
|
||||
`----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------'
|
||||
| | | | | | | | | | | |
|
||||
| | | | | | | | | | | |
|
||||
`----------------------------------' `----------------------------------'
|
||||
```
|
||||
|
||||
Default layer settings on the left and various RGB underglow controls on the right.
|
||||
|
||||
The default layer settings are lined up on the middle finger column because the home middle finger key is <kbd>D</kbd> on QWERTY (like the “D” in “Dvorak”) and the lower middle finger key is <kbd>C</kbd> on QWERTY (like the “C” in “Colemak”). I can hear you say that “QWERTY” doesn't start with “E” but Dvorak and Colemak were already aligned in a column so the QWERTY may as well join the formation.
|
||||
|
||||
NOTE: The default layer settings set by those keys are *NOT* stored in EEPROM and thus do not persist through boots. If you wish to change the default layer in a non-volatile manner, either change the order of the layers in the firmware, for example like so if you want to set Dvorak as the new default:
|
||||
```c
|
||||
enum layers {
|
||||
_DVORAK = 0,
|
||||
_QWERTY,
|
||||
_COLEMAK_DH,
|
||||
_NAV,
|
||||
_SYM,
|
||||
_FUNCTION,
|
||||
_ADJUST
|
||||
};
|
||||
```
|
||||
or re-define the `QWERTY`, `COLEMAK` and `DVORAK` keys to point to custom keycodes starting on `SAFE_RANGE` and calling the `set_single_persistent_default_layer` function inside of `process_record_user`.
|
||||
|
||||
## Hardware Features
|
||||
|
||||
### Rotary Encoder
|
||||
The left rotary encoder is programmed to control the volume whereas the right encoder sends <kbd>PgUp</kbd> or <kbd>PgDn</kbd> on every turn.
|
||||
|
||||
## Going further…
|
||||
|
||||
This default keymap can be used as is, unchanged, as a daily driver for your Elora but you're invited to treat your keymap like a bonsai. At the beginning, it's just like the default keymap but from time to time, you can tweak it a little. Cut a little key here, let another combo grow there. Slowly but surely it will be a unique keymap that will fit you like a glove.
|
||||
|
||||
Check out the #keymap-ideas channel on the official SplitKB Discord server for inspiration.
|
||||
1
keyboards/splitkb/halcyon/elora/keymaps/default/rules.mk
Normal file
1
keyboards/splitkb/halcyon/elora/keymaps/default/rules.mk
Normal file
@@ -0,0 +1 @@
|
||||
ENCODER_MAP_ENABLE = yes
|
||||
31
keyboards/splitkb/halcyon/elora/readme.md
Normal file
31
keyboards/splitkb/halcyon/elora/readme.md
Normal file
@@ -0,0 +1,31 @@
|
||||
# Halcyon Elora
|
||||
|
||||

|
||||
|
||||
The Halcyon Elora rev2 is the second Elora revision and the second keyboard in our Halcyon range. Similar to Aurora, all keyboards in the series share the same feature set. The key highlights:
|
||||
|
||||
- Halcyon keyboards come preassembled! You won't need a soldering iron.
|
||||
- You'll be able to install [VIK](https://github.com/sadekbaroudi/vik) modules.
|
||||
- It'll come fully documented, which includes the unboxing, assembly (with only a screwdriver), first installation and some advanced use cases.
|
||||
- Both the connection to the host device as well as the interconnect between the keyboard halves use USB C.
|
||||
- The controller has full ESD protection on all USB C ports, as well as all switch matrix GPIO!
|
||||
- The controller is interchangable. If part of your keyboard ever breaks, we can replace just the bits that need replacing.
|
||||
|
||||
* Keyboard Maintainer: [splitkb.com](https://github.com/splitkb.com)
|
||||
* Hardware Availability: [splitkb.com](https://splitkb.com).
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make splitkb/halcyon/elora/rev2:default
|
||||
|
||||
The keyboard can be flashed by copying the resulting `.uf2` file onto the `RPI-RP2` flash drive.
|
||||
|
||||
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:
|
||||
|
||||
* **Reset button**: Double-tap the reset button at the top of the controller, right above the USB-C port.
|
||||
* **Bootloader reset**: Hold down the "Boot" button and plug in the keyboard.
|
||||
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available.
|
||||
32
keyboards/splitkb/halcyon/elora/rev2/config.h
Normal file
32
keyboards/splitkb/halcyon/elora/rev2/config.h
Normal file
@@ -0,0 +1,32 @@
|
||||
// Copyright 2025 splitkb.com (support@splitkb.com)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
// Make it easier to enter the bootloader
|
||||
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
|
||||
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U
|
||||
|
||||
// UART1, communication between the two halves
|
||||
#define SERIAL_USART_FULL_DUPLEX // Enable full duplex operation mode.
|
||||
#define SERIAL_USART_TX_PIN GP28 // USART TX pin
|
||||
#define SERIAL_USART_RX_PIN GP29 // USART RX pin
|
||||
#define SERIAL_PIO_USE_PIO1 // Use PIO1 as PIO0 is used for WS2812 driver
|
||||
|
||||
// VBUS detection
|
||||
#define USB_VBUS_PIN GP1
|
||||
|
||||
//// VIK
|
||||
|
||||
// GPIO1 = GP27
|
||||
// GPIO2 = GP26
|
||||
// CS = GP13
|
||||
|
||||
#define I2C_DRIVER I2C0
|
||||
#define I2C1_SDA_PIN GP16
|
||||
#define I2C1_SCL_PIN GP17
|
||||
|
||||
#define SPI_DRIVER SPID1
|
||||
#define SPI_SCK_PIN GP14
|
||||
#define SPI_MOSI_PIN GP15
|
||||
#define SPI_MISO_PIN GP12
|
||||
14
keyboards/splitkb/halcyon/elora/rev2/halconf.h
Normal file
14
keyboards/splitkb/halcyon/elora/rev2/halconf.h
Normal file
@@ -0,0 +1,14 @@
|
||||
// Copyright 2025 splitkb.com (support@splitkb.com)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
//// VIK
|
||||
|
||||
#define HAL_USE_I2C TRUE
|
||||
|
||||
#define HAL_USE_SPI TRUE
|
||||
#define SPI_USE_WAIT TRUE
|
||||
#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD
|
||||
|
||||
#include_next <halconf.h>
|
||||
177
keyboards/splitkb/halcyon/elora/rev2/keyboard.json
Normal file
177
keyboards/splitkb/halcyon/elora/rev2/keyboard.json
Normal file
@@ -0,0 +1,177 @@
|
||||
{
|
||||
"keyboard_name": "Halcyon Elora rev2",
|
||||
"bootloader": "rp2040",
|
||||
"diode_direction": "COL2ROW",
|
||||
"encoder": {
|
||||
"rotary": [
|
||||
{"pin_a": "GP22", "pin_b": "GP18", "resolution": 2}
|
||||
]
|
||||
},
|
||||
"features": {
|
||||
"encoder": true,
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
"nkro": true,
|
||||
"rgb_matrix": true
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["GP24", "GP19", "GP20", "GP25", "GP4", "GP9", "GP10"],
|
||||
"rows": ["GP8", "GP11", "GP7", "GP6", "GP5"]
|
||||
},
|
||||
"processor": "RP2040",
|
||||
"rgb_matrix": {
|
||||
"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_color": 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
|
||||
},
|
||||
"driver": "ws2812",
|
||||
"layout": [
|
||||
{"x": 75, "y": 2, "flags": 2},
|
||||
{"x": 50, "y": 1, "flags": 2},
|
||||
{"x": 14, "y": 4, "flags": 2},
|
||||
{"x": 25, "y": 45, "flags": 2},
|
||||
{"x": 58, "y": 49, "flags": 2},
|
||||
{"x": 94, "y": 53, "flags": 2},
|
||||
{"matrix": [4, 0], "x": 94, "y": 64, "flags": 4},
|
||||
{"matrix": [4, 5], "x": 79, "y": 61, "flags": 4},
|
||||
{"matrix": [4, 1], "x": 65, "y": 55, "flags": 4},
|
||||
{"matrix": [4, 2], "x": 51, "y": 52, "flags": 4},
|
||||
{"matrix": [4, 4], "x": 36, "y": 52, "flags": 4},
|
||||
{"matrix": [3, 0], "x": 101, "y": 52, "flags": 4},
|
||||
{"matrix": [4, 3], "x": 87, "y": 49, "flags": 4},
|
||||
{"matrix": [3, 1], "x": 72, "y": 43, "flags": 4},
|
||||
{"matrix": [3, 2], "x": 58, "y": 40, "flags": 4},
|
||||
{"matrix": [3, 3], "x": 43, "y": 37, "flags": 4},
|
||||
{"matrix": [3, 4], "x": 29, "y": 40, "flags": 4},
|
||||
{"matrix": [3, 5], "x": 14, "y": 46, "flags": 4},
|
||||
{"matrix": [3, 6], "x": 0, "y": 46, "flags": 4},
|
||||
{"matrix": [2, 1], "x": 72, "y": 30, "flags": 4},
|
||||
{"matrix": [2, 2], "x": 58, "y": 27, "flags": 4},
|
||||
{"matrix": [2, 3], "x": 43, "y": 24, "flags": 4},
|
||||
{"matrix": [2, 4], "x": 29, "y": 27, "flags": 4},
|
||||
{"matrix": [2, 5], "x": 14, "y": 34, "flags": 4},
|
||||
{"matrix": [2, 6], "x": 0, "y": 34, "flags": 4},
|
||||
{"matrix": [1, 1], "x": 72, "y": 18, "flags": 4},
|
||||
{"matrix": [1, 2], "x": 58, "y": 15, "flags": 4},
|
||||
{"matrix": [1, 3], "x": 43, "y": 12, "flags": 4},
|
||||
{"matrix": [1, 4], "x": 29, "y": 15, "flags": 4},
|
||||
{"matrix": [1, 5], "x": 14, "y": 21, "flags": 4},
|
||||
{"matrix": [1, 6], "x": 0, "y": 21, "flags": 4},
|
||||
{"matrix": [0, 1], "x": 72, "y": 6, "flags": 4},
|
||||
{"matrix": [0, 2], "x": 48, "y": 3, "flags": 4},
|
||||
{"matrix": [0, 3], "x": 43, "y": 0, "flags": 4},
|
||||
{"matrix": [0, 4], "x": 29, "y": 3, "flags": 4},
|
||||
{"matrix": [0, 5], "x": 14, "y": 9, "flags": 4},
|
||||
{"matrix": [0, 6], "x": 0, "y": 9, "flags": 4},
|
||||
{"x": 149, "y": 2, "flags": 2},
|
||||
{"x": 174, "y": 1, "flags": 2},
|
||||
{"x": 210, "y": 4, "flags": 2},
|
||||
{"x": 199, "y": 45, "flags": 2},
|
||||
{"x": 166, "y": 49, "flags": 2},
|
||||
{"x": 130, "y": 53, "flags": 2},
|
||||
{"matrix": [9, 0], "x": 130, "y": 64, "flags": 4},
|
||||
{"matrix": [9, 5], "x": 145, "y": 61, "flags": 4},
|
||||
{"matrix": [9, 1], "x": 159, "y": 55, "flags": 4},
|
||||
{"matrix": [9, 2], "x": 173, "y": 52, "flags": 4},
|
||||
{"matrix": [9, 4], "x": 188, "y": 52, "flags": 4},
|
||||
{"matrix": [8, 0], "x": 123, "y": 52, "flags": 4},
|
||||
{"matrix": [9, 3], "x": 137, "y": 49, "flags": 4},
|
||||
{"matrix": [8, 1], "x": 152, "y": 43, "flags": 4},
|
||||
{"matrix": [8, 2], "x": 166, "y": 40, "flags": 4},
|
||||
{"matrix": [8, 3], "x": 181, "y": 37, "flags": 4},
|
||||
{"matrix": [8, 4], "x": 195, "y": 40, "flags": 4},
|
||||
{"matrix": [8, 5], "x": 210, "y": 46, "flags": 4},
|
||||
{"matrix": [8, 6], "x": 224, "y": 46, "flags": 4},
|
||||
{"matrix": [7, 1], "x": 152, "y": 30, "flags": 4},
|
||||
{"matrix": [7, 2], "x": 166, "y": 27, "flags": 4},
|
||||
{"matrix": [7, 3], "x": 181, "y": 24, "flags": 4},
|
||||
{"matrix": [7, 4], "x": 195, "y": 27, "flags": 4},
|
||||
{"matrix": [7, 5], "x": 210, "y": 34, "flags": 4},
|
||||
{"matrix": [7, 6], "x": 224, "y": 34, "flags": 4},
|
||||
{"matrix": [6, 1], "x": 152, "y": 18, "flags": 4},
|
||||
{"matrix": [6, 2], "x": 166, "y": 15, "flags": 4},
|
||||
{"matrix": [6, 3], "x": 181, "y": 12, "flags": 4},
|
||||
{"matrix": [6, 4], "x": 195, "y": 15, "flags": 4},
|
||||
{"matrix": [6, 5], "x": 210, "y": 21, "flags": 4},
|
||||
{"matrix": [6, 6], "x": 224, "y": 21, "flags": 4},
|
||||
{"matrix": [5, 1], "x": 152, "y": 6, "flags": 4},
|
||||
{"matrix": [5, 2], "x": 166, "y": 3, "flags": 4},
|
||||
{"matrix": [5, 3], "x": 181, "y": 0, "flags": 4},
|
||||
{"matrix": [5, 4], "x": 195, "y": 3, "flags": 4},
|
||||
{"matrix": [5, 5], "x": 210, "y": 9, "flags": 4},
|
||||
{"matrix": [5, 6], "x": 224, "y": 9, "flags": 4}
|
||||
],
|
||||
"max_brightness": 128,
|
||||
"sleep": true,
|
||||
"split_count": [37, 37]
|
||||
},
|
||||
"split": {
|
||||
"enabled": true,
|
||||
"handedness": {
|
||||
"pin": "GP23"
|
||||
},
|
||||
"matrix_pins": {
|
||||
"right": {
|
||||
"cols": ["GP10", "GP9", "GP4", "GP25", "GP20", "GP19", "GP24"],
|
||||
"rows": ["GP8", "GP11", "GP7", "GP6", "GP5"]
|
||||
}
|
||||
},
|
||||
"serial": {
|
||||
"driver": "vendor"
|
||||
},
|
||||
"transport": {
|
||||
"sync": {
|
||||
"matrix_state": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"usb": {
|
||||
"pid": "0xA392"
|
||||
},
|
||||
"ws2812": {
|
||||
"driver": "vendor",
|
||||
"pin": "GP3"
|
||||
}
|
||||
}
|
||||
14
keyboards/splitkb/halcyon/elora/rev2/mcuconf.h
Normal file
14
keyboards/splitkb/halcyon/elora/rev2/mcuconf.h
Normal file
@@ -0,0 +1,14 @@
|
||||
// Copyright 2025 splitkb.com (support@splitkb.com)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
#include_next <mcuconf.h>
|
||||
|
||||
//// VIK
|
||||
|
||||
#undef RP_I2C_USE_I2C0
|
||||
#define RP_I2C_USE_I2C0 TRUE
|
||||
|
||||
#undef RP_SPI_USE_SPI1
|
||||
#define RP_SPI_USE_SPI1 TRUE
|
||||
28
keyboards/splitkb/halcyon/elora/rev2/rev2.c
Normal file
28
keyboards/splitkb/halcyon/elora/rev2/rev2.c
Normal file
@@ -0,0 +1,28 @@
|
||||
// Copyright 2025 splitkb.com (support@splitkb.com)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include "quantum.h"
|
||||
|
||||
#ifdef ENCODER_ENABLE
|
||||
bool encoder_update_kb(uint8_t index, bool clockwise) {
|
||||
if (!encoder_update_user(index, clockwise)) {
|
||||
return false;
|
||||
}
|
||||
if (index == 0) {
|
||||
// Volume control
|
||||
if (clockwise) {
|
||||
tap_code(KC_VOLU);
|
||||
} else {
|
||||
tap_code(KC_VOLD);
|
||||
}
|
||||
} else if (index == 1) {
|
||||
// Page up/Page down
|
||||
if (clockwise) {
|
||||
tap_code(KC_PGDN);
|
||||
} else {
|
||||
tap_code(KC_PGUP);
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
115
keyboards/suikagiken/suika83opti/keyboard.json
Normal file
115
keyboards/suikagiken/suika83opti/keyboard.json
Normal file
@@ -0,0 +1,115 @@
|
||||
{
|
||||
"manufacturer": "suikagiken",
|
||||
"keyboard_name": "suika83opti",
|
||||
"maintainer": "suikagiken",
|
||||
"processor": "RP2040",
|
||||
"bootloader": "rp2040",
|
||||
"diode_direction": "COL2ROW",
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"command": false,
|
||||
"console": false,
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
"nkro": true
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["GP0", "GP1", "GP2", "GP3", "GP4", "GP5", "GP6", "GP7", "GP8", "GP9", "GP10", "GP11", "GP12", "GP13", "GP14", "GP15"],
|
||||
"rows": ["GP29", "GP28", "GP27", "GP26", "GP25", "GP24"]
|
||||
},
|
||||
"url": "https://github.com/suikagiken/suika83opti",
|
||||
"usb": {
|
||||
"device_version": "1.0.0",
|
||||
"vid": "0x4B48",
|
||||
"pid": "0x0101"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
{"matrix": [0,0], "x": 0, "y": 0},
|
||||
{"matrix": [0,1], "x": 1.5, "y": 0},
|
||||
{"matrix": [0,2], "x": 2.5, "y": 0},
|
||||
{"matrix": [0,3], "x": 3.5, "y": 0},
|
||||
{"matrix": [0,4], "x": 4.5, "y": 0},
|
||||
{"matrix": [0,5], "x": 7, "y": 0},
|
||||
{"matrix": [0,6], "x": 8, "y": 0},
|
||||
{"matrix": [0,8], "x": 9, "y": 0},
|
||||
{"matrix": [0,9], "x": 10, "y": 0},
|
||||
{"matrix": [0,10], "x": 12.75, "y": 0},
|
||||
{"matrix": [0,11], "x": 13.75, "y": 0},
|
||||
{"matrix": [0,12], "x": 14.75, "y": 0},
|
||||
{"matrix": [0,13], "x": 15.75, "y": 0},
|
||||
{"matrix": [0,15], "x": 17.25, "y": 0},
|
||||
{"matrix": [1,0], "x": 0, "y": 1.5},
|
||||
{"matrix": [1,1], "x": 1, "y": 1.5},
|
||||
{"matrix": [1,2], "x": 2, "y": 1.5},
|
||||
{"matrix": [1,3], "x": 3, "y": 1.5},
|
||||
{"matrix": [1,4], "x": 4, "y": 1.5},
|
||||
{"matrix": [1,5], "x": 5, "y": 1.5},
|
||||
{"matrix": [1,6], "x": 6, "y": 1.5},
|
||||
{"matrix": [1,7], "x": 8.5, "y": 1.5},
|
||||
{"matrix": [1,9], "x": 11.5, "y": 1.5},
|
||||
{"matrix": [1,10], "x": 12.5, "y": 1.5},
|
||||
{"matrix": [1,11], "x": 13.5, "y": 1.5},
|
||||
{"matrix": [1,12], "x": 14.5, "y": 1.5},
|
||||
{"matrix": [1,13], "x": 15.5, "y": 1.5},
|
||||
{"matrix": [1,15], "x": 17.25, "y": 1.5, "h": 1.5},
|
||||
{"matrix": [2,0], "x": 0, "y": 2.5, "w": 1.5},
|
||||
{"matrix": [2,1], "x": 1.5, "y": 2.5},
|
||||
{"matrix": [2,2], "x": 2.5, "y": 2.5},
|
||||
{"matrix": [2,3], "x": 3.5, "y": 2.5},
|
||||
{"matrix": [2,4], "x": 4.5, "y": 2.5},
|
||||
{"matrix": [2,5], "x": 5.5, "y": 2.5},
|
||||
{"matrix": [2,7], "x": 8.5, "y": 2.5},
|
||||
{"matrix": [2,9], "x": 11, "y": 2.5},
|
||||
{"matrix": [2,10], "x": 12, "y": 2.5},
|
||||
{"matrix": [2,11], "x": 13, "y": 2.5},
|
||||
{"matrix": [2,12], "x": 14, "y": 2.5},
|
||||
{"matrix": [2,13], "x": 15, "y": 2.5},
|
||||
{"matrix": [2,14], "x": 16, "y": 2.5},
|
||||
{"matrix": [3,0], "x": 0.25, "y": 3.5, "w": 1.5},
|
||||
{"matrix": [3,1], "x": 1.75, "y": 3.5},
|
||||
{"matrix": [3,2], "x": 2.75, "y": 3.5},
|
||||
{"matrix": [3,3], "x": 3.75, "y": 3.5},
|
||||
{"matrix": [3,4], "x": 4.75, "y": 3.5},
|
||||
{"matrix": [3,5], "x": 5.75, "y": 3.5},
|
||||
{"matrix": [3,6], "x": 8, "y": 3.5},
|
||||
{"matrix": [3,8], "x": 9, "y": 3.5},
|
||||
{"matrix": [3,9], "x": 11.25, "y": 3.5},
|
||||
{"matrix": [3,10], "x": 12.25, "y": 3.5},
|
||||
{"matrix": [3,11], "x": 13.25, "y": 3.5},
|
||||
{"matrix": [3,12], "x": 14.25, "y": 3.5},
|
||||
{"matrix": [3,13], "x": 15.25, "y": 3.5},
|
||||
{"matrix": [3,14], "x": 16.25, "y": 3.5},
|
||||
{"matrix": [3,15], "x": 17.25, "y": 3, "h": 1.5},
|
||||
{"matrix": [4,0], "x": 0.75, "y": 4.5, "w": 1.5},
|
||||
{"matrix": [4,1], "x": 2.25, "y": 4.5},
|
||||
{"matrix": [4,2], "x": 3.25, "y": 4.5},
|
||||
{"matrix": [4,3], "x": 4.25, "y": 4.5},
|
||||
{"matrix": [4,4], "x": 5.25, "y": 4.5},
|
||||
{"matrix": [4,5], "x": 6.25, "y": 4.5},
|
||||
{"matrix": [4,7], "x": 8.5, "y": 4.5},
|
||||
{"matrix": [4,9], "x": 10.75, "y": 4.5},
|
||||
{"matrix": [4,10], "x": 11.75, "y": 4.5},
|
||||
{"matrix": [4,11], "x": 12.75, "y": 4.5},
|
||||
{"matrix": [4,12], "x": 13.75, "y": 4.5},
|
||||
{"matrix": [4,13], "x": 14.75, "y": 4.5},
|
||||
{"matrix": [4,14], "x": 15.75, "y": 4.5},
|
||||
{"matrix": [4,15], "x": 16.75, "y": 4.5},
|
||||
{"matrix": [5,0], "x": 1.25, "y": 5.5, "w": 1.5},
|
||||
{"matrix": [5,1], "x": 2.75, "y": 5.5},
|
||||
{"matrix": [5,2], "x": 3.75, "y": 5.5},
|
||||
{"matrix": [5,3], "x": 4.75, "y": 5.5},
|
||||
{"matrix": [5,4], "x": 5.75, "y": 5.5, "w": 1.5},
|
||||
{"matrix": [5,6], "x": 7.5, "y": 5.5},
|
||||
{"matrix": [5,7], "x": 8.5, "y": 5.5},
|
||||
{"matrix": [5,8], "x": 9.5, "y": 5.5},
|
||||
{"matrix": [5,9], "x": 10.75, "y": 5.5, "w": 1.5},
|
||||
{"matrix": [5,10], "x": 12.25, "y": 5.5},
|
||||
{"matrix": [5,11], "x": 13.25, "y": 5.5},
|
||||
{"matrix": [5,12], "x": 14.25, "y": 5.5},
|
||||
{"matrix": [5,13], "x": 15.25, "y": 5.5, "w": 1.5}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
24
keyboards/suikagiken/suika83opti/keymaps/default/keymap.json
Normal file
24
keyboards/suikagiken/suika83opti/keymaps/default/keymap.json
Normal file
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"author": "suikagiken",
|
||||
"keyboard": "suikagiken/suika83opti",
|
||||
"keymap": "default",
|
||||
"layout": "LAYOUT",
|
||||
"layers": [
|
||||
[
|
||||
"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_DEL" ,
|
||||
"KC_GRV" , "KC_1" , "KC_2" , "KC_3" , "KC_4" , "KC_5" , "KC_6" , "KC_PSCR", "KC_7" , "KC_8" , "KC_9" , "KC_0" , "KC_MINS", "KC_BSPC",
|
||||
"KC_TAB" , "KC_Q" , "KC_W" , "KC_E" , "KC_R" , "KC_T" , "KC_EQL" , "KC_Y" , "KC_U" , "KC_I" , "KC_O" , "KC_P" , "KC_BSLS",
|
||||
"KC_CAPS", "KC_A" , "KC_S" , "KC_D" , "KC_F" , "KC_G" , "KC_LBRC", "KC_RBRC", "KC_H" , "KC_J" , "KC_K" , "KC_L" , "KC_SCLN", "KC_QUOT", "KC_ENT" ,
|
||||
"KC_LSFT", "KC_Z" , "KC_X" , "KC_C" , "KC_V" , "KC_B" , "KC_UP" , "KC_B" , "KC_N" , "KC_M" , "KC_COMM", "KC_DOT" , "KC_SLSH", "KC_RSFT",
|
||||
"KC_LCTL", "KC_LWIN", "KC_LOPT", "MO(1)" , "KC_SPC" , "KC_LEFT", "KC_DOWN", "KC_RGHT", "KC_SPC" , "MO(1)" , "KC_ROPT", "KC_APP" , "KC_RCTL"
|
||||
],
|
||||
[
|
||||
"KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS",
|
||||
"KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS",
|
||||
"KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS",
|
||||
"KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS",
|
||||
"KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_PGUP", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS",
|
||||
"KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_HOME", "KC_PGDN", "KC_END" , "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS"
|
||||
]
|
||||
]
|
||||
}
|
||||
43
keyboards/suikagiken/suika83opti/readme.md
Normal file
43
keyboards/suikagiken/suika83opti/readme.md
Normal file
@@ -0,0 +1,43 @@
|
||||
# suika83opti
|
||||
(English Follows Japanese)
|
||||
|
||||
## 概要
|
||||

|
||||

|
||||
|
||||
suika83optiはロースタッガードの一体型エルゴキーボードです。
|
||||
ファンクションキーや矢印キーなど、コンパクトキーボードでは省略されがちなキーも備えており、フルキーボードからの移行も容易です。
|
||||
|
||||
* 制作 : すいか技研 (Website: https://suikagiken.net GitHub: [suikagiken](https://github.com/suikagiken) )
|
||||
* 販売 : すいか技研の[booth](https://suikagiken.booth.pm/)にて販売予定です
|
||||
|
||||
## ビルドガイド
|
||||
|
||||
[こちら](https://github.com/suikagiken/suika83opti/blob/main/buildguide_1.0.md)からご覧下さい。
|
||||
|
||||
---
|
||||
|
||||
## Overview
|
||||
|
||||
suika83opti is a row-staggered ergonomic keyboard with 85 keys. It has function keys or arrow keys, which are omitted in compact keyboards, making it easy to switch from a conventional full keyboard.
|
||||
|
||||
* Keyboard Maintainer: [suikagiken](https://github.com/suikagiken)
|
||||
* Hardware Availability: Available at [booth](https://suikagiken.booth.pm/).
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make suikagiken/suika83opti:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make suikagiken/suika83opti: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 `QK_BOOT` if it is available
|
||||
73
keyboards/takashicompany/mirageix/keyboard.json
Normal file
73
keyboards/takashicompany/mirageix/keyboard.json
Normal file
@@ -0,0 +1,73 @@
|
||||
{
|
||||
"manufacturer": "takashicompany",
|
||||
"keyboard_name": "MirageiX",
|
||||
"maintainer": "takashicompany",
|
||||
"development_board": "promicro",
|
||||
"diode_direction": "COL2ROW",
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
"nkro": true
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["D4", "C6", "D7", "E6", "B4", "B5"],
|
||||
"rows": ["F4", "F5", "F6", "F7", "B1", "B3", "B2", "B6"]
|
||||
},
|
||||
"url": "",
|
||||
"usb": {
|
||||
"device_version": "1.0.0",
|
||||
"pid": "0x0065",
|
||||
"vid": "0x7463"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 1.25},
|
||||
{"matrix": [1, 0], "x": 1, "y": 1.25},
|
||||
{"matrix": [2, 0], "x": 2, "y": 0.25},
|
||||
{"matrix": [3, 0], "x": 3, "y": 0},
|
||||
{"matrix": [4, 0], "x": 4, "y": 0.25},
|
||||
{"matrix": [5, 0], "x": 5, "y": 0.5},
|
||||
{"matrix": [0, 3], "x": 8, "y": 0.5},
|
||||
{"matrix": [1, 3], "x": 9, "y": 0.25},
|
||||
{"matrix": [2, 3], "x": 10, "y": 0},
|
||||
{"matrix": [3, 3], "x": 11, "y": 0.25},
|
||||
{"matrix": [4, 3], "x": 12, "y": 1.25},
|
||||
{"matrix": [5, 3], "x": 13, "y": 1.25},
|
||||
{"matrix": [0, 1], "x": 0, "y": 2.25},
|
||||
{"matrix": [1, 1], "x": 1, "y": 2.25},
|
||||
{"matrix": [2, 1], "x": 2, "y": 1.25},
|
||||
{"matrix": [3, 1], "x": 3, "y": 1},
|
||||
{"matrix": [4, 1], "x": 4, "y": 1.25},
|
||||
{"matrix": [5, 1], "x": 5, "y": 1.5},
|
||||
{"matrix": [0, 4], "x": 8, "y": 1.5},
|
||||
{"matrix": [1, 4], "x": 9, "y": 1.25},
|
||||
{"matrix": [2, 4], "x": 10, "y": 1},
|
||||
{"matrix": [3, 4], "x": 11, "y": 1.25},
|
||||
{"matrix": [4, 4], "x": 12, "y": 2.25},
|
||||
{"matrix": [5, 4], "x": 13, "y": 2.25},
|
||||
{"matrix": [0, 2], "x": 0, "y": 3.25},
|
||||
{"matrix": [1, 2], "x": 1, "y": 3.25},
|
||||
{"matrix": [2, 2], "x": 2, "y": 2.25},
|
||||
{"matrix": [3, 2], "x": 3, "y": 2},
|
||||
{"matrix": [4, 2], "x": 4, "y": 2.25},
|
||||
{"matrix": [5, 2], "x": 5, "y": 2.5},
|
||||
{"matrix": [0, 5], "x": 8, "y": 2.5},
|
||||
{"matrix": [1, 5], "x": 9, "y": 2.25},
|
||||
{"matrix": [2, 5], "x": 10, "y": 2},
|
||||
{"matrix": [3, 5], "x": 11, "y": 2.25},
|
||||
{"matrix": [4, 5], "x": 12, "y": 3.25},
|
||||
{"matrix": [5, 5], "x": 13, "y": 3.25},
|
||||
{"matrix": [6, 0], "x": 2.5, "y": 4},
|
||||
{"matrix": [6, 1], "x": 3.5, "y": 4},
|
||||
{"matrix": [6, 2], "x": 4.5, "y": 4},
|
||||
{"matrix": [6, 3], "x": 5.5, "y": 4},
|
||||
{"matrix": [7, 2], "x": 7.5, "y": 4},
|
||||
{"matrix": [7, 3], "x": 8.5, "y": 4},
|
||||
{"matrix": [7, 4], "x": 9.5, "y": 4},
|
||||
{"matrix": [7, 5], "x": 10.5, "y": 4}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
70
keyboards/takashicompany/mirageix/keymaps/default/keymap.c
Normal file
70
keyboards/takashicompany/mirageix/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,70 @@
|
||||
// Copyright 2025 takashicompany (@takashicompany)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[0] = LAYOUT(
|
||||
KC_ESC, LT(7, KC_Q), KC_W, KC_E, LT(6, KC_R), KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
|
||||
KC_LCTL, KC_A, KC_S, LT(6, KC_D), KC_F, KC_G, KC_H, KC_J, LT(6, KC_K), KC_L, KC_ENT, KC_ENT,
|
||||
KC_LSFT, LSFT_T(KC_Z), LGUI_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, LCTL_T(KC_DOT), KC_BSPC, KC_DEL,
|
||||
KC_LCTL, KC_LGUI, LALT_T(KC_LNG2), LSFT_T(KC_TAB), LT(2, KC_SPC), LT(1, KC_LNG1), KC_RALT, KC_RGUI
|
||||
),
|
||||
|
||||
[1] = LAYOUT(
|
||||
KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS,
|
||||
KC_TRNS, LCTL_T(KC_EQL), KC_LBRC, KC_SLSH, KC_MINS, KC_INT1, KC_SCLN, KC_QUOT, KC_RBRC, KC_NUHS, KC_INT3, KC_TRNS,
|
||||
KC_TRNS, LSFT_T(KC_PLUS), KC_LCBR, KC_QUES, KC_UNDS, LSFT(KC_INT1), KC_COLN, KC_DQUO, KC_RCBR, LSFT(KC_NUHS), LSFT(KC_INT3), KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
|
||||
[2] = LAYOUT(
|
||||
KC_TRNS, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, LGUI(KC_INT3), KC_TRNS,
|
||||
KC_TRNS, KC_PLUS, KC_LCBR, KC_QUES, KC_UNDS, LSFT(KC_INT1), KC_COLN, KC_DQUO, KC_RCBR, LSFT(KC_NUHS), LSFT(KC_INT3), KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_LGUI, KC_LALT, KC_LNG2, KC_LSFT, KC_SPC, KC_LNG1, KC_TRNS, KC_TRNS, KC_DEL, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
|
||||
[3] = LAYOUT(
|
||||
KC_TRNS, LT(7, KC_Q), KC_W, KC_E, LT(6, KC_R), KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_TRNS,
|
||||
KC_TRNS, KC_A, KC_S, LT(6, KC_D), KC_F, KC_G, KC_H, KC_J, LT(6, KC_K), KC_L, KC_ENT, KC_TRNS,
|
||||
KC_TRNS, LSFT_T(KC_Z), LGUI_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, LCTL_T(KC_DOT), KC_BSPC, KC_TRNS,
|
||||
KC_LCTL, KC_LGUI, LALT_T(KC_LNG2), LSFT_T(KC_TAB), LT(5, KC_SPC), LT(4, KC_LNG1), KC_RALT, KC_RGUI
|
||||
),
|
||||
|
||||
[4] = LAYOUT(
|
||||
KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS,
|
||||
KC_TRNS, KC_CIRC, KC_AT, KC_SLSH, KC_MINS, KC_UNDS, KC_SCLN, KC_COLN, KC_LBRC, KC_RBRC, KC_INT3, KC_TRNS,
|
||||
KC_TRNS, LT(5, KC_TILD), KC_GRV, KC_QUES, KC_EQL, KC_UNDS, KC_PLUS, KC_ASTR, KC_LCBR, KC_RCBR, KC_PIPE, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
|
||||
[5] = LAYOUT(
|
||||
KC_TRNS, KC_EXLM, KC_DQUO, KC_HASH, KC_DLR, KC_PERC, KC_AMPR, KC_QUOT, KC_LPRN, KC_RPRN, KC_BSLS, KC_TRNS,
|
||||
KC_TRNS, KC_TILD, KC_GRV, KC_QUES, KC_EQL, KC_UNDS, KC_PLUS, KC_ASTR, KC_LCBR, KC_RCBR, KC_PIPE, KC_TRNS,
|
||||
KC_TRNS, KC_LSFT, KC_LGUI, KC_LALT, KC_LNG2, KC_LSFT, KC_SPC, KC_LNG1, KC_TRNS, KC_TRNS, KC_DEL, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
|
||||
[6] = LAYOUT(
|
||||
KC_TRNS, KC_ESC, KC_TAB, KC_UP, KC_NO, KC_NO, KC_NO, KC_NO, KC_UP, KC_NO, KC_NO, KC_TRNS,
|
||||
KC_TRNS, KC_LCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_TRNS,
|
||||
KC_TRNS, KC_LSFT, KC_LGUI, KC_LALT, KC_LNG2, KC_TRNS, KC_NO, KC_LNG1, KC_NO, KC_NO, KC_DEL, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
|
||||
[7] = LAYOUT(
|
||||
KC_TRNS, KC_NO, KC_TAB, KC_NO, KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_TRNS,
|
||||
KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS,
|
||||
KC_TRNS, KC_LSFT, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, MO(8), MO(9), KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
|
||||
[8] = LAYOUT(
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_NO, DF(0), DF(3), KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO, QK_BOOT, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
)
|
||||
};
|
||||
39
keyboards/takashicompany/mirageix/readme.md
Normal file
39
keyboards/takashicompany/mirageix/readme.md
Normal file
@@ -0,0 +1,39 @@
|
||||
# MirageiX
|
||||
|
||||

|
||||
|
||||
MirageiX is a 44-key integrated keyboard.
|
||||
The PCB has been trimmed to the limit to create a visual appearance in which only the keycaps seem to float.
|
||||
By using a transparent acrylic case, you can enjoy a mirage-like keyboard expression.
|
||||
The key layout is based on the TRON keyboard layout, making typing smoother than it looks.
|
||||
|
||||
Keyswitches are fixed with sockets, allowing easy replacement of keyswitches.
|
||||
|
||||
MirageiXは44キーの一体型キーボードです。
|
||||
PCBを極限まで切り詰めたことでキーキャップのみが浮き出るようなビジュアルを実現しました。
|
||||
透明なアクリルケースを用いることで蜃気楼のようなキーボード表現が楽しめます。
|
||||
キー配列もTRONというキーボードの配置を参考にしているため、見た目以上にスムーズなタイピングを実現します。
|
||||
|
||||
キースイッチはソケットで固定されるため、キースイッチの交換を容易に行えます。
|
||||
|
||||
* Keyboard Maintainer: [takashicompany](https://github.com/takashicompany)
|
||||
* Hardware Supported: MirageiX PCB, Pro Micro
|
||||
* Hardware Availability: https://github.com/takashicompany/mirageix
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make takashicompany/mirageix:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make takashicompany/mirageix: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 `QK_BOOT` if it is available
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user