diff --git a/keyboards/montsinger/rebound/rev4/keymaps/vial/config.h b/keyboards/montsinger/rebound/rev4/keymaps/vial/config.h new file mode 100644 index 0000000000..3885a676d5 --- /dev/null +++ b/keyboards/montsinger/rebound/rev4/keymaps/vial/config.h @@ -0,0 +1,13 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#pragma once + +#define VIAL_KEYBOARD_UID {0xAE, 0x02, 0xAA, 0xA7, 0xC0, 0x1D, 0xFF, 0xE3} + +/* delete these two lines if you have newer wiring than 4.3 */ +#undef MATRIX_ROW_PINS +#define MATRIX_ROW_PINS { D5, B7, D4, C6, F7, F6, F5, F4 } + +#define VIAL_UNLOCK_COMBO_ROWS { 0, 1} +#define VIAL_UNLOCK_COMBO_COLS { 0, 0 } + diff --git a/keyboards/montsinger/rebound/rev4/keymaps/vial/keymap.c b/keyboards/montsinger/rebound/rev4/keymaps/vial/keymap.c new file mode 100644 index 0000000000..e65eb19949 --- /dev/null +++ b/keyboards/montsinger/rebound/rev4/keymaps/vial/keymap.c @@ -0,0 +1,86 @@ +#include QMK_KEYBOARD_H + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. + +enum layer_names { + _COLEMAK, + _LOWER, + _RAISE, + _ADJUST, +}; + +enum custom_keycodes { + COLEMAK= SAFE_RANGE, +}; + +#define LOWER MO(_LOWER) +#define RAISE MO(_RAISE) +#define ADJUST MO(_ADJUST) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +[_COLEMAK] = LAYOUT_all( + KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, + LCTL_T(KC_ESC), KC_A, KC_R, KC_S, KC_T, KC_G, SGUI(KC_RBRC), KC_K, KC_N, KC_E, KC_I, KC_O, RSFT_T(KC_ENT), + LSFT_T(KC_GRV), KC_Z, KC_X, KC_C, KC_D, KC_V, KC_SPC, KC_M, KC_H, KC_COMM, KC_DOT, KC_SLSH, KC_QUOT, + MO(2), SGUI(KC_LBRC), TT(1), LGUI_T(KC_SPC), _______, LT(3, KC_ENT), KC_MUTE, LT(1, KC_SPC), _______, RALT_T(KC_LEFT), RSFT_T(KC_DOWN), RGUI_T(KC_UP), RCTL_T(KC_RIGHT) +), + +[_LOWER] = LAYOUT_all( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, + KC_TAB, KC_LBRC, KC_RBRC, KC_LPRN, KC_RPRN, KC_TRNS, KC_TRNS, KC_PLUS, KC_KP_1, KC_KP_2, KC_KP_3, KC_ASTR, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_ESC, KC_MINS, KC_EQL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, _______, KC_KP_0, KC_TRNS, _______, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS +), + +[_RAISE] = LAYOUT_all( + KC_BTN1, KC_BTN2, _______, SGUI(KC_LBRC), SGUI(KC_RBRC), _______, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_COLN, RALT(KC_BSPC), + KC_TRNS, _______, _______, _______, KC_BSPC, _______, KC_TRNS, KC_PGDN, KC_LEFT, KC_DOWN, KC_RIGHT, KC_ENT, RALT(KC_D), + KC_TRNS, _______, _______, _______, _______, _______, KC_TRNS, _______, RALT(KC_LEFT), RALT(KC_RIGHT), _______, RALT(KC_B), RALT(KC_F), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, _______, LALT(KC_DEL), KC_TRNS, KC_DEL, _______, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R +), + + +[_ADJUST] = LAYOUT_all( + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, _______, KC_TRNS, KC_TRNS, + KC_CAPS, KC_LBRC, KC_RBRC, KC_LPRN, KC_RPRN, _______, KC_TRNS, KC_PLUS, KC_DLR, KC_PIPE, KC_BSLS, KC_DQT, KC_TRNS, + KC_TRNS, KC_BRID, KC_BRIU, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_MINS, KC_EQL, KC_LT, KC_GT, KC_QUES, KC_TRNS, + KC_TRNS, KC_TRNS, QK_BOOT, _______, _______, KC_TRNS, KC_TRNS, KC_UNDS, _______, KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R +) + +}; + +/* layer_state_t layer_state_set_user(layer_state_t state) { */ +/* return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); */ +/* } */ +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + break; + } + return true; +} + +/* bool encoder_update_user(uint8_t index, bool clockwise) { */ +/* if (clockwise) { */ +/* tap_code16(S(KC_VOLD)); */ +/* } else { */ +/* tap_code16(KC_VOLU); */ +/* } */ +/* return true; */ +/* } */ + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + [0] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD), }, + [1] = { ENCODER_CCW_CW(KC_BRIU, KC_BRID), }, + [2] = { ENCODER_CCW_CW(KC_WH_L, KC_WH_R), }, + [3] = { ENCODER_CCW_CW(KC_WH_U, KC_WH_D), }, +}; +#endif diff --git a/keyboards/montsinger/rebound/rev4/keymaps/vial/rules.mk b/keyboards/montsinger/rebound/rev4/keymaps/vial/rules.mk new file mode 100644 index 0000000000..06e96920f8 --- /dev/null +++ b/keyboards/montsinger/rebound/rev4/keymaps/vial/rules.mk @@ -0,0 +1,22 @@ +MOUSEKEY_ENABLE = yes +EXTRAKEY_ENABLE = yes + +AUTO_SHIFT_ENABLE = yes +COMBO_ENABLE = yes +MIDI_ENABLE = no +AUDIO_ENABLE = no +BLUETOOTH_ENABLE = no +LTO_ENABLE = yes +CONSOLE_ENABLE = no +COMMAND_ENABLE = no + +VIA_ENABLE = yes +VIAL_ENABLE = yes + +QMK_SETTINGS = yes +TAP_DANCE_ENABLE = yes +KEY_OVERRIDE_ENABLE = no + +OLED_DRIVER_ENABLE = no +ENCODER_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/montsinger/rebound/rev4/keymaps/vial/vial.json b/keyboards/montsinger/rebound/rev4/keymaps/vial/vial.json new file mode 100644 index 0000000000..7081cfd147 --- /dev/null +++ b/keyboards/montsinger/rebound/rev4/keymaps/vial/vial.json @@ -0,0 +1,160 @@ +{ + "name": "Rebound Rev. 4", + "vendorId": "0x524D", + "productId": "0x0001", + "lighting": "qmk_rgblight", + "matrix": {"rows": 8, "cols": 7}, + "layouts": { + "labels":["2u space"], + "keymap": +[ + [ + { + "y": 2, + "x": 2.5, + "c": "#aaaaaa" + }, + "0,0", + { + "c": "#cccccc" + }, + "7,0", + "0,1", + "7,1", + "0,2", + "7,2", + { + "x": 3.5 + }, + "0,4", + "7,4", + "0,5", + "7,5", + "0,6", + { + "c": "#aaaaaa" + }, + "7,6" + ], + [ + { + "x": 2.5, + "c": "#777777" + }, + "1,0", + { + "c": "#cccccc" + }, + "6,0", + "1,1", + "6,1", + "1,2", + "6,2", + { + "x": 1.25, + "c": "#aaaaaa" + }, + "1,3", + { + "x": 1.25, + "c": "#cccccc" + }, + "1,4", + "6,4", + "1,5", + "6,5", + "1,6", + "6,6" + ], + [ + { + "x": 2.5, + "c": "#aaaaaa" + }, + "2,0", + { + "c": "#cccccc" + }, + "5,0", + "2,1", + "5,1", + "2,2", + "5,2", + { + "x": 1.25, + "c": "#aaaaaa" + }, + "2,3", + { + "x": 1.25, + "c": "#cccccc" + }, + "2,4", + "5,4", + "2,5", + "5,5", + "2,6", + { + "c": "#777777" + }, + "5,6" + ], + [ + { + "x": 2.5, + "c": "#aaaaaa" + }, + "3,0", + "4,0", + "3,1", + "4,1", + "3,2\n\n\n0,0", + { + "c": "#cccccc" + }, + "4,2\n\n\n0,0", + { + "x": 1.25, + "c": "#777777" + }, + "3,3", + { + "x": 1.25, + "c": "#cccccc" + }, + "3,4\n\n\n0,0", + { + "c": "#aaaaaa" + }, + "4,4\n\n\n0,0", + "3,5", + "4,5", + "3,6", + "4,6" + ], + [ + { + "x": 9.25, + "c": "#cccccc" + }, + "0,0\n\n\n\n\n\n\n\n\ne", + "0,1\n\n\n\n\n\n\n\n\ne" + ], + [ + { + "y": -0.75, + "x": 6.5, + "w": 2 + }, + "4,2\n\n\n0,1", + { + "x": 3.5, + "w": 2 + }, + "3,4\n\n\n0,1" + ] +] + + + } +}