Compare commits
2 Commits
main
...
lif-custom
Author | SHA1 | Date |
---|---|---|
lif | cec19cc09c | |
lif | 40050f0314 |
|
@ -1,8 +1,14 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
mkdir -p build
|
||||||
|
|
||||||
|
cc test/matrix-valid.c -o build/matrix-valid
|
||||||
|
build/matrix-valid
|
||||||
|
|
||||||
export PICO_SDK_PATH=$(pwd)/../../pico-sdk
|
export PICO_SDK_PATH=$(pwd)/../../pico-sdk
|
||||||
|
|
||||||
mkdir -p build
|
|
||||||
cd build
|
cd build
|
||||||
cmake -DFAMILY=rp2040 ..
|
cmake -DFAMILY=rp2040 ..
|
||||||
|
|
||||||
|
|
|
@ -34,11 +34,11 @@
|
||||||
KEY_I,\
|
KEY_I,\
|
||||||
KEY_O,\
|
KEY_O,\
|
||||||
KEY_P,\
|
KEY_P,\
|
||||||
KEY_SEMICOLON
|
KEY_BACKSLASH
|
||||||
|
|
||||||
// Fourth row
|
// Fourth row
|
||||||
#define MATRIX_DEFAULT_ROW_3 \
|
#define MATRIX_DEFAULT_ROW_3 \
|
||||||
KEY_LEFTCTRL,\
|
KEY_SYSRQ,\
|
||||||
KEY_A,\
|
KEY_A,\
|
||||||
KEY_S,\
|
KEY_S,\
|
||||||
KEY_D,\
|
KEY_D,\
|
||||||
|
@ -48,12 +48,13 @@
|
||||||
KEY_J,\
|
KEY_J,\
|
||||||
KEY_K,\
|
KEY_K,\
|
||||||
KEY_L,\
|
KEY_L,\
|
||||||
KEY_APOSTROPHE,\
|
KEY_SEMICOLON,\
|
||||||
KEY_ENTER
|
KEY_ENTER
|
||||||
|
|
||||||
// Fifth row
|
// Fifth row
|
||||||
#define MATRIX_DEFAULT_ROW_4 \
|
#define MATRIX_DEFAULT_ROW_4 \
|
||||||
KEY_LEFTSHIFT,\
|
KEY_LEFTSHIFT,\
|
||||||
|
KEY_COMPOSE,\
|
||||||
KEY_Z,\
|
KEY_Z,\
|
||||||
KEY_X,\
|
KEY_X,\
|
||||||
KEY_C,\
|
KEY_C,\
|
||||||
|
@ -63,22 +64,21 @@
|
||||||
KEY_M,\
|
KEY_M,\
|
||||||
KEY_COMMA,\
|
KEY_COMMA,\
|
||||||
KEY_DOT,\
|
KEY_DOT,\
|
||||||
KEY_UP,\
|
KEY_SLASH
|
||||||
KEY_RIGHTALT
|
|
||||||
|
|
||||||
// Sixth row
|
// Sixth row
|
||||||
#define MATRIX_DEFAULT_ROW_5 \
|
#define MATRIX_DEFAULT_ROW_5 \
|
||||||
KEY_COMPOSE,\
|
KEY_LEFTCTRL,\
|
||||||
KEY_LEFTMETA,\
|
KEY_LEFTMETA,\
|
||||||
KEY_LEFTALT,\
|
KEY_LEFTALT,\
|
||||||
KEY_BACKSLASH,\
|
KEY_MINUS,\
|
||||||
KEY_EQUAL,\
|
KEY_EQUAL,\
|
||||||
KEY_SPACE,\
|
KEY_SPACE,\
|
||||||
KEY_SPACE,\
|
KEY_SPACE,\
|
||||||
KEY_MINUS,\
|
KEY_APOSTROPHE,\
|
||||||
KEY_SLASH,\
|
|
||||||
KEY_LEFT,\
|
KEY_LEFT,\
|
||||||
KEY_DOWN,\
|
KEY_DOWN,\
|
||||||
|
KEY_UP,\
|
||||||
KEY_RIGHT
|
KEY_RIGHT
|
||||||
|
|
||||||
// Every line of `matrix` is a row of the keyboard, starting from the top.
|
// Every line of `matrix` is a row of the keyboard, starting from the top.
|
||||||
|
@ -115,12 +115,12 @@ uint8_t matrix_fn[KBD_MATRIX_SZ] = {
|
||||||
KEY_T,
|
KEY_T,
|
||||||
KEY_Y,
|
KEY_Y,
|
||||||
KEY_U,
|
KEY_U,
|
||||||
KEY_I,
|
KEY_INSERT,
|
||||||
KEY_LEFTBRACE,
|
KEY_LEFTBRACE,
|
||||||
KEY_RIGHTBRACE,
|
KEY_RIGHTBRACE,
|
||||||
KEY_SEMICOLON,
|
KEY_BACKSLASH,
|
||||||
|
|
||||||
KEY_LEFTCTRL,
|
KEY_CAPSLOCK,
|
||||||
KEY_A,
|
KEY_A,
|
||||||
KEY_S,
|
KEY_S,
|
||||||
KEY_D,
|
KEY_D,
|
||||||
|
@ -130,10 +130,11 @@ uint8_t matrix_fn[KBD_MATRIX_SZ] = {
|
||||||
KEY_J,
|
KEY_J,
|
||||||
KEY_K,
|
KEY_K,
|
||||||
KEY_L,
|
KEY_L,
|
||||||
KEY_APOSTROPHE,
|
KEY_SEMICOLON,
|
||||||
KEY_ENTER,
|
KEY_ENTER,
|
||||||
|
|
||||||
KEY_LEFTSHIFT,
|
KEY_RIGHTSHIFT,
|
||||||
|
KEY_COMPOSE,
|
||||||
KEY_Z,
|
KEY_Z,
|
||||||
KEY_X,
|
KEY_X,
|
||||||
KEY_C,
|
KEY_C,
|
||||||
|
@ -143,19 +144,18 @@ uint8_t matrix_fn[KBD_MATRIX_SZ] = {
|
||||||
KEY_M,
|
KEY_M,
|
||||||
KEY_COMMA,
|
KEY_COMMA,
|
||||||
KEY_DOT,
|
KEY_DOT,
|
||||||
KEY_PAGEUP,
|
KEY_SLASH,
|
||||||
KEY_RIGHTSHIFT,
|
|
||||||
|
|
||||||
KEY_COMPOSE,
|
KEY_RIGHTCTRL,
|
||||||
KEY_RIGHTMETA,
|
KEY_RIGHTMETA,
|
||||||
KEY_RIGHTALT,
|
KEY_RIGHTALT,
|
||||||
KEY_BACKSLASH,
|
KEY_MINUS,
|
||||||
KEY_EQUAL,
|
KEY_EQUAL,
|
||||||
KEY_SPACE,
|
KEY_SPACE,
|
||||||
KEY_SPACE,
|
KEY_SPACE,
|
||||||
KEY_MINUS,
|
KEY_APOSTROPHE,
|
||||||
KEY_SLASH,
|
|
||||||
KEY_HOME,
|
KEY_HOME,
|
||||||
KEY_PAGEDOWN,
|
KEY_PAGEDOWN,
|
||||||
|
KEY_PAGEUP,
|
||||||
KEY_END
|
KEY_END
|
||||||
};
|
};
|
||||||
|
|
|
@ -0,0 +1,86 @@
|
||||||
|
#define KBD_COLS 12
|
||||||
|
#define KBD_ROWS 6
|
||||||
|
#define KBD_MATRIX_SZ KBD_COLS * KBD_ROWS + 4
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdint.h>
|
||||||
|
#include "../src/matrix.h"
|
||||||
|
|
||||||
|
#define WHY_HYPER_RETURN \
|
||||||
|
"Hyper+Return is required both to power on and to enter the keyboard menu.\n"
|
||||||
|
|
||||||
|
#define WHY_X \
|
||||||
|
"Pressing X in the keyboard menu is required to enter bootloader mode.\n" \
|
||||||
|
"(Bootloader mode can be exited by toggling the standby power switch.)\n"
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
int i;
|
||||||
|
int hyper_loc = -1;
|
||||||
|
int x_loc = -1;
|
||||||
|
int enter_loc_fn = -1;
|
||||||
|
|
||||||
|
// irrelevant because they're both defined with [KBD_MATRIX_SZ],
|
||||||
|
// but if they were changed not to:
|
||||||
|
if (sizeof(matrix) != sizeof(matrix_fn)) {
|
||||||
|
fprintf(
|
||||||
|
stderr,
|
||||||
|
"Layer size mismatch! %zu != %zu\n",
|
||||||
|
sizeof(matrix),
|
||||||
|
sizeof(matrix_fn)
|
||||||
|
);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (i = 0; i < sizeof(matrix); i++) {
|
||||||
|
if (matrix[i] == KEY_COMPOSE) {
|
||||||
|
hyper_loc = i;
|
||||||
|
} else if (matrix[i] == KEY_X) {
|
||||||
|
x_loc = i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (hyper_loc == -1) {
|
||||||
|
fprintf(
|
||||||
|
stderr,
|
||||||
|
"No hyper key (KEY_COMPOSE) found on base layer (matrix)!\n"
|
||||||
|
WHY_HYPER_RETURN
|
||||||
|
);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
if (x_loc == -1) {
|
||||||
|
fprintf(
|
||||||
|
stderr,
|
||||||
|
"No X key (KEY_X) found on base layer (matrix)!\n"
|
||||||
|
WHY_X
|
||||||
|
);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
if (matrix_fn[hyper_loc] != KEY_COMPOSE) {
|
||||||
|
for (i = 0; i < sizeof(matrix_fn); i++) {
|
||||||
|
if (matrix_fn[i] == KEY_COMPOSE) {
|
||||||
|
fprintf(
|
||||||
|
stderr,
|
||||||
|
"Hyper key (KEY_COMPOSE) in different position on layers! %d != %d\n",
|
||||||
|
hyper_loc,
|
||||||
|
i
|
||||||
|
);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fprintf(stderr, "No hyper key (KEY_COMPOSE) found on hyper layer (matrix_fn)!\n");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
for (i = 0; i < sizeof(matrix_fn); i++) {
|
||||||
|
if (matrix_fn[i] == KEY_ENTER) {
|
||||||
|
enter_loc_fn = i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (enter_loc_fn == -1) {
|
||||||
|
fprintf(
|
||||||
|
stderr,
|
||||||
|
"No return key (KEY_ENTER) found on hyper layer (matrix_fn)!\n"
|
||||||
|
WHY_HYPER_RETURN
|
||||||
|
);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
Loading…
Reference in New Issue