This commit is contained in:
Akshay 2025-07-23 14:15:18 +02:00 committed by GitHub
commit f3646fe86c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 173 additions and 0 deletions

View File

@ -0,0 +1,58 @@
{
"manufacturer": "Hawtkeys",
"keyboard_name": "Shorty K1",
"maintainer": "hawtkeys",
"bootloader": "rp2040",
"diode_direction": "ROW2COL",
"encoder": {
"rotary": [
{"pin_a": "GP1", "pin_b": "GP2"}
]
},
"features": {
"bootmagic": true,
"encoder": true,
"extrakey": true,
"mousekey": true,
"rgblight": true
},
"matrix_pins": {
"cols": ["GP4"],
"rows": ["GP0", "GP3", "GP5", "GP11"]
},
"processor": "RP2040",
"url": "https://hawtkeys.com",
"usb": {
"device_version": "1.0.0",
"pid": "0x6B31",
"vid": "0x5453"
},
"rgblight": {
"led_count": 3,
"animations": {
"breathing": true,
"rainbow_mood": true,
"rainbow_swirl": true,
"snake": true,
"knight": true,
"christmas": true,
"static_gradient": true,
"alternating": true,
"twinkle": true
}
},
"ws2812": {
"driver": "vendor",
"pin": "GP10"
},
"layouts": {
"LAYOUT": {
"layout": [
{"matrix": [0, 0], "x": 1, "y": 0},
{"matrix": [1, 0], "x": 0, "y": 1},
{"matrix": [2, 0], "x": 1, "y": 1},
{"matrix": [3, 0], "x": 2, "y": 1}
]
}
}
}

View File

@ -0,0 +1,8 @@
// Copyright 2025 Hawtkeys
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#define RGBLIGHT_LAYERS
#define RGBLIGHT_MAX_LAYERS 4
#define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF
#define RGBLIGHT_LAYER_BLINK

View File

@ -0,0 +1,79 @@
// Copyright 2025 Hawtkeys
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
enum custom_keycodes {
LAYER_ROTATE = SAFE_RANGE,
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
LAYER_ROTATE,
KC_A, KC_B, KC_C
),
[1] = LAYOUT(
LAYER_ROTATE,
KC_1, KC_2, KC_3
),
[2] = LAYOUT(
LAYER_ROTATE,
KC_Q, KC_W, KC_E
),
[3] = LAYOUT(
LAYER_ROTATE,
KC_R, KC_T, KC_Y
)
};
#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
[1] = { ENCODER_CCW_CW(_______, _______) },
[2] = { ENCODER_CCW_CW(_______, _______) },
[3] = { ENCODER_CCW_CW(_______, _______) }
};
#endif
#if defined(RGBLIGHT_LAYERS)
const rgblight_segment_t PROGMEM rgb_layer1_layer[] = RGBLIGHT_LAYER_SEGMENTS(
{0, 3, HSV_BLUE}
);
const rgblight_segment_t PROGMEM rgb_layer2_layer[] = RGBLIGHT_LAYER_SEGMENTS(
{2, 1, HSV_YELLOW}
);
const rgblight_segment_t PROGMEM rgb_layer3_layer[] = RGBLIGHT_LAYER_SEGMENTS(
{1, 1, HSV_GREEN}
);
const rgblight_segment_t PROGMEM rgb_layer4_layer[] = RGBLIGHT_LAYER_SEGMENTS(
{0, 1, HSV_PURPLE}
);
const rgblight_segment_t* const PROGMEM all_rgb_layers[] = RGBLIGHT_LAYERS_LIST(
rgb_layer1_layer,
rgb_layer2_layer,
rgb_layer3_layer,
rgb_layer4_layer
);
void keyboard_post_init_user(void) {
rgblight_layers = all_rgb_layers;
}
#endif
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch(keycode) {
case LAYER_ROTATE:
if (record->event.pressed) {
uint8_t layer = get_highest_layer(layer_state);
uint8_t next_layer = layer >= 3 ? 0 : layer + 1;
rgblight_unblink_all_but_layer(next_layer);
rgblight_blink_layer_repeat(next_layer, 300, 2);
layer_move(next_layer);
}
return false;
}
return true;
}

View File

@ -0,0 +1 @@
ENCODER_MAP_ENABLE = yes

View File

@ -0,0 +1,27 @@
# Shorty K1
![Shorty K1 by hawtkeys.com](https://i.imgur.com/tGNq5H4.png)
The Shorty K1 is a 3x1 customizable macropad designed for productivity, gaming, and creative workflows, featuring programmable keys and rotary knobs.
* Keyboard Maintainer: [Hawtkeys](https://github.com/hawtkeys)
* Hardware Supported: Raspberry Pi Pico, Hawtkeys Shorty Zero PCB
* Hardware Availability: [Available @ hawtkeys.com](https://hawtkeys.com)
Make example for this keyboard (after setting up your build environment):
make hawtkeys/shortyk1:default
Flashing example for this keyboard:
make hawtkeys/shortyk1: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