diff --git a/.gitmodules b/.gitmodules index b176ca89..255800c4 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,6 @@ [submodule "src/qmk/qmk_firmware"] path = src/qmk/qmk_firmware url = https://github.com/qmk/qmk_firmware.git +[submodule "src/vial-kb/vial-qmk"] + path = src/vial-kb/vial-qmk + url = https://github.com/vial-kb/vial-qmk.git diff --git a/Makefile b/Makefile index 19a3431b..7fc1d857 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -.PHONY: git-submodule, qmk-clean, qmk-init, qmk-compile, qmk-flash, qmk-init-all, qmk-compile-all +.PHONY: git-submodule, qmk-clean, qmk-init, qmk-compile, qmk-flash, qmk-init-all, qmk-compile-all, vial-qmk-clean, vial-qmk-init, vial-qmk-compile, vial-qmk-flash, vial-qmk-init-all, vial-qmk-compile-all KB := crkbd KR := rev1 @@ -46,3 +46,36 @@ qmk-compile-all: kb=cornelius kr=rev2 km=via make qmk-compile kb=lskbd kr=rev1 km=via make qmk-compile +vial-qmk-clean: + rm -rf src/vial-kb/vial-qmk/keyboards/tmp + cd src/vial-kb/vial-qmk; qmk clean + +vial-qmk-init: + $(eval KB := ${kb}) + rm -f src/vial-kb/vial-qmk/keyboards/tmp/${KB} + mkdir -p src/vial-kb/vial-qmk/keyboards/tmp + ln -s $(shell pwd)/keyboards/${KB}/vial-kb/vial-qmk src/vial-kb/vial-qmk/keyboards/tmp/${KB} + +vial-qmk-compile: + $(eval KB := ${kb}) + $(eval KR := ${kr}) + $(eval KM := ${km}) + $(eval FILE := $(shell echo "${kb}_${kr}_${km}" | sed 's/\//_/')) + cd src/vial-kb/vial-qmk; qmk compile -kb tmp/${KB}/${KR} -km ${KM} + cp src/vial-kb/vial-qmk/.build/tmp_${FILE}.hex keyboards/${KB}/vial-kb/vial-qmk/.build/${FILE}.hex | true + cp src/vial-kb/vial-qmk/.build/tmp_${FILE}.uf2 keyboards/${KB}/vial-kb/vial-qmk/.build/${FILE}.uf2 | true + +vial-qmk-flash: + $(eval KB := ${kb}) + $(eval KR := ${kr}) + $(eval KM := ${km}) + cd src/vial-kb/vial-qmk; qmk flash -kb tmp/${KB}/${KR} -km ${KM} + +vial-qmk-init-all: + kb=crkbd make qmk-init + kb=cornelius make qmk-init + kb=lskbd make qmk-init + +vial-qmk-compile-all: + kb=lskbd kr=rev1 km=vial make qmk-compile + diff --git a/keyboards/lskbd/vial-kb/vial-qmk/.build/lskbd_rev1_vial.uf2 b/keyboards/lskbd/vial-kb/vial-qmk/.build/lskbd_rev1_vial.uf2 new file mode 100644 index 00000000..8431b897 Binary files /dev/null and b/keyboards/lskbd/vial-kb/vial-qmk/.build/lskbd_rev1_vial.uf2 differ diff --git a/keyboards/lskbd/vial-kb/vial-qmk/keymaps/vial/config.h b/keyboards/lskbd/vial-kb/vial-qmk/keymaps/vial/config.h new file mode 100644 index 00000000..080da263 --- /dev/null +++ b/keyboards/lskbd/vial-kb/vial-qmk/keymaps/vial/config.h @@ -0,0 +1,5 @@ +#pragma once + +#define VIAL_KEYBOARD_UID {0x03, 0x7E, 0x0B, 0xD8, 0x83, 0x51, 0xE1, 0xAD} +#define VIAL_UNLOCK_COMBO_ROWS {0, 0} +#define VIAL_UNLOCK_COMBO_COLS {0, 1} diff --git a/keyboards/lskbd/vial-kb/vial-qmk/keymaps/vial/keymap.c b/keyboards/lskbd/vial-kb/vial-qmk/keymaps/vial/keymap.c new file mode 100644 index 00000000..eecd0c98 --- /dev/null +++ b/keyboards/lskbd/vial-kb/vial-qmk/keymaps/vial/keymap.c @@ -0,0 +1,31 @@ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + 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_LCTL, 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_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_ESC, KC_LCTL, KC_LALT, KC_LGUI, TL_LOWR, KC_SPC, KC_ENT, TL_UPPR, KC_RGUI, KC_RALT, KC_RCTL, KC_ESC + ), + + [1] = LAYOUT( + _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP,KC_RIGHT, XXXXXXX, XXXXXXX, + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [2] = LAYOUT( + _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MINS, KC_EQL, KC_LCBR, KC_RCBR, KC_PIPE, KC_GRV, + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_UNDS, KC_PLUS, KC_LBRC, KC_RBRC, KC_BSLS, KC_TILD, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [3] = LAYOUT( + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/lskbd/vial-kb/vial-qmk/keymaps/vial/rules.mk b/keyboards/lskbd/vial-kb/vial-qmk/keymaps/vial/rules.mk new file mode 100644 index 00000000..48d38f78 --- /dev/null +++ b/keyboards/lskbd/vial-kb/vial-qmk/keymaps/vial/rules.mk @@ -0,0 +1,6 @@ +VIA_ENABLE = yes +VIAL_ENABLE = yes +LTO_ENABLE = yes + +VIALRGB_ENABLE = yes +QMK_SETTINGS = no \ No newline at end of file diff --git a/keyboards/lskbd/vial-kb/vial-qmk/keymaps/vial/vial.json b/keyboards/lskbd/vial-kb/vial-qmk/keymaps/vial/vial.json new file mode 100644 index 00000000..790aca9f --- /dev/null +++ b/keyboards/lskbd/vial-kb/vial-qmk/keymaps/vial/vial.json @@ -0,0 +1,16 @@ +{ + "name": "lskbd", + "vendorId": "0x4653", + "productId": "0x0005", + "matrix": {"rows": 8, "cols": 6}, + "lighting": "vialrgb", + "layouts": { + "keymap": [ + ["0,0","0,1","0,2","0,3","0,4","0,5",{"x": 1},"4,0","4,1","4,2","4,3","4,4","4,5"], + ["1,0","1,1","1,2","1,3","1,4","1,5",{"x": 1},"5,0","5,1","5,2","5,3","5,4","5,5"], + ["2,0","2,1","2,2","2,3","2,4","2,5",{"x": 1},"6,0","6,1","6,2","6,3","6,4","6,5"], + ["3,0","3,1","3,2","3,3","3,4","3,5",{"x": 1},"7,0","7,1","7,2","7,3","7,4","7,5"] + ] + } +} + diff --git a/keyboards/lskbd/vial-kb/vial-qmk/rev1/config.h b/keyboards/lskbd/vial-kb/vial-qmk/rev1/config.h new file mode 100644 index 00000000..2488d8dc --- /dev/null +++ b/keyboards/lskbd/vial-kb/vial-qmk/rev1/config.h @@ -0,0 +1,17 @@ +#pragma once + +#define SERIAL_USART_FULL_DUPLEX +#define SERIAL_USART_TX_PIN GP0 +#define SERIAL_USART_RX_PIN GP1 +#define SPLIT_HAND_PIN GP21 + +#define RGB_DISABLE_WHEN_USB_SUSPENDED +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS +#define RGB_MATRIX_KEYPRESSES + +/* 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 + +#define DYNAMIC_KEYMAP_LAYER_COUNT 6 diff --git a/keyboards/lskbd/vial-kb/vial-qmk/rev1/info.json b/keyboards/lskbd/vial-kb/vial-qmk/rev1/info.json new file mode 100644 index 00000000..bddf452b --- /dev/null +++ b/keyboards/lskbd/vial-kb/vial-qmk/rev1/info.json @@ -0,0 +1,229 @@ +{ + "keyboard_name": "lskbd", + "maintainer": "foostan", + "manufacturer": "foostan", + "url": "https://github.com/foostan/lskbd", + "usb": { + "vid": "0x4653", + "pid": "0x0005", + "device_version": "1.0.0" + }, + "processor": "RP2040", + "bootloader": "rp2040", + "features": { + "bootmagic": true, + "extrakey": true, + "nkro": true, + "rgb_matrix": true, + "mousekey": true + }, + "build": { + "lto": true + }, + "diode_direction": "COL2ROW", + "matrix_pins": { + "direct":[ + ["GP24", "GP26", "GP28", "GP4", "GP5", "GP7"], + ["GP25", "GP27", "GP29", "GP3", "GP6", "GP9"], + ["GP23", "GP19", "GP18", "GP15", "GP10", "GP11"], + ["GP22", "GP16", "GP17", "GP14", "GP13", "GP12"] + ] + }, + "bootmagic": { + "enabled": true, + "matrix": [ 0, 0 ] + }, + "split": { + "enabled": true, + "bootmagic": { + "matrix": [ 4, 0 ] + }, + "matrix_pins": { + "right": { + "direct":[ + ["GP24", "GP26", "GP28", "GP4", "GP5", "GP7"], + ["GP25", "GP27", "GP29", "GP3", "GP6", "GP9"], + ["GP23", "GP19", "GP18", "GP15", "GP10", "GP11"], + ["GP22", "GP16", "GP17", "GP14", "GP13", "GP12"] + ] + } + }, + "transport": { + "sync": { + "matrix_state": true + }, + "watchdog": true + + }, + "usb_detect": { + "timeout": 500 + } + }, + "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": [4, 0], "x": 6, "y": 0}, + {"matrix": [4, 1], "x": 7, "y": 0}, + {"matrix": [4, 2], "x": 8, "y": 0}, + {"matrix": [4, 3], "x": 9, "y": 0}, + {"matrix": [4, 4], "x": 10, "y": 0}, + {"matrix": [4, 5], "x": 11, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1}, + {"matrix": [1, 5], "x": 5, "y": 1}, + + {"matrix": [5, 0], "x": 6, "y": 1}, + {"matrix": [5, 1], "x": 7, "y": 1}, + {"matrix": [5, 2], "x": 8, "y": 1}, + {"matrix": [5, 3], "x": 9, "y": 1}, + {"matrix": [5, 4], "x": 10, "y": 1}, + {"matrix": [5, 5], "x": 11, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1, "y": 2}, + {"matrix": [2, 2], "x": 2, "y": 2}, + {"matrix": [2, 3], "x": 3, "y": 2}, + {"matrix": [2, 4], "x": 4, "y": 2}, + {"matrix": [2, 5], "x": 5, "y": 2}, + + {"matrix": [6, 0], "x": 6, "y": 2}, + {"matrix": [6, 1], "x": 7, "y": 2}, + {"matrix": [6, 2], "x": 8, "y": 2}, + {"matrix": [6, 3], "x": 9, "y": 2}, + {"matrix": [6, 4], "x": 10, "y": 2}, + {"matrix": [6, 5], "x": 11, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3}, + {"matrix": [3, 1], "x": 1, "y": 3}, + {"matrix": [3, 2], "x": 2, "y": 3}, + {"matrix": [3, 3], "x": 3, "y": 3}, + {"matrix": [3, 4], "x": 4, "y": 3}, + {"matrix": [3, 5], "x": 5, "y": 3}, + + {"matrix": [7, 0], "x": 6, "y": 3}, + {"matrix": [7, 1], "x": 7, "y": 3}, + {"matrix": [7, 2], "x": 8, "y": 3}, + {"matrix": [7, 3], "x": 9, "y": 3}, + {"matrix": [7, 4], "x": 10, "y": 3}, + {"matrix": [7, 5], "x": 11, "y": 3} + ] + } + }, + "ws2812": { + "driver": "vendor", + "pin": "GP2" + }, + "rgb_matrix": { + "driver": "ws2812", + "led_count": 48, + "max_brightness": 50, + "split_count": [24, 24], + "animations": { + "alphas_mods": true, + "gradient_up_down": true, + "gradient_left_right": true, + "breathing": true, + "band_sat": true, + "band_val": true, + "band_pinwheel_sat": true, + "band_pinwheel_val": true, + "band_spiral_sat": true, + "band_spiral_val": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_up_down": true, + "rainbow_moving_chevron": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "dual_beacon": true, + "rainbow_beacon": true, + "rainbow_pinwheels": true, + "raindrops": true, + "jellybean_raindrops": true, + "hue_breathing": true, + "hue_pendulum": true, + "hue_wave": true, + "pixel_fractal": true, + "pixel_flow": true, + "pixel_rain": true, + "typing_heatmap": true, + "digital_rain": true, + "solid_reactive_simple": true, + "solid_reactive": true, + "solid_reactive_wide": true, + "solid_reactive_multiwide": true, + "solid_reactive_cross": true, + "solid_reactive_multicross": true, + "solid_reactive_nexus": true, + "solid_reactive_multinexus": true, + "splash": true, + "multisplash": true, + "solid_splash": true, + "solid_multisplash": true + }, + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 10, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 20, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 30, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 40, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 50, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 10, "flags": 4}, + {"matrix": [1, 1], "x": 10, "y": 10, "flags": 4}, + {"matrix": [1, 2], "x": 20, "y": 10, "flags": 4}, + {"matrix": [1, 3], "x": 30, "y": 10, "flags": 4}, + {"matrix": [1, 4], "x": 40, "y": 10, "flags": 4}, + {"matrix": [1, 5], "x": 50, "y": 10, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 20, "flags": 4}, + {"matrix": [2, 1], "x": 10, "y": 20, "flags": 4}, + {"matrix": [2, 2], "x": 20, "y": 20, "flags": 4}, + {"matrix": [2, 3], "x": 30, "y": 20, "flags": 4}, + {"matrix": [2, 4], "x": 40, "y": 20, "flags": 4}, + {"matrix": [2, 5], "x": 50, "y": 20, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 30, "flags": 4}, + {"matrix": [3, 1], "x": 10, "y": 30, "flags": 4}, + {"matrix": [3, 2], "x": 20, "y": 30, "flags": 4}, + {"matrix": [3, 3], "x": 30, "y": 30, "flags": 4}, + {"matrix": [3, 4], "x": 40, "y": 30, "flags": 4}, + {"matrix": [3, 5], "x": 50, "y": 30, "flags": 4}, + + {"matrix": [4, 0], "x": 60, "y": 0, "flags": 4}, + {"matrix": [4, 1], "x": 70, "y": 0, "flags": 4}, + {"matrix": [4, 2], "x": 80, "y": 0, "flags": 4}, + {"matrix": [4, 3], "x": 90, "y": 0, "flags": 4}, + {"matrix": [4, 4], "x": 100, "y": 0, "flags": 4}, + {"matrix": [4, 5], "x": 110, "y": 0, "flags": 4}, + {"matrix": [5, 0], "x": 60, "y": 10, "flags": 4}, + {"matrix": [5, 1], "x": 70, "y": 10, "flags": 4}, + {"matrix": [5, 2], "x": 80, "y": 10, "flags": 4}, + {"matrix": [5, 3], "x": 90, "y": 10, "flags": 4}, + {"matrix": [5, 4], "x": 100, "y": 10, "flags": 4}, + {"matrix": [5, 5], "x": 110, "y": 10, "flags": 4}, + {"matrix": [6, 0], "x": 60, "y": 20, "flags": 4}, + {"matrix": [6, 1], "x": 70, "y": 20, "flags": 4}, + {"matrix": [6, 2], "x": 80, "y": 20, "flags": 4}, + {"matrix": [6, 3], "x": 90, "y": 20, "flags": 4}, + {"matrix": [6, 4], "x": 100, "y": 20, "flags": 4}, + {"matrix": [6, 5], "x": 110, "y": 20, "flags": 4}, + {"matrix": [7, 0], "x": 60, "y": 30, "flags": 4}, + {"matrix": [7, 1], "x": 70, "y": 30, "flags": 4}, + {"matrix": [7, 2], "x": 80, "y": 30, "flags": 4}, + {"matrix": [7, 3], "x": 90, "y": 30, "flags": 4}, + {"matrix": [7, 4], "x": 100, "y": 30, "flags": 4}, + {"matrix": [7, 5], "x": 110, "y": 30, "flags": 4} + ] + } +} diff --git a/keyboards/lskbd/vial-kb/vial-qmk/rev1/readme.md b/keyboards/lskbd/vial-kb/vial-qmk/rev1/readme.md new file mode 100644 index 00000000..62b4da48 --- /dev/null +++ b/keyboards/lskbd/vial-kb/vial-qmk/rev1/readme.md @@ -0,0 +1,11 @@ +# lskbd + +* Keyboard Maintainer: [foostan](https://github.com/foostan/) [@foostan](https://twitter.com/foostan) + +Flash example for this keyboard: + +```sh +qmk flash -kb lskbd -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). \ No newline at end of file diff --git a/keyboards/lskbd/vial-kb/vial-qmk/rev1/rules.mk b/keyboards/lskbd/vial-kb/vial-qmk/rev1/rules.mk new file mode 100644 index 00000000..743228e9 --- /dev/null +++ b/keyboards/lskbd/vial-kb/vial-qmk/rev1/rules.mk @@ -0,0 +1 @@ +SERIAL_DRIVER = vendor \ No newline at end of file diff --git a/src/vial-kb/vial-qmk b/src/vial-kb/vial-qmk new file mode 160000 index 00000000..e5856572 --- /dev/null +++ b/src/vial-kb/vial-qmk @@ -0,0 +1 @@ +Subproject commit e585657238a8f52f41df2e109b48cbf2b50da3c1