diff --git a/keyboards/anavi/macropad2/config.h b/keyboards/anavi/macropad2/config.h new file mode 100644 index 000000000000..f0448e4d710c --- /dev/null +++ b/keyboards/anavi/macropad2/config.h @@ -0,0 +1,69 @@ +/* +Copyright 2021 Leon Anavi + +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 . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xCEEB +#define PRODUCT_ID 0x0002 +#define DEVICE_VER 0x0001 +#define MANUFACTURER ANAVI +#define PRODUCT Macro Pad 2 + +/* matrix size */ +#define MATRIX_ROWS 1 +#define MATRIX_COLS 2 + +/* + * Keyboard Matrix Assignments + * + * On this board we have direct connection: no diodes. + */ +#define DIRECT_PINS {{ B2, B0 }} + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +#define BACKLIGHT_PIN B1 +#define BACKLIGHT_LEVELS 2 +#define RGBLIGHT_SLEEP + +//#define RGBLED_NUM 2 +//#define RGB_DI_PIN B2 + +// Save as much space as we can... +#define LAYER_STATE_8BIT +#define NO_ACTION_LAYER +#define NO_ACTION_TAPPING +#define NO_ACTION_ONESHOT +#define NO_RESET + +// usbconfig.h overrides +#define USB_CFG_IOPORTNAME B +#define USB_CFG_DMINUS_BIT 3 +#define USB_CFG_DPLUS_BIT 4 +#define USB_COUNT_SOF 0 +#define USB_INTR_CFG PCMSK +#define USB_INTR_CFG_SET (1< + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + C(KC_C), C(KC_V) + ) +}; + +const uint16_t PROGMEM test_combo[] = {C(KC_C), C(KC_V), COMBO_END}; +combo_t key_combos[COMBO_COUNT] = {COMBO_ACTION(test_combo)}; + +void process_combo_event(uint16_t combo_index, bool pressed) { + backlight_step(); +} diff --git a/keyboards/anavi/macropad2/keymaps/copypaste/rules.mk b/keyboards/anavi/macropad2/keymaps/copypaste/rules.mk new file mode 100644 index 000000000000..ab1e438182a3 --- /dev/null +++ b/keyboards/anavi/macropad2/keymaps/copypaste/rules.mk @@ -0,0 +1 @@ +COMBO_ENABLE = yes diff --git a/keyboards/anavi/macropad2/keymaps/default/keymap.c b/keyboards/anavi/macropad2/keymaps/default/keymap.c new file mode 100644 index 000000000000..c880ff660a8a --- /dev/null +++ b/keyboards/anavi/macropad2/keymaps/default/keymap.c @@ -0,0 +1,30 @@ +/* Copyright 2021 Leon Anavi + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_A, KC_B + ) +}; + +const uint16_t PROGMEM test_combo[] = {KC_A, KC_B, COMBO_END}; +combo_t key_combos[COMBO_COUNT] = {COMBO_ACTION(test_combo)}; + +void process_combo_event(uint16_t combo_index, bool pressed) { + backlight_step(); +} diff --git a/keyboards/anavi/macropad2/keymaps/default/rules.mk b/keyboards/anavi/macropad2/keymaps/default/rules.mk new file mode 100644 index 000000000000..ab1e438182a3 --- /dev/null +++ b/keyboards/anavi/macropad2/keymaps/default/rules.mk @@ -0,0 +1 @@ +COMBO_ENABLE = yes diff --git a/keyboards/anavi/macropad2/keymaps/jitsi/keymap.c b/keyboards/anavi/macropad2/keymaps/jitsi/keymap.c new file mode 100644 index 000000000000..afd1dd1d14ec --- /dev/null +++ b/keyboards/anavi/macropad2/keymaps/jitsi/keymap.c @@ -0,0 +1,36 @@ +/* Copyright 2021 Leon Anavi + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +/* + * Jitsi Meet keyboard shortcuts: + * V - Start or stop your camera + * M - Mute or unmute your microphone + */ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_M, KC_V + ) +}; + +const uint16_t PROGMEM test_combo[] = {KC_M, KC_V, COMBO_END}; +combo_t key_combos[COMBO_COUNT] = {COMBO_ACTION(test_combo)}; + +void process_combo_event(uint16_t combo_index, bool pressed) { + backlight_step(); +} diff --git a/keyboards/anavi/macropad2/keymaps/jitsi/rules.mk b/keyboards/anavi/macropad2/keymaps/jitsi/rules.mk new file mode 100644 index 000000000000..ab1e438182a3 --- /dev/null +++ b/keyboards/anavi/macropad2/keymaps/jitsi/rules.mk @@ -0,0 +1 @@ +COMBO_ENABLE = yes diff --git a/keyboards/anavi/macropad2/keymaps/mute/keymap.c b/keyboards/anavi/macropad2/keymaps/mute/keymap.c new file mode 100644 index 000000000000..642bf66a8ffa --- /dev/null +++ b/keyboards/anavi/macropad2/keymaps/mute/keymap.c @@ -0,0 +1,23 @@ +/* Copyright 2021 Leon Anavi + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_AUDIO_MUTE, BL_TOGG + ) +}; diff --git a/keyboards/anavi/macropad2/keymaps/mute/rules.mk b/keyboards/anavi/macropad2/keymaps/mute/rules.mk new file mode 100644 index 000000000000..a8b14593460a --- /dev/null +++ b/keyboards/anavi/macropad2/keymaps/mute/rules.mk @@ -0,0 +1,2 @@ +EXTRAKEY_ENABLE = yes +BACKLIGHT_ENABLE = no diff --git a/keyboards/anavi/macropad2/keymaps/tap_dance/config.h b/keyboards/anavi/macropad2/keymaps/tap_dance/config.h new file mode 100644 index 000000000000..b86e862d30d3 --- /dev/null +++ b/keyboards/anavi/macropad2/keymaps/tap_dance/config.h @@ -0,0 +1,3 @@ +#pragma once + +#define TAPPING_TERM 500 diff --git a/keyboards/anavi/macropad2/keymaps/tap_dance/keymap.c b/keyboards/anavi/macropad2/keymaps/tap_dance/keymap.c new file mode 100644 index 000000000000..63854a62e3ac --- /dev/null +++ b/keyboards/anavi/macropad2/keymaps/tap_dance/keymap.c @@ -0,0 +1,35 @@ +/* Copyright 2021 Leon Anavi + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +enum layers { + _BASE = 0, +}; + +enum { + TD_BC = 0 +}; + +qk_tap_dance_action_t tap_dance_actions[] = { + [TD_BC] = ACTION_TAP_DANCE_DOUBLE(KC_B, KC_C) +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT( + KC_A, TD(TD_BC) + ) +}; diff --git a/keyboards/anavi/macropad2/keymaps/tap_dance/rules.mk b/keyboards/anavi/macropad2/keymaps/tap_dance/rules.mk new file mode 100644 index 000000000000..e5ddcae8d927 --- /dev/null +++ b/keyboards/anavi/macropad2/keymaps/tap_dance/rules.mk @@ -0,0 +1 @@ +TAP_DANCE_ENABLE = yes diff --git a/keyboards/anavi/macropad2/keymaps/volume/keymap.c b/keyboards/anavi/macropad2/keymaps/volume/keymap.c new file mode 100644 index 000000000000..f9ad20d5c5d2 --- /dev/null +++ b/keyboards/anavi/macropad2/keymaps/volume/keymap.c @@ -0,0 +1,23 @@ +/* Copyright 2021 Leon Anavi + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_VOLU, KC_VOLD + ) +}; diff --git a/keyboards/anavi/macropad2/keymaps/volume/rules.mk b/keyboards/anavi/macropad2/keymaps/volume/rules.mk new file mode 100644 index 000000000000..a8b14593460a --- /dev/null +++ b/keyboards/anavi/macropad2/keymaps/volume/rules.mk @@ -0,0 +1,2 @@ +EXTRAKEY_ENABLE = yes +BACKLIGHT_ENABLE = no diff --git a/keyboards/anavi/macropad2/keymaps/zoom/keymap.c b/keyboards/anavi/macropad2/keymaps/zoom/keymap.c new file mode 100644 index 000000000000..4f681d17f115 --- /dev/null +++ b/keyboards/anavi/macropad2/keymaps/zoom/keymap.c @@ -0,0 +1,37 @@ +/* Copyright 2021 Leon Anavi + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +/* + * The keymap contains the following shortcuts for Zoom meeting: + * + * Alt+A: Mute/unmute my audio + * Alt+V: Start/stop video + */ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + LALT(KC_A), LALT(KC_V) + ) +}; + +const uint16_t PROGMEM test_combo[] = {LALT(KC_A), LALT(KC_V), COMBO_END}; +combo_t key_combos[COMBO_COUNT] = {COMBO_ACTION(test_combo)}; + +void process_combo_event(uint16_t combo_index, bool pressed) { + backlight_step(); +} diff --git a/keyboards/anavi/macropad2/keymaps/zoom/rules.mk b/keyboards/anavi/macropad2/keymaps/zoom/rules.mk new file mode 100644 index 000000000000..ab1e438182a3 --- /dev/null +++ b/keyboards/anavi/macropad2/keymaps/zoom/rules.mk @@ -0,0 +1 @@ +COMBO_ENABLE = yes diff --git a/keyboards/anavi/macropad2/macropad2.c b/keyboards/anavi/macropad2/macropad2.c new file mode 100644 index 000000000000..0a95d5d27c19 --- /dev/null +++ b/keyboards/anavi/macropad2/macropad2.c @@ -0,0 +1,18 @@ +/* +Copyright 2021 Leon Anavi + +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 . +*/ + +#include "macropad2.h" diff --git a/keyboards/anavi/macropad2/macropad2.h b/keyboards/anavi/macropad2/macropad2.h new file mode 100644 index 000000000000..f3d43ad4f8b5 --- /dev/null +++ b/keyboards/anavi/macropad2/macropad2.h @@ -0,0 +1,35 @@ +/* +Copyright 2021 Leon Anavi + +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 . +*/ + +#pragma once + +#include "quantum.h" + +/* This a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT( \ + K01, K02 \ +) \ +{ \ + { K01, K02 }, \ +} diff --git a/keyboards/anavi/macropad2/readme.md b/keyboards/anavi/macropad2/readme.md new file mode 100644 index 000000000000..0ef2fede470b --- /dev/null +++ b/keyboards/anavi/macropad2/readme.md @@ -0,0 +1,49 @@ +# ANAVI Macro Pad 8 + +ANAVI Macro Pad 2 is an open source mini mechanical keyboard with 2 keys and backlit. Powered by ATtiny 85 microcontroller and with microUSB connector. Designed with KiCad. + +* Keyboard Maintainer: [Leon Anavi](https://github.com/leon-anavi) +* Hardware Supported: ANAVI Macro Pad 2 +* Hardware Availability: [PCB Files](https://github.com/AnaviTechnology/anavi-macro-pad-2) + +**Note**: Due to limited firmware space, a _**lot**_ of features have to be disabled to get a functioning QMK based keyboard. + +Make example for this keyboard (after setting up your build environment): + + make anavi/macropad2: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). + +## Flashing +### Prerequisites + +```bash +git clone https://github.com/micronucleus/micronucleus.git +cd micronucleus/commandline/ +sudo make install +``` + +On GNU/Linux distributions, you will need proper privileges to access the MCU. You can either use `sudo` when flashing firmware, or place [these files](https://github.com/micronucleus/micronucleus/blob/master/commandline/49-micronucleus.rules) in /etc/udev/rules.d/. Once added run the following: + +```bash +sudo udevadm control --reload-rules +sudo udevadm trigger +``` + +### Instructions + +* Run one of the following commands: + +```bash +make anavi/macropad2:default:flash + +# or directly with... +micronucleus --run +``` + +* Plug ANAVI Macro Pad 2 to the USB port and the flashing procedure should start + +### Recovery + +* [Original Firmware](https://github.com/AnaviTechnology/anavi-macro-pad-2/tree/main/bootloader) +* [Bootloader Repair](https://digistump.com/wiki/digispark/tutorials/proisp) diff --git a/keyboards/anavi/macropad2/rules.mk b/keyboards/anavi/macropad2/rules.mk new file mode 100644 index 000000000000..9841425905a3 --- /dev/null +++ b/keyboards/anavi/macropad2/rules.mk @@ -0,0 +1,34 @@ +# MCU name +MCU = attiny85 + +# Bootloader selection +BOOTLOADER = micronucleus +OPT_DEFS += -DBOOTLOADER_SIZE=1862 +PROGRAM_CMD = micronucleus --run $(BUILD_DIR)/$(TARGET).hex + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = no # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +MIDI_ENABLE = no # MIDI support +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output + +# Save as much space as we can... +LTO_ENABLE = yes +GRAVE_ESC_ENABLE = no +MAGIC_ENABLE = no +SPACE_CADET_ENABLE = no + +BACKLIGHT_DRIVER = software diff --git a/keyboards/boardsource/the_mark/keymaps/stanrc85/keymap.c b/keyboards/boardsource/the_mark/keymaps/stanrc85/keymap.c index 890d266b905b..eab59eb7efe4 100644 --- a/keyboards/boardsource/the_mark/keymaps/stanrc85/keymap.c +++ b/keyboards/boardsource/the_mark/keymaps/stanrc85/keymap.c @@ -77,10 +77,10 @@ void matrix_init_kb(void){ g_led_config = (led_config_t){ { // Key Matrix to LED Index { 10 , 10 , 9 , 9 , 8 , 7 , 7 , 6 , 5 , 5 , 4 , 3 , 3 , 2 , 1 , 1 }, - { NO_LED, 11 , NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, 0 , 1 }, - { NO_LED, 12 , NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, 23 , 1 }, - { NO_LED, 13 , 14 , NO_LED, 15 , 16 , NO_LED, 17 , 18 , NO_LED, 19 , 20 , NO_LED, 21 , 22 , NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, + { 11 , 11 , 9 , 9 , 8 , 7 , 7 , 6 , 5 , 5 , 4 , 3 , 3 , 2 , 0 , 1 }, + { 12 , 12 , 9 , 9 , 8 , 7 , 7 , 6 , 5 , 5 , 4 , 3 , 3 , 2 , 23 , 1 }, + { 13 , 13 , 14 , 14 , 15 , 16 , 16 , 17 , 18 , 18 , 19 , 20 , 20 , 21 , 22 , 22 }, + { 13 , 13 , 14 , 14 , 15 , 16 , 16 , 17 , 18 , 18 , 19 , 20 , 20 , 21 , 22 , 22 }, }, { // LED Index to Physical Position {224, 42}, {224, 21}, {209, 21}, {179, 21}, {164, 21}, {134, 21}, {119, 21}, {89, 21}, {74, 21}, {45, 21}, {30, 21}, {30, 42}, diff --git a/keyboards/dozen0/config.h b/keyboards/dozen0/config.h index 6d88014af40c..11a8e196644c 100644 --- a/keyboards/dozen0/config.h +++ b/keyboards/dozen0/config.h @@ -20,8 +20,8 @@ along with this program. If not, see . #include "config_common.h" /* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x0000 +#define VENDOR_ID 0x04D8 +#define PRODUCT_ID 0xEA4F #define DEVICE_VER 0x0001 #define MANUFACTURER yynmt #define PRODUCT Dozen0 diff --git a/keyboards/dozen0/keymaps/via/keymap.c b/keyboards/dozen0/keymaps/via/keymap.c new file mode 100644 index 000000000000..91f15469ff97 --- /dev/null +++ b/keyboards/dozen0/keymaps/via/keymap.c @@ -0,0 +1,48 @@ +/* Copyright 2021 yynmt + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base + * ,-----------------------------------------. + * | Cut | Copy |Paste | Up |Delete| Bksp | + * | | | | | |Raise | + * |------+------+------+------+------+------| + * | Ctrl |Shift | Left | Down |Right |Enter | + * | | | | | |Lower | + * `-----------------------------------------' + */ + [0] = LAYOUT( + LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), KC_UP, KC_DEL, LT(2,KC_BSPC), + KC_LCTL, KC_LSFT, KC_LEFT, KC_DOWN, KC_RGHT, LT(1,KC_ENT) + ), + /* Lower */ + [1] = 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 + ), + /* Raise */ + [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 + ), + /* Adjust */ + [3] = 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 + ), +}; diff --git a/keyboards/dozen0/keymaps/via/rules.mk b/keyboards/dozen0/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/dozen0/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/durgod/k320/k320.h b/keyboards/durgod/k320/k320.h index 0e409a72ccec..48da048410a7 100644 --- a/keyboards/durgod/k320/k320.h +++ b/keyboards/durgod/k320/k320.h @@ -60,3 +60,22 @@ void on_all_leds(void); { K50, K51, K52, XXX, XXX, XXX, K56, XXX, XXX, XXX, K5A, K5B, K5C, K5D, K5E, K5F }, \ { XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, K6F } \ } + + +// This a shortcut to help you visually see your layout. +#define LAYOUT_all( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, K2E, K2F, K1F, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K3D, K3E, K3F, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K4E, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4D, K4F, \ + K50, K51, K52, K56, K5A, K5B, K5C, K5D, K5E, K5F, K6F \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, XXX, K1E, K1F }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F }, \ + { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, XXX, K4D, K4E, K4F }, \ + { K50, K51, K52, XXX, XXX, XXX, K56, XXX, XXX, XXX, K5A, K5B, K5C, K5D, K5E, K5F }, \ + { XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, K6F } \ +} diff --git a/keyboards/durgod/k320/keymaps/via/config.h b/keyboards/durgod/k320/keymaps/via/config.h new file mode 100644 index 000000000000..2ae6fca9d980 --- /dev/null +++ b/keyboards/durgod/k320/keymaps/via/config.h @@ -0,0 +1,20 @@ +/* + * Copyright 2021 Maxime Coirault + * + * 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 . + */ + +#pragma once + +#define DYNAMIC_KEYMAP_LAYER_COUNT 3 diff --git a/keyboards/durgod/k320/keymaps/via/keymap.c b/keyboards/durgod/k320/keymaps/via/keymap.c new file mode 100644 index 000000000000..9a4d9ff38cd1 --- /dev/null +++ b/keyboards/durgod/k320/keymaps/via/keymap.c @@ -0,0 +1,81 @@ +/* Copyright 2021 kuenhlee and Don Kjer + * + * 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 . + */ +#include QMK_KEYBOARD_H + +// Layer shorthand +enum _layer { + _BASE, + _FUNC, + _LAYER3 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Keymap _BASE: Base Layer (Default Layer) + * ,-----------------------------------------------------------. ,--------------. + * |Esc |f1| f2| f3| f4| | f5| f6| f7| f8| | f9|f10|f11|f12| |Prnt|ScLk|Paus| + * |-----------------------------------------------------------| |--------------| + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0| - | = |Backsp | | Ins|Home|PgUp| + * |-----------------------------------------------------------| |--------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| | | Del| End|PgDn| + * |------------------------------------------------------ Ret | `--------------' + * |CAPS | A| S| D| F| G| H| J| K| L| ;| '| #| | + * |-----------------------------------------------------------| ,----. + * |Shift| \| Z| X| C| V| B| N| M| ,| .| /|Shift | | Up | + * |-----------------------------------------------------------| ,-------------. + * |Ctrl|Gui |Alt | Space |Alt | Fn |App |Ctrl| |Lft| Dn |Rig | + * `-----------------------------------------------------------' `-------------' + */ + [_BASE] = LAYOUT_all( /* Base Layer */ + 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_PSCR, KC_SLCK, KC_PAUS, + 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_INS, KC_HOME, KC_PGUP, + 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_DEL, KC_END, KC_PGDN, + 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_NUHS, KC_ENT, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FUNC),KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + /* Keymap _FUNC: Function Layer + * ,-----------------------------------------------------------. ,--------------. + * | |Play|Stop|Prev|Next| |Mute|Vol+|Vol-| | | | | | | | | | | + * |-----------------------------------------------------------| |--------------| + * | | | | | | | | | | | | | | | | | | | + * |-----------------------------------------------------------| |--------------| + * | | | | | | | | | | | | | | | | | | | + * |------------------------------------------------------- | `--------------' + * | | | | | | | | | | | | | | | + * |-----------------------------------------------------------| ,----. + * | | | | | | | | | | | | | | | | + * |-----------------------------------------------------------| ,-------------. + * | | | | | |Func | | | | | | | + * `-----------------------------------------------------------' `-------------' + */ + [_FUNC] = LAYOUT_all( /* Function Layer */ + _______, KC_MPLY, KC_MSTP, KC_MRWD, KC_MFFD, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [_LAYER3] = LAYOUT_all( /* Function Layer */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; + diff --git a/keyboards/durgod/k320/keymaps/via/readme.md b/keyboards/durgod/k320/keymaps/via/readme.md new file mode 100644 index 000000000000..1ed99238c6c3 --- /dev/null +++ b/keyboards/durgod/k320/keymaps/via/readme.md @@ -0,0 +1,12 @@ +# The default keymap for Durgod Taurus K320. + +Layer 0 : Standard Keys TKL layout + +Layer 1 : Media control +- Reusing Durgod's Original Media Control for Fn + F1 ~ Fn + F7 + +## Supported PCBs + +This firmware was tested on a Durgod K320 ISO with the PCB marked "DGK320ST-Single v1.0 HS20181227". + +The pcb features switch holes for ANSI layout, so this firmware might be compatible with with the Durgod K320 ANSI. diff --git a/keyboards/durgod/k320/keymaps/via/rules.mk b/keyboards/durgod/k320/keymaps/via/rules.mk new file mode 100644 index 000000000000..36b7ba9cbc98 --- /dev/null +++ b/keyboards/durgod/k320/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/ergodash/rev1/keymaps/ifohancroft/config.h b/keyboards/ergodash/rev1/keymaps/ifohancroft/config.h new file mode 100644 index 000000000000..9a0d0e54f71b --- /dev/null +++ b/keyboards/ergodash/rev1/keymaps/ifohancroft/config.h @@ -0,0 +1,21 @@ +/* Copyright 2021 IFo Hancroft + * + * 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 . + */ + +#pragma once + +// place overrides here +#define USB_POLLING_INTERVAL_MS 1 +#define FORCE_NKRO diff --git a/keyboards/ergodash/rev1/keymaps/ifohancroft/keymap.c b/keyboards/ergodash/rev1/keymaps/ifohancroft/keymap.c new file mode 100644 index 000000000000..a489c3f4dc92 --- /dev/null +++ b/keyboards/ergodash/rev1/keymaps/ifohancroft/keymap.c @@ -0,0 +1,104 @@ +/* Copyright 2021 IFo Hancroft + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* Default Layer + * --------------------------------------------------------------------------------------------------------------------------------------------------------- + * | ` || 1 || 2 || 3 || 4 || 5 || - || || = || 6 || 7 || 8 || 9 || 0 || Del | + * |-------------------------------------------------------------------------------------------------------------------------------------------------------| + * | Tab || Q || W || E || R || T || [ || || ] || Y || U || I || O || P || \ | + * |-------------------------------------------------------------------------------------------------------------------------------------------------------| + * | ESC || A || S || D || F || G || " || || " || H || J || K || L || ; || Enter | + * |-------------------------------------------------------------------------------------------------------------------------------------------------------| + * | Shift || Z || X || C || V || B || || || || N || M || , || . || / || Shift | + * |-------------------------------------------------------------------------------------------------------------------------------------------------------| + * | Ctrl || Super || Alt || MO(2) || || MO(1) || Bkspc || Space || || Space || Bkspc || MO(1) || || Left || Down || Up || Right | + * --------------------------------------------------------------------------------------------------------------------------------------------------------- + */ + LAYOUT_3key_2us( + KC_GRV, 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_DEL, + 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_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_QUOT, KC_QUOT, KC_H, KC_J, KC_K, KC_L, KC_SCLN, 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_LCTL, KC_LGUI, KC_LALT, MO(2), MO(1), KC_BSPC, KC_SPC, KC_SPC, KC_BSPC, MO(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + ), + + /* Function Layer + * --------------------------------------------------------------------------------------------------------------------------------------------------------- + * | || F1 || F2 || F3 || F4 || F5 || F6 || || F7 || F8 || F9 || F10 || F11 || F12 || | + * |-------------------------------------------------------------------------------------------------------------------------------------------------------| + * | || || || || || || || || || || || || || || | + * |-------------------------------------------------------------------------------------------------------------------------------------------------------| + * | || || || || || || || || || || || || || || | + * |-------------------------------------------------------------------------------------------------------------------------------------------------------| + * | || || || || || || || || || || || || || || | + * |-------------------------------------------------------------------------------------------------------------------------------------------------------| + * | || || || || || || || || || || || || || || || || | + * --------------------------------------------------------------------------------------------------------------------------------------------------------- + */ + LAYOUT_3key_2us( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + /* Left Right Hand Layer + * --------------------------------------------------------------------------------------------------------------------------------------------------------- + * | Del || 0 || 9 || 8 || 7 || 6 || = || || || || || || || || | + * |-------------------------------------------------------------------------------------------------------------------------------------------------------| + * | \ || P || O || I || U || Y || ] || || || || || || || || | + * |-------------------------------------------------------------------------------------------------------------------------------------------------------| + * | Enter || ; || L || K || J || H || || || || || || || || || | + * |-------------------------------------------------------------------------------------------------------------------------------------------------------| + * | || / || . || , || M || N || || || || || || || || || | + * |-------------------------------------------------------------------------------------------------------------------------------------------------------| + * | || || || || || || || || || || || || || || || || | + * --------------------------------------------------------------------------------------------------------------------------------------------------------- + */ + LAYOUT_3key_2us( + KC_DEL, KC_0, KC_9, KC_8, KC_7, KC_6, KC_EQL, _______, _______, _______, _______, _______, _______, _______, + KC_BSLS, KC_P, KC_O, KC_I, KC_U, KC_Y, KC_RBRC, _______, _______, _______, _______, _______, _______, _______, + KC_ENT, KC_SCLN, KC_L, KC_K, KC_J, KC_H, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_SLSH, KC_DOT, KC_COMM, KC_M, KC_N, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + /* Empty Layer + * --------------------------------------------------------------------------------------------------------------------------------------------------------- + * | || || || || || || || || || || || || || || | + * |-------------------------------------------------------------------------------------------------------------------------------------------------------| + * | || || || || || || || || || || || || || || | + * |-------------------------------------------------------------------------------------------------------------------------------------------------------| + * | || || || || || || || || || || || || || || | + * |-------------------------------------------------------------------------------------------------------------------------------------------------------| + * | || || || || || || || || || || || || || || | + * |-------------------------------------------------------------------------------------------------------------------------------------------------------| + * | || || || || || || || || || || || || || || || || | + * --------------------------------------------------------------------------------------------------------------------------------------------------------- + */ + LAYOUT_3key_2us( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/ergodash/rev1/keymaps/ifohancroft/readme.md b/keyboards/ergodash/rev1/keymaps/ifohancroft/readme.md new file mode 100644 index 000000000000..aab6984af7f5 --- /dev/null +++ b/keyboards/ergodash/rev1/keymaps/ifohancroft/readme.md @@ -0,0 +1,14 @@ +![IFo Hancroft ErgoDash Layout Image](https://i.imgur.com/vANNhro.png) + +# IFo Hancroft's ErgoDash Layout + + - Layer 1: A standard ANSI QWERTY layer. + - Layer 2: A function layer. It contains just the F1-F12 keys. + - Layer 3: A mirror of the right hand part of Layer 1, on the left hand, so I don't have to get my hand off the mouse when in CAD. + - Layer 4: An empty layer in-case I need something on-the-fly so I can remap with VIA. + +This keymap also sets the polling rate of the keyboard to 1ms, disables the EXTRAKEY feature, and enables the following features: + + - COMMAND + - NKRO (forced on) + - VIA diff --git a/keyboards/ergodash/rev1/keymaps/ifohancroft/rules.mk b/keyboards/ergodash/rev1/keymaps/ifohancroft/rules.mk new file mode 100644 index 000000000000..298b2a89cfe5 --- /dev/null +++ b/keyboards/ergodash/rev1/keymaps/ifohancroft/rules.mk @@ -0,0 +1,4 @@ +EXTRAKEY_ENABLE = no +COMMAND_ENABLE = yes +NKRO_ENABLE = yes +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/ergodox_ez/keymaps/dvorak_42_key/keymap.c b/keyboards/ergodox_ez/keymaps/dvorak_42_key/keymap.c index b7deaa203766..86aa1c2e6b27 100644 --- a/keyboards/ergodox_ez/keymaps/dvorak_42_key/keymap.c +++ b/keyboards/ergodox_ez/keymaps/dvorak_42_key/keymap.c @@ -6,6 +6,8 @@ // to build this keymap // make ergodox_ez:dvorak_42_key:teensy +// or: +// qmk compile -kb ergodox_ez -km dvorak_42_key // flashing from rpi: // sudo teensy_loader_cli -v -w .build/ergodox_ez_dvorak_42_key.hex --mcu atmega32u4 @@ -50,6 +52,38 @@ enum custom_keycodes { SHELL_EXPAND_OE_LOGPATTERN, SHELL_EXPAND_OE_TRANPATTERN, + SCREEN_TAB_LEFT, + SCREEN_TAB_RIGHT, + + SCREEN_NEW_TAB, + SCREEN_DETACH, + SCREEN_RENAME, + SCREEN_NUMBER, + + SCREEN_0, + SCREEN_1, + SCREEN_2, + SCREEN_3, + SCREEN_4, + SCREEN_5, + SCREEN_6, + SCREEN_7, + SCREEN_8, + SCREEN_9, + + SCREEN_COPY_MODE, + SCREEN_PASTE, + + SCREEN_UP_JUMP, + SCREEN_DOWN_JUMP, + + SCREEN_READREG_1, + SCREEN_READREG_2, + SCREEN_READREG_3, + SCREEN_PASTEREG_1, + SCREEN_PASTEREG_2, + SCREEN_PASTEREG_3, + // Windows 10 macros, WINDOWS10_WORKSPACE_LEFT, WINDOWS10_WORKSPACE_RIGHT, @@ -69,34 +103,6 @@ enum custom_keycodes { #define VSCODE 9 // visual studio code specific layer -// macros -#define SCREEN_TAB_LEFT 4 -#define SCREEN_TAB_RIGHT 5 -#define SCREEN_NEW_TAB 6 -#define SCREEN_COPY_MODE 8 -#define SCREEN_PASTE 9 -#define SCREEN_RENAME 10 -#define SCREEN_NUMBER 11 -#define SCREEN_0 12 -#define SCREEN_1 13 -#define SCREEN_2 14 -#define SCREEN_3 15 -#define SCREEN_4 16 -#define SCREEN_5 17 -#define SCREEN_6 18 -#define SCREEN_7 19 -#define SCREEN_8 20 -#define SCREEN_9 21 -#define SCREEN_DETACH 22 -#define SCREEN_UP_JUMP 23 -#define SCREEN_DOWN_JUMP 24 -#define SCREEN_READREG_1 25 -#define SCREEN_READREG_2 26 -#define SCREEN_READREG_3 27 -#define SCREEN_PASTEREG_1 28 -#define SCREEN_PASTEREG_2 29 -#define SCREEN_PASTEREG_3 30 -#define DEL_TO_HOME 36 // Android Studio shortcuts #define AS_TABLEFT LALT(KC_LEFT) @@ -115,6 +121,7 @@ enum custom_keycodes { // visual studio code shortcuts #define VS_FILE LCTL(KC_P) +#define VS_OPEN_FILE LCTL(KC_O) #define VS_LINE LCTL(KC_G) #define VS_SYMBOLEDITOR LCTL(LSFT(KC_O)) #define VS_DEFINITION KC_F12 @@ -126,6 +133,8 @@ enum custom_keycodes { #define VS_TABRIGHT LCTL(KC_PGDN) #define VS_CLOSETAB LCTL(KC_W) #define VS_CLOSEPANEL LCTL(LSFT(KC_W)) +#define VS_GROUP_1 LCTL(KC_1) +#define VS_GROUP_2 LCTL(KC_2) #define VS_TERMINAL LCTL(KC_GRAVE) #define VS_BUILD LCTL(LSFT(KC_B)) #define VS_COMMANDS LCTL(LSFT(KC_P)) @@ -225,7 +234,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MEH(KC_G), KC_TRNS,KC_NO, KC_HOME, KC_UP, KC_END, KC_PGUP, MEH(KC_H), LCTL(KC_LEFT), KC_LEFT, KC_DOWN, KC_RIGHT, LCTL(KC_RIGHT), MEH(KC_I), - KC_TRNS,M(DEL_TO_HOME),RCTL(KC_C), RCTL(KC_X), RCTL(KC_V), KC_PGDOWN, MEH(KC_J), + KC_TRNS,KC_TRNS, RCTL(KC_C), RCTL(KC_X), RCTL(KC_V), KC_PGDOWN, MEH(KC_J), KC_BSPC, RCTL(KC_BSPC), KC_DELETE, LCTL(KC_DELETE), MEH(KC_K), // right thumb cluster @@ -300,11 +309,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS,KC_TRNS,KC_TRNS, // right hand KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, M(SCREEN_NEW_TAB), M(SCREEN_7), M(SCREEN_8), M(SCREEN_9), M(SCREEN_RENAME), KC_TRNS, - M(SCREEN_TAB_LEFT), M(SCREEN_4), M(SCREEN_5), M(SCREEN_6), M(SCREEN_TAB_RIGHT), KC_TRNS, - KC_TRNS, KC_TRNS, M(SCREEN_1), M(SCREEN_2), M(SCREEN_3), M(SCREEN_NUMBER), KC_TRNS, + KC_TRNS, SCREEN_NEW_TAB, SCREEN_7, SCREEN_8, SCREEN_9, SCREEN_RENAME, KC_TRNS, + SCREEN_TAB_LEFT, SCREEN_4, SCREEN_5, SCREEN_6, SCREEN_TAB_RIGHT, KC_TRNS, + KC_TRNS, KC_TRNS, SCREEN_1, SCREEN_2, SCREEN_3, SCREEN_NUMBER, KC_TRNS, // bottom row - M(SCREEN_0), KC_TRNS, KC_TRNS, KC_TRNS, M(SCREEN_DETACH), + SCREEN_0, KC_TRNS, KC_TRNS, KC_TRNS, SCREEN_DETACH, // thumb cluster KC_TRNS, KC_TRNS, KC_TRNS, @@ -316,8 +325,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // left hand // left hand KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS,KC_TRNS, M(SCREEN_READREG_3), M(SCREEN_READREG_2), M(SCREEN_READREG_1), KC_TRNS, KC_TRNS, - KC_TRNS,KC_TRNS, M(SCREEN_PASTEREG_3), M(SCREEN_PASTEREG_2), M(SCREEN_PASTEREG_1), KC_TRNS, + KC_TRNS,KC_TRNS, SCREEN_READREG_3, SCREEN_READREG_2, SCREEN_READREG_1, KC_TRNS, KC_TRNS, + KC_TRNS,KC_TRNS, SCREEN_PASTEREG_3, SCREEN_PASTEREG_2, SCREEN_PASTEREG_1, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, // bottom row KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, @@ -326,10 +335,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, // right hand - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_0, KC_UP, KC_DLR, M(SCREEN_UP_JUMP), KC_TRNS, - KC_B, KC_LEFT, KC_DOWN, KC_RIGHT, KC_W, M(SCREEN_COPY_MODE), - KC_TRNS, KC_TRNS, S(KC_W), S(KC_Y), M(SCREEN_PASTE), M(SCREEN_DOWN_JUMP), MEH(KC_V), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_0, KC_UP, KC_DLR, SCREEN_UP_JUMP, KC_TRNS, + KC_B, KC_LEFT, KC_DOWN, KC_RIGHT, KC_W, SCREEN_COPY_MODE, + KC_TRNS, KC_TRNS, S(KC_W), S(KC_Y), SCREEN_PASTE, SCREEN_DOWN_JUMP, MEH(KC_V), // bottom row (match functionality of base layer) KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, // thumb cluster @@ -382,9 +391,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, VS_CMT_LINE, VS_COPYLINEDOWN, VS_REFERENCES, VS_DEFINITION, VS_IMPLEMENTATION, VS_LINE, VS_BRACKET, VS_CLOSETAB, VS_TABLEFT, VS_TABRIGHT, VS_SYMBOLEDITOR, VS_FILE, VS_BACK, - VS_CMT_BLOCK, KC_TRNS, VS_BM_PREV, VS_BM_NEXT, VS_BM_LIST, VS_BM_LISTALL, VS_BM_TOGGLE, + VS_CMT_BLOCK, KC_TRNS, VS_BM_PREV, VS_BM_NEXT, VS_GROUP_1, VS_GROUP_2, VS_BM_TOGGLE, // bottom row - VS_COMMANDS, VS_BUILD, VS_TERMINAL, VS_CLOSEPANEL, VS_BM_LABEL, + VS_COMMANDS, VS_OPEN_FILE, VS_TERMINAL, VS_CLOSEPANEL, VS_BM_LABEL, // thumb cluster KC_TRNS, KC_TRNS, KC_TRNS, @@ -443,105 +452,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; -// leaving this in place for compatibilty with old keymaps cloned and re-compiled. -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - switch(id) { - case SCREEN_TAB_LEFT: - if (record->event.pressed) { - return MACRO( D(LCTL), T(A), U(LCTL), T(P), END); - } - break; - case SCREEN_TAB_RIGHT: - if (record->event.pressed) { - return MACRO( D(LCTL), T(A), U(LCTL), T(N), END); - } - break; - case SCREEN_NEW_TAB: - if (record->event.pressed) { - return MACRO( D(LCTL), T(A), U(LCTL), T(C), END); - } - break; - case SCREEN_DETACH: - if (record->event.pressed) { - return MACRO( D(LCTL), T(A), U(LCTL), T(D), END); - } - break; - case SCREEN_RENAME: - if (record->event.pressed) { - return MACRO( D(LCTL), T(A), U(LCTL), D(LSFT), T(A), U(LSFT), END); - } - break; - case SCREEN_NUMBER: - if (record->event.pressed) { - return MACRO( D(LCTL), T(A), U(LCTL), D(LSFT), T(SCOLON), U(LSFT), - T(N), - T(U), - T(M), - T(B), - T(E), - T(R), - T(SPC), - END); - } - break; - - MACRO_SCREEN_REG(SCREEN_READREG_1,1); - MACRO_SCREEN_REG(SCREEN_READREG_2,2); - MACRO_SCREEN_REG(SCREEN_READREG_3,3); - - MACRO_SCREEN_PASTE(SCREEN_PASTEREG_1,1); - MACRO_SCREEN_PASTE(SCREEN_PASTEREG_2,2); - MACRO_SCREEN_PASTE(SCREEN_PASTEREG_3,3); - - MACRO_SCREEN_NUM(SCREEN_0,0); - MACRO_SCREEN_NUM(SCREEN_1,1); - MACRO_SCREEN_NUM(SCREEN_2,2); - MACRO_SCREEN_NUM(SCREEN_3,3); - MACRO_SCREEN_NUM(SCREEN_4,4); - MACRO_SCREEN_NUM(SCREEN_5,5); - MACRO_SCREEN_NUM(SCREEN_6,6); - MACRO_SCREEN_NUM(SCREEN_7,7); - MACRO_SCREEN_NUM(SCREEN_8,8); - MACRO_SCREEN_NUM(SCREEN_9,9); - - case SCREEN_UP_JUMP: - if (record->event.pressed) { - return MACRO( T(5), T(UP), END); - } - break; - - case SCREEN_DOWN_JUMP: - if (record->event.pressed) { - return MACRO( T(5), T(DOWN), END); - } - break; - - case SCREEN_COPY_MODE: - if (record->event.pressed) { - return MACRO( D(LCTL), T(A), U(LCTL), T(ESC), END); - } - break; - case SCREEN_PASTE: - if (record->event.pressed) { - return MACRO( D(LCTL), T(A), U(LCTL), T(RBRC), END); - } - break; - - case DEL_TO_HOME: - if (record->event.pressed) { - return MACRO( - // delete to the beginning of the line - D(LSFT), T(HOME), U(LSFT), - T(DELETE), - END); - } - break; - - - } - return MACRO_NONE; -}; bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { @@ -560,7 +470,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { break; case RGB_SLD: if (record->event.pressed) { - rgblight_mode(1); + // rgblight_mode(1); } return false; break; @@ -637,27 +547,122 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { SEND_STRING("htcBounce -j "); return true; break; - case SHELL_EXPAND_OE_LOGPATTERN: - SEND_STRING(SS_TAP(X_LEFT)"*CQW_HKEX"SS_TAP(X_END)"*.log"SS_LCTRL("x")SS_LSFT("8")); - break; - case SHELL_EXPAND_OE_TRANPATTERN: - SEND_STRING(SS_TAP(X_LEFT)"*CQW_HKEX"SS_TAP(X_END)"*.tran"SS_LCTRL("x")SS_LSFT("8")); - break; - case SHELL_DUMPTLOG: - SEND_STRING(" | dumptlog - "); - return true; + case SHELL_EXPAND_OE_LOGPATTERN: + SEND_STRING(SS_TAP(X_LEFT)"*CQW_HKEX"SS_TAP(X_END)"*.log"SS_LCTRL("x")SS_LSFT("8")); break; - case WINDOWS10_WORKSPACE_LEFT: - SEND_STRING(SS_LGUI(SS_LCTRL(SS_TAP(X_LEFT)))); - return true; + case SHELL_EXPAND_OE_TRANPATTERN: + SEND_STRING(SS_TAP(X_LEFT)"*CQW_HKEX"SS_TAP(X_END)"*.tran"SS_LCTRL("x")SS_LSFT("8")); + break; + case SHELL_DUMPTLOG: + SEND_STRING(" | dumptlog - "); + return true; + break; + case WINDOWS10_WORKSPACE_LEFT: + SEND_STRING(SS_LGUI(SS_LCTRL(SS_TAP(X_LEFT)))); + return true; + break; + case WINDOWS10_WORKSPACE_RIGHT: + SEND_STRING(SS_LGUI(SS_LCTRL(SS_TAP(X_RIGHT)))); + break; + case WINDOWS10_TASK_VIEW: + SEND_STRING(SS_LGUI(SS_TAP(X_TAB))); + break; + // linux screen shortcuts + case SCREEN_TAB_LEFT: + SEND_STRING(SS_LCTL("a") "p"); + break; + case SCREEN_TAB_RIGHT: + SEND_STRING(SS_LCTL("a") "n"); + break; + case SCREEN_NEW_TAB: + SEND_STRING(SS_LCTL("a") "c"); + break; + case SCREEN_DETACH: + SEND_STRING(SS_LCTL("a") "d"); + break; + case SCREEN_RENAME: + SEND_STRING(SS_LCTL("a") SS_LSFT("a")); + break; + case SCREEN_NUMBER: + SEND_STRING(SS_LCTL("a") ":number "); + break; + case SCREEN_0: + SEND_STRING(SS_LCTL("a") "0"); + break; + case SCREEN_1: + SEND_STRING(SS_LCTL("a") "1"); break; - case WINDOWS10_WORKSPACE_RIGHT: - SEND_STRING(SS_LGUI(SS_LCTRL(SS_TAP(X_RIGHT)))); + case SCREEN_2: + SEND_STRING(SS_LCTL("a") "2"); break; - case WINDOWS10_TASK_VIEW: - SEND_STRING(SS_LGUI(SS_TAP(X_TAB))); + case SCREEN_3: + SEND_STRING(SS_LCTL("a") "3"); + break; + case SCREEN_4: + SEND_STRING(SS_LCTL("a") "4"); + break; + case SCREEN_5: + SEND_STRING(SS_LCTL("a") "5"); + break; + case SCREEN_6: + SEND_STRING(SS_LCTL("a") "6"); + break; + case SCREEN_7: + SEND_STRING(SS_LCTL("a") "7"); + break; + case SCREEN_8: + SEND_STRING(SS_LCTL("a") "8"); + break; + case SCREEN_9: + SEND_STRING(SS_LCTL("a") "9"); + break; + case SCREEN_COPY_MODE: + SEND_STRING(SS_LCTL("a") "["); + break; + case SCREEN_PASTE: + SEND_STRING(SS_LCTL("a") "]"); + break; + + case SCREEN_UP_JUMP: + tap_code(KC_5); + tap_code(KC_UP); + break; + case SCREEN_DOWN_JUMP: + tap_code(KC_5); + tap_code(KC_DOWN); break; + case SCREEN_READREG_1: + tap_code16(C(KC_A)); + tap_code16(S(KC_SCOLON)); + SEND_STRING("readreg 1\n"); + break; + case SCREEN_READREG_2: + tap_code16(C(KC_A)); + tap_code16(S(KC_SCOLON)); + SEND_STRING("readreg 2\n"); + break; + case SCREEN_READREG_3: + tap_code16(C(KC_A)); + tap_code16(S(KC_SCOLON)); + SEND_STRING("readreg 3\n"); + break; + + case SCREEN_PASTEREG_1: + tap_code16(C(KC_A)); + tap_code16(S(KC_SCOLON)); + SEND_STRING("paste 1\n"); + break; + case SCREEN_PASTEREG_2: + tap_code16(C(KC_A)); + tap_code16(S(KC_SCOLON)); + SEND_STRING("paste 2\n"); + break; + case SCREEN_PASTEREG_3: + tap_code16(C(KC_A)); + tap_code16(S(KC_SCOLON)); + SEND_STRING("paste 3\n"); + break; } } diff --git a/keyboards/southpaw75/config.h b/keyboards/fr4/southpaw75/config.h similarity index 100% rename from keyboards/southpaw75/config.h rename to keyboards/fr4/southpaw75/config.h diff --git a/keyboards/southpaw75/info.json b/keyboards/fr4/southpaw75/info.json similarity index 100% rename from keyboards/southpaw75/info.json rename to keyboards/fr4/southpaw75/info.json diff --git a/keyboards/southpaw75/keymaps/default/keymap.c b/keyboards/fr4/southpaw75/keymaps/default/keymap.c similarity index 100% rename from keyboards/southpaw75/keymaps/default/keymap.c rename to keyboards/fr4/southpaw75/keymaps/default/keymap.c diff --git a/keyboards/southpaw75/readme.md b/keyboards/fr4/southpaw75/readme.md similarity index 100% rename from keyboards/southpaw75/readme.md rename to keyboards/fr4/southpaw75/readme.md diff --git a/keyboards/southpaw75/rules.mk b/keyboards/fr4/southpaw75/rules.mk similarity index 100% rename from keyboards/southpaw75/rules.mk rename to keyboards/fr4/southpaw75/rules.mk diff --git a/keyboards/southpaw75/southpaw75.c b/keyboards/fr4/southpaw75/southpaw75.c similarity index 100% rename from keyboards/southpaw75/southpaw75.c rename to keyboards/fr4/southpaw75/southpaw75.c diff --git a/keyboards/southpaw75/southpaw75.h b/keyboards/fr4/southpaw75/southpaw75.h similarity index 100% rename from keyboards/southpaw75/southpaw75.h rename to keyboards/fr4/southpaw75/southpaw75.h diff --git a/keyboards/fr4/unix60/config.h b/keyboards/fr4/unix60/config.h new file mode 100644 index 000000000000..53d2104fdde3 --- /dev/null +++ b/keyboards/fr4/unix60/config.h @@ -0,0 +1,42 @@ + /* + Copyright 2020 Lasse Küchenmeister + + 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 . + */ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x4652 // "FR" +#define PRODUCT_ID 0x5558 // "UX" +#define DEVICE_VER 0x0001 +#define MANUFACTURER FR4Boards +#define PRODUCT unix60 + +/* key matrix size */ +#define MATRIX_ROWS 7 +#define MATRIX_COLS 9 + +/* key matrix pins */ +#define MATRIX_ROW_PINS { D3, D2, D1, D0, D4, C6, D7 } +#define MATRIX_COL_PINS { E6, B4, B5, F4, F5, F6, F7, B1, B3 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 diff --git a/keyboards/fr4/unix60/info.json b/keyboards/fr4/unix60/info.json new file mode 100644 index 000000000000..04b2cf62d568 --- /dev/null +++ b/keyboards/fr4/unix60/info.json @@ -0,0 +1,12 @@ +{ + "keyboard_name": "unix60", + "url": "https://github.com/mkdl/Unix60", + "maintainer": "mkdl", + "width": 15, + "height": 5, + "layouts": { + "LAYOUT_all": { + "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0, "w":0.6}, {"x":13.6, "y":0, "w":0.8}, {"x":14.4, "y":0, "w":0.6}, {"x":0, "y":1, "w":1.5}, {"x":1.5, "y":1}, {"x":2.5, "y":1}, {"x":3.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1}, {"x":7.5, "y":1}, {"x":8.5, "y":1}, {"x":9.5, "y":1}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1, "w":1.5}, {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, {"x":12.75, "y":2}, {"x":13.75, "y":2, "w":1.25}, {"x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"x":2.25, "y":3}, {"x":3.25, "y":3}, {"x":4.25, "y":3}, {"x":5.25, "y":3}, {"x":6.25, "y":3}, {"x":7.25, "y":3}, {"x":8.25, "y":3}, {"x":9.25, "y":3}, {"x":10.25, "y":3}, {"x":11.25, "y":3}, {"x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"x":1.5, "y":4}, {"x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":7}, {"x":11, "y":4, "w":1.5}, {"x":12.5, "y":4}] + } + } +} diff --git a/keyboards/fr4/unix60/keymaps/default/keymap.c b/keyboards/fr4/unix60/keymaps/default/keymap.c new file mode 100644 index 000000000000..0a0a6b974241 --- /dev/null +++ b/keyboards/fr4/unix60/keymaps/default/keymap.c @@ -0,0 +1,38 @@ + /* + Copyright 2020 Lasse Küchenmeister + + 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + LAYOUT_all( + KC_ESC, 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_B, KC_BSPC, KC_C, + 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_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, KC_ENT, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_A, + KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1) + ), + + LAYOUT_all( + KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F10, KC_F11, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_UP, 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_LEFT, KC_DOWN, KC_RGHT, 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 + ), + +}; diff --git a/keyboards/fr4/unix60/readme.md b/keyboards/fr4/unix60/readme.md new file mode 100644 index 000000000000..eab1ee9446d9 --- /dev/null +++ b/keyboards/fr4/unix60/readme.md @@ -0,0 +1,15 @@ +# Unix60 + +![unix60](https://i.imgur.com/ldvKr90l.jpg) + +HHKB layout FR4 Board + +* Keyboard Maintainer: [mkdl](https://github.com/mkdl/) +* Hardware Supported: Unix60 Pro Micro PCB +* Hardware Availability: https://github.com/mkdl/unix60 + +Make example for this keyboard (after setting up your build environment): + + make unix60: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). diff --git a/keyboards/fr4/unix60/rules.mk b/keyboards/fr4/unix60/rules.mk new file mode 100644 index 000000000000..8a411ac604a4 --- /dev/null +++ b/keyboards/fr4/unix60/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = full # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/fr4/unix60/unix60.c b/keyboards/fr4/unix60/unix60.c new file mode 100644 index 000000000000..80fd383316d6 --- /dev/null +++ b/keyboards/fr4/unix60/unix60.c @@ -0,0 +1,17 @@ + /* + Copyright 2020 Lasse Küchenmeister + + 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 . + */ +#include "unix60.h" diff --git a/keyboards/fr4/unix60/unix60.h b/keyboards/fr4/unix60/unix60.h new file mode 100644 index 000000000000..fa238da9eb38 --- /dev/null +++ b/keyboards/fr4/unix60/unix60.h @@ -0,0 +1,36 @@ + /* + Copyright 2020 Lasse Küchenmeister + + 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 . + */ +#pragma once + + +#include "quantum.h" + +#define LAYOUT_all( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K10, K11, K12, K13, K14, K15, K16, \ + K17, K18, K20, K21, K22, K23, K24, K25, K26, K27, K28, K30, K31, K32, \ + K33, K34, K35, K36, K37, K38, K40, K41, K42, K43, K44, K45, K46, K47, \ + K48, K50, K51, K52, K53, K54, K55, K56, K57, K58, K60, K61, K62, K63, \ + K64, K65, K66, K67, K68 \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08 }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18 }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28 }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38 }, \ + { K40, K41, K42, K43, K44, K45, K46, K47, K48 }, \ + { K50, K51, K52, K53, K54, K55, K56, K57, K58 }, \ + { K60, K61, K62, K63, K64, K65, K66, K67, K68 } \ +} diff --git a/keyboards/handwired/concertina/64key/64key.c b/keyboards/handwired/concertina/64key/64key.c new file mode 100644 index 000000000000..31211b0a9adc --- /dev/null +++ b/keyboards/handwired/concertina/64key/64key.c @@ -0,0 +1,17 @@ +/* Copyright 2020-2021 Viktor Eikman + * + * 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 . + */ + +#include "64key.h" diff --git a/keyboards/handwired/concertina/64key/64key.h b/keyboards/handwired/concertina/64key/64key.h new file mode 100644 index 000000000000..a9e557fc78ce --- /dev/null +++ b/keyboards/handwired/concertina/64key/64key.h @@ -0,0 +1,56 @@ +/* Copyright 2020-2021 Viktor Eikman + * + * 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 . + */ + +#pragma once + +#include "quantum.h" + +/* + * The matrix is constructed for ease of soldering and for density. + * The nomenclature is _. + * + * L: Left hand. + * R: Right hand. + * T: Thumb cluster. + * M: Main cluster. + * + * Numbers increase going to the right and away from the user on the + * right-hand side of the keyboard, looking directly at each of the two + * key clusters (main and thumb), one by one. + * This coordinate system is mirrored for the left-hand side. + */ + +#define LAYOUT_64key( \ + LT_32, LT_22, LT_12, RT_12, RT_22, RT_32, \ + LT_31, LT_21, LT_11, LT_01, RT_01, RT_11, RT_21, RT_31, \ + LT_20, LT_10, LT_00, RT_00, RT_10, RT_20, \ + \ + LM_34, LM_24, LM_14, LM_04, RM_04, RM_14, RM_24, RM_34, \ + LM_53, LM_43, LM_33, LM_23, LM_13, LM_03, RM_03, RM_13, RM_23, RM_33, RM_43, RM_53, \ + LM_52, LM_42, LM_32, LM_22, LM_12, LM_02, RM_02, RM_12, RM_22, RM_32, RM_42, RM_52, \ + LM_51, LM_41, LM_31, LM_21, LM_11, RM_11, RM_21, RM_31, RM_41, RM_51, \ + LM_20, RM_20 \ + ) \ + { \ + { LT_00, LT_10, LT_20, LT_31, LM_20, LM_31, LM_41, LM_51 }, \ + { LT_01, LT_11, LT_21, LM_11, LM_21, LM_32, LM_42, LM_52 }, \ + { LT_12, LT_22, LT_32, LM_12, LM_22, LM_33, LM_43, LM_53 }, \ + { LM_02, LM_03, LM_04, LM_13, LM_23, LM_14, LM_24, LM_34 }, \ + { RT_00, RT_10, RT_20, RT_31, RM_20, RM_31, RM_41, RM_51 }, \ + { RT_01, RT_11, RT_21, RM_11, RM_21, RM_32, RM_42, RM_52 }, \ + { RT_12, RT_22, RT_32, RM_12, RM_22, RM_33, RM_43, RM_53 }, \ + { RM_02, RM_03, RM_04, RM_13, RM_23, RM_14, RM_24, RM_34 }, \ + } diff --git a/keyboards/handwired/concertina/64key/config.h b/keyboards/handwired/concertina/64key/config.h new file mode 100644 index 000000000000..1b09c403f690 --- /dev/null +++ b/keyboards/handwired/concertina/64key/config.h @@ -0,0 +1,34 @@ +/* Copyright 2020-2021 Viktor Eikman + * + * 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 . + */ + +#pragma once + +#include "config_common.h" + +#define MATRIX_ROWS 8 +#define MATRIX_COLS 8 + +#define MATRIX_ROW_PINS { D1, D0, D4, C6, D7, E6, B4, B5 } +#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B2, B6 } +#define UNUSED_PINS { D3, D2 } + +/* LEDs are not used in the standard 64key configuration. */ +#define RGB_DI_PIN D3 +#define RGBLED_NUM 0 + +#define DIODE_DIRECTION COL2ROW + +#define PERMISSIVE_HOLD diff --git a/keyboards/handwired/concertina/64key/keymaps/default/config.h b/keyboards/handwired/concertina/64key/keymaps/default/config.h new file mode 100644 index 000000000000..4af423c3a73d --- /dev/null +++ b/keyboards/handwired/concertina/64key/keymaps/default/config.h @@ -0,0 +1,23 @@ +/* Copyright 2020-2021 Viktor Eikman + * + * 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 . + */ + +#pragma once + +/* Custom space-cadet modifier and tap combinations: Brackets on Ctrl and braces on Alt. */ +#define LCPO_KEYS KC_LCTL, KC_TRNS, KC_LBRACKET +#define RCPC_KEYS KC_RCTL, KC_TRNS, KC_RBRACKET +#define LAPO_KEYS KC_LALT, KC_LSFT, KC_LBRACKET +#define RAPC_KEYS KC_RALT, KC_RSFT, KC_RBRACKET diff --git a/keyboards/handwired/concertina/64key/keymaps/default/keymap.c b/keyboards/handwired/concertina/64key/keymaps/default/keymap.c new file mode 100644 index 000000000000..e8425824fb03 --- /dev/null +++ b/keyboards/handwired/concertina/64key/keymaps/default/keymap.c @@ -0,0 +1,93 @@ +/* Copyright 2020-2021 Viktor Eikman + * + * 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 . + */ + +#include QMK_KEYBOARD_H +#include +#include + +enum layer_names { + _QWERTY, // OS-side Colemak. Default. + _COLEMAK, // Keyboard-side Colemak. Portability, emergency. + _GAMING, // Navigation clusters (only) change hands. + _NUMERIC // Numbers, function keys, special characters, mouse. +}; + +enum taps { + PNX, // Play/pause; next track. +}; + +qk_tap_dance_action_t tap_dance_actions[] = { + [PNX] = ACTION_TAP_DANCE_DOUBLE(KC_MEDIA_PLAY_PAUSE, KC_MEDIA_NEXT_TRACK), +}; + +// Shorthand: +#define LAYER_N MO(_NUMERIC) +#define LAYER_C TG(_COLEMAK) +#define LAYER_G TG(_GAMING) +#define PASTE LSFT(KC_INS) // Terminal-compatible paste. +#define SLQ RALT(KC_9) // Single left-side quotation mark (in Colemak). +#define SRQ RALT(KC_0) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +[_QWERTY] = LAYOUT_64key( + KC_LSPO, KC_MINS, KC_EQL, KC_VOLD, KC_VOLU, KC_RSPC, + KC_LCPO, KC_LGUI, KC_HAEN, KC_ENT, KC_MUTE, TD(PNX), LAYER_N, KC_RCPC, + KC_LAPO, KC_SPC, SLQ, SRQ, KC_ESC, KC_RAPC, + + CM_W, CM_F, CM_P, CM_G, CM_J, CM_L, CM_U, CM_Y, + KC_TAB, CM_Q, CM_R, CM_S, CM_T, CM_D, CM_H, CM_N, CM_E, CM_I, CM_SCLN, KC_BSLS, + KC_BSPC, CM_A, CM_X, CM_C, CM_V, CM_B, CM_K, CM_M, KC_COMM, KC_DOT, CM_O, KC_QUOT, + KC_DEL, CM_Z, KC_HOME, KC_PGUP, KC_END, KC_LEFT, KC_UP, KC_RGHT, KC_SLSH, KC_GRV, + KC_PGDN, KC_DOWN +), + +[_COLEMAK] = LAYOUT_64key( + _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, + + KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, + _______, KC_Q, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_SCLN, _______, + _______, KC_A, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, _______, _______, KC_O, _______, + _______, KC_Z, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______ +), + +[_GAMING] = LAYOUT_64key( + _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, + + _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, KC_LEFT, KC_UP, KC_RGHT, KC_HOME, KC_PGUP, KC_END, _______, _______, + KC_DOWN, KC_PGDN +), + +[_NUMERIC] = LAYOUT_64key( + _______, _______, _______, KC_ACL1, KC_ACL2, _______, + _______, _______, LAYER_C, _______, KC_ACL0, _______, _______, _______, + _______, _______, _______, KC_SLEP, _______, _______, + + KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, + KC_F12, KC_F1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_F10, KC_F11, + _______, KC_1, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_APP, KC_0, PASTE, + KC_INS, KC_EXLM, KC_BTN1, KC_BTN3, KC_BTN2, KC_MS_L, KC_MS_U, KC_MS_R, KC_PSCR, RESET, + LAYER_G, KC_MS_D +) +}; diff --git a/keyboards/handwired/concertina/64key/readme.md b/keyboards/handwired/concertina/64key/readme.md new file mode 100644 index 000000000000..78d384f68d76 --- /dev/null +++ b/keyboards/handwired/concertina/64key/readme.md @@ -0,0 +1,15 @@ +The `64key` layout +================== + +This folder represents the keyboard configuration identified as +`concertina_64key` in the DMOTE application’s list of GNU make targets, as of +version 0.7.0 of that application. The QMK code is fully compatible back to +version 0.6.0, which introduced the Concertina. + +The default keymap for this layout has a QWERTY base layer but is intended for +running Colemak on the OS side. It has a separate key layer that forces Colemak +from the QMK side in case the keyboard has to be used with a computer that does +not run Colemak. + +A full set of printable caps to match the keymap is available in the +`dmote-keycap` application, [here](https://github.com/veikman/dmote-keycap). diff --git a/keyboards/handwired/concertina/concertina.h b/keyboards/handwired/concertina/concertina.h new file mode 100644 index 000000000000..b8a0c4cff63b --- /dev/null +++ b/keyboards/handwired/concertina/concertina.h @@ -0,0 +1,23 @@ +/* Copyright 2020-2021 Viktor Eikman + * + * 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 . + */ + +#pragma once + +#ifdef KEYBOARD_handwired_concertina_64key + #include "64key.h" +#endif + +#include "quantum.h" diff --git a/keyboards/handwired/concertina/config.h b/keyboards/handwired/concertina/config.h new file mode 100644 index 000000000000..4f6cbadc1c43 --- /dev/null +++ b/keyboards/handwired/concertina/config.h @@ -0,0 +1,26 @@ +/* Copyright 2020-2021 Viktor Eikman + * + * 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 . + */ + +#pragma once + +#include "config_common.h" + +/* USB device descriptors */ +#define VENDOR_ID 0x444D +#define PRODUCT_ID 0x3632 +#define DEVICE_VER 0x0001 +#define PRODUCT Concertina +#define MANUFACTURER Viktor Eikman diff --git a/keyboards/handwired/concertina/info.json b/keyboards/handwired/concertina/info.json new file mode 100644 index 000000000000..a7dd42b11275 --- /dev/null +++ b/keyboards/handwired/concertina/info.json @@ -0,0 +1,37 @@ +{ + "keyboard_name": "Concertina", + "url": "https://viktor.eikman.se/article/the-concertina/", + "maintainer": "veikman", + "width": 12, + "height": 8, + "layouts": { + "LAYOUT_64key": { + "key_count": 64, + "layout": [ + {"x":2, "y":0.5}, {"x":3, "y":0}, {"x":4, "y":0.3}, + {"x":8, "y":0.7}, {"x":9, "y":0.3}, {"x":10, "y":0}, + + {"x":2, "y":1.5}, {"x":3, "y":1}, {"x":4, "y":1.3}, {"x":5, "y":0.7}, + {"x":8, "y":0.7}, {"x":9, "y":1.3}, {"x":10, "y":1}, {"x":11, "y":1.5}, + + {"x":3, "y":2}, {"x":4, "y":2.3}, {"x":5, "y":1.7}, + {"x":8, "y":1.7}, {"x":9, "y":2.3}, {"x":10, "y":2}, + + {"x":2, "y":4}, {"x":3, "y":4}, {"x":4, "y":4}, {"x":5, "y":4}, + {"x":8, "y":4}, {"x":9, "y":4}, {"x":10, "y":4}, {"x":11, "y":4}, + + {"x":0, "y":5}, {"x":1, "y":5}, {"x":2, "y":5}, {"x":3, "y":5}, {"x":4, "y":5}, {"x":5, "y":5}, + {"x":8, "y":5}, {"x":9, "y":5}, {"x":10, "y":5}, {"x":11, "y":5}, {"x":12, "y":5}, {"x":13, "y":5}, + + {"x":0, "y":6}, {"x":1, "y":6}, {"x":2, "y":6}, {"x":3, "y":6}, {"x":4, "y":6}, {"x":5, "y":6}, + {"x":8, "y":6}, {"x":9, "y":6}, {"x":10, "y":6}, {"x":11, "y":6}, {"x":12, "y":6}, {"x":13, "y":6}, + + {"x":0, "y":7}, {"x":1, "y":7}, {"x":2, "y":7}, {"x":3, "y":7}, {"x":4, "y":7}, + {"x":9, "y":7}, {"x":10, "y":7}, {"x":11, "y":7}, {"x":12, "y":7}, {"x":13, "y":7}, + + {"x":3, "y":8}, + {"x":10, "y":8} + ] + } + } +} diff --git a/keyboards/handwired/concertina/readme.md b/keyboards/handwired/concertina/readme.md new file mode 100644 index 000000000000..36c0f53b631b --- /dev/null +++ b/keyboards/handwired/concertina/readme.md @@ -0,0 +1,6 @@ +Concertina +========== + +The Concertina is one of the designs bundled with the DMOTE application, a CAD +program specifically for novel keyboard cases, maintained +[here](https://github.com/veikman/dactyl-keyboard). diff --git a/keyboards/handwired/concertina/rules.mk b/keyboards/handwired/concertina/rules.mk new file mode 100644 index 000000000000..94d6eadd0097 --- /dev/null +++ b/keyboards/handwired/concertina/rules.mk @@ -0,0 +1,9 @@ +# Written for a Pro Micro. The keyboard case is compatible with much else. +MCU = atmega32u4 +BOOTLOADER = caterina + +# Build options: +MOUSEKEY_ENABLE = yes +EXTRAKEY_ENABLE = yes +TAP_DANCE_ENABLE = yes +RGBLIGHT_ENABLE = no diff --git a/keyboards/handwired/consolekeyboard/config.h b/keyboards/handwired/consolekeyboard/config.h new file mode 100644 index 000000000000..3e6e24d630f9 --- /dev/null +++ b/keyboards/handwired/consolekeyboard/config.h @@ -0,0 +1,67 @@ +/* Copyright 2021 Gareth Edwards + * + * 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 . + */ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x6761 +#define PRODUCT_ID 0x3432 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Stream Cheap +#define PRODUCT Console Keyboard +/* key matrix size */ +#define MATRIX_ROWS 2 +#define MATRIX_COLS 12 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ +#define MATRIX_ROW_PINS { D1, D0 } +#define MATRIX_COL_PINS { D4, C6, D7, C4, B1, B3, B2, B6, C5, E6, B4, B5 } + +#define DIODE_DIRECTION COL2ROW + +#define RGB_DI_PIN F4 +#ifdef RGB_DI_PIN + #define RGBLED_NUM 6 + #define RGBLIGHT_HUE_STEP 8 + #define RGBLIGHT_SAT_STEP 8 + #define RGBLIGHT_VAL_STEP 8 + #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ + #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ +/*== all animations enable ==*/ + // #define RGBLIGHT_ANIMATIONS +// /*== or choose animations ==*/ + #define RGBLIGHT_EFFECT_BREATHING +// #define RGBLIGHT_EFFECT_RAINBOW_MOOD +// #define RGBLIGHT_EFFECT_RAINBOW_SWIRL +// #define RGBLIGHT_EFFECT_SNAKE +// #define RGBLIGHT_EFFECT_KNIGHT +// #define RGBLIGHT_EFFECT_CHRISTMAS +// #define RGBLIGHT_EFFECT_STATIC_GRADIENT +// #define RGBLIGHT_EFFECT_RGB_TEST +// #define RGBLIGHT_EFFECT_ALTERNATING +#endif + diff --git a/keyboards/handwired/consolekeyboard/consolekeyboard.c b/keyboards/handwired/consolekeyboard/consolekeyboard.c new file mode 100644 index 000000000000..a5ee1d9e74e3 --- /dev/null +++ b/keyboards/handwired/consolekeyboard/consolekeyboard.c @@ -0,0 +1,16 @@ +/* Copyright 2021 Gareth Edwards + * + * 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 . + */ +#include "consolekeyboard.h" diff --git a/keyboards/handwired/consolekeyboard/consolekeyboard.h b/keyboards/handwired/consolekeyboard/consolekeyboard.h new file mode 100644 index 000000000000..bd109caf3658 --- /dev/null +++ b/keyboards/handwired/consolekeyboard/consolekeyboard.h @@ -0,0 +1,26 @@ +/* Copyright 2021 Gareth Edwards + * + * 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 . + */ +#pragma once + +#include "quantum.h" + +#define LAYOUT( \ + K000, K001, K002, K004, K005, K006, K007, K009, K010, K011, \ + K100, K101, K102, K104, K105, K106, K107, K109, K110, K111 \ +) { \ + { K000, K001, K002, KC_NO, K004, K005, K006, K007, KC_NO, K009, K010, K011 }, \ + { K100, K101, K102, KC_NO, K104, K105, K106, K107, KC_NO, K109, K110, K111 }, \ +} diff --git a/keyboards/handwired/consolekeyboard/info.json b/keyboards/handwired/consolekeyboard/info.json new file mode 100644 index 000000000000..0126ec8c6e15 --- /dev/null +++ b/keyboards/handwired/consolekeyboard/info.json @@ -0,0 +1,34 @@ +{ + "keyboard_name": "Console Keyboard", + "url": "https://www.thingiverse.com/thing:3167050", + "maintainer": "Gareth Edwards", + "width": 12, + "height": 2, + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"K00 (D1,D4)", "x":0, "y":0}, + {"label":"K01 (D1,C6)", "x":1, "y":0}, + {"label":"K02 (D1,D7)", "x":2, "y":0}, + {"label":"K04 (D1,B3)", "x":4, "y":0}, + {"label":"K05 (D1,B2)", "x":5, "y":0}, + {"label":"K06 (D1,B6)", "x":6, "y":0}, + {"label":"K07 (D1,E6)", "x":7, "y":0}, + {"label":"K09 (D1,B5)", "x":9, "y":0}, + {"label":"K0A (D1,C4)", "x":10, "y":0}, + {"label":"K0B (D1,C5)", "x":11, "y":0}, + {"label":"K10 (D0,D4)", "x":0, "y":1}, + {"label":"K11 (D0,C6)", "x":1, "y":1}, + {"label":"K12 (D0,D7)", "x":2, "y":1}, + {"label":"K14 (D0,B3)", "x":4, "y":1}, + {"label":"K15 (D0,B2)", "x":5, "y":1}, + {"label":"K16 (D0,B6)", "x":6, "y":1}, + {"label":"K17 (D0,E6)", "x":7, "y":1}, + {"label":"K19 (D0,B5)", "x":9, "y":1}, + {"label":"K1A (D0,C4)", "x":10, "y":1}, + {"label":"K1B (D0,C5)", "x":11, "y":1} + ] + } + } + +} diff --git a/keyboards/handwired/consolekeyboard/keymaps/default/keymap.c b/keyboards/handwired/consolekeyboard/keymaps/default/keymap.c new file mode 100644 index 000000000000..facc8ece2bf0 --- /dev/null +++ b/keyboards/handwired/consolekeyboard/keymaps/default/keymap.c @@ -0,0 +1,25 @@ +/* Copyright 2021 Gareth Edwards + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P + ), + +}; diff --git a/keyboards/handwired/consolekeyboard/keymaps/via/keymap.c b/keyboards/handwired/consolekeyboard/keymaps/via/keymap.c new file mode 100644 index 000000000000..a5ab8c8b7fbe --- /dev/null +++ b/keyboards/handwired/consolekeyboard/keymaps/via/keymap.c @@ -0,0 +1,36 @@ +/* Copyright 2021 Gareth Edwards + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P + ), +[1] = 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, 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), +[3] = 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + }; diff --git a/keyboards/handwired/consolekeyboard/keymaps/via/rules.mk b/keyboards/handwired/consolekeyboard/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/handwired/consolekeyboard/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/handwired/consolekeyboard/readme.md b/keyboards/handwired/consolekeyboard/readme.md new file mode 100644 index 000000000000..303a394bd5a2 --- /dev/null +++ b/keyboards/handwired/consolekeyboard/readme.md @@ -0,0 +1,15 @@ +# Console Keyboard + +[Console Keyboard](https://i.imgur.com/5aLT7CLl.jpeg) + +A 3d printed macro pad based on the Stream Cheap + +* Keyboard Maintainer: [Gareth Edwards](https://github.com/gazeddy) +* Hardware Supported: Arduino Pro Micro +* Hardware Availability:https://www.thingiverse.com/thing:3167050 + +Make example for this keyboard (after setting up your build environment): + + make handwired/consolekeyboard: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). diff --git a/keyboards/handwired/consolekeyboard/rules.mk b/keyboards/handwired/consolekeyboard/rules.mk new file mode 100644 index 000000000000..1b8f014d8609 --- /dev/null +++ b/keyboards/handwired/consolekeyboard/rules.mk @@ -0,0 +1,23 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +LTO_ENABLE = yes # Link time optimize diff --git a/keyboards/handwired/pill60/info.json b/keyboards/handwired/pill60/info.json index bb44c9eb9415..e7690568e054 100644 --- a/keyboards/handwired/pill60/info.json +++ b/keyboards/handwired/pill60/info.json @@ -5,68 +5,68 @@ "width": 15, "height": 5, "layouts": { - "layout_default": { + "LAYOUT_default": { "layout": [ - {"label": "Encoder", "x": 0, "y": 0}, + {"label": "Enc", "x": 0, "y": 0, "w": 1}, - {"label": "Esc", "x": 0, "y": 1}, - {"label": "1","x": 1, "y": 1}, - {"label": "2","x": 2, "y": 1}, - {"label": "3","x": 3, "y": 1}, - {"label": "4","x": 4, "y": 1}, - {"label": "5","x": 5, "y": 1}, - {"label": "6","x": 6, "y": 1}, - {"label": "7","x": 7, "y": 1}, - {"label": "8","x": 8, "y": 1}, - {"label": "9","x": 9, "y": 1}, - {"label": "0","x": 10, "y": 1}, - {"label": "-","x": 11, "y": 1}, - {"label": "=","x": 12, "y": 1}, - {"label": "Backspace","x": 13, "y": 1}, - {"label": "Delete","x": 14, "y": 1}, + {"label": "Esc", "x": 0, "y": 1, "w": 1}, + {"label": "1","x": 1, "y": 1, "w": 1}, + {"label": "2","x": 2, "y": 1, "w": 1}, + {"label": "3","x": 3, "y": 1, "w": 1}, + {"label": "4","x": 4, "y": 1, "w": 1}, + {"label": "5","x": 5, "y": 1, "w": 1}, + {"label": "6","x": 6, "y": 1, "w": 1}, + {"label": "7","x": 7, "y": 1, "w": 1}, + {"label": "8","x": 8, "y": 1, "w": 1}, + {"label": "9","x": 9, "y": 1, "w": 1}, + {"label": "0","x": 10, "y": 1, "w": 1}, + {"label": "-","x": 11, "y": 1, "w": 1}, + {"label": "=","x": 12, "y": 1, "w": 1}, + {"label": "\\","x": 13, "y": 1, "w": 1}, + {"label": "Del","x": 14, "y": 1, "w": 1}, {"label": "Tab","x": 0, "y": 2, "w": 1.5}, - {"label": "Q","x": 1.5, "y": 2}, - {"label": "W","x": 2.5, "y": 2}, - {"label": "E","x": 3.5, "y": 2}, - {"label": "R","x": 4.5, "y": 2}, - {"label": "T","x": 5.5, "y": 2}, - {"label": "Y","x": 6.5, "y": 2}, - {"label": "U","x": 7.5, "y": 2}, - {"label": "I","x": 8.5, "y": 2}, - {"label": "O","x": 9.5, "y": 2}, - {"label": "P","x": 10.5, "y": 2}, - {"label": "[","x": 11.5, "y": 2}, - {"label": "]","x": 12.5, "y": 2}, - {"label": "\\","x": 13.5, "y": 2, "w": 1.5}, + {"label": "Q","x": 1.5, "y": 2, "w": 1}, + {"label": "W","x": 2.5, "y": 2, "w": 1}, + {"label": "E","x": 3.5, "y": 2, "w": 1}, + {"label": "R","x": 4.5, "y": 2, "w": 1}, + {"label": "T","x": 5.5, "y": 2, "w": 1}, + {"label": "Y","x": 6.5, "y": 2, "w": 1}, + {"label": "U","x": 7.5, "y": 2, "w": 1}, + {"label": "I","x": 8.5, "y": 2, "w": 1}, + {"label": "O","x": 9.5, "y": 2, "w": 1}, + {"label": "P","x": 10.5, "y": 2, "w": 1}, + {"label": "[","x": 11.5, "y": 2, "w": 1}, + {"label": "]","x": 12.5, "y": 2, "w": 1}, + {"label": "Backspace","x": 13.5, "y": 2, "w": 1.5}, {"label": "Caps","x": 0, "y": 3, "w": 1.75}, - {"label": "A","x": 1.75, "y": 3}, - {"label": "S","x": 2.75, "y": 3}, - {"label": "D","x": 3.75, "y": 3}, - {"label": "F","x": 4.75, "y": 3}, - {"label": "G","x": 5.75, "y": 3}, - {"label": "H","x": 6.75, "y": 3}, - {"label": "J","x": 7.75, "y": 3}, - {"label": "K","x": 8.75, "y": 3}, - {"label": "L","x": 9.75, "y": 3}, - {"label": ";","x": 10.75, "y": 3}, - {"label": "'","x": 11.75, "y": 3}, + {"label": "A","x": 1.75, "y": 3, "w": 1}, + {"label": "S","x": 2.75, "y": 3, "w": 1}, + {"label": "D","x": 3.75, "y": 3, "w": 1}, + {"label": "F","x": 4.75, "y": 3, "w": 1}, + {"label": "G","x": 5.75, "y": 3, "w": 1}, + {"label": "H","x": 6.75, "y": 3, "w": 1}, + {"label": "J","x": 7.75, "y": 3, "w": 1}, + {"label": "K","x": 8.75, "y": 3, "w": 1}, + {"label": "L","x": 9.75, "y": 3, "w": 1}, + {"label": ";","x": 10.75, "y": 3, "w": 1}, + {"label": "'","x": 11.75, "y": 3, "w": 1}, {"label": "Enter","x": 12.75, "y": 3, "w": 2.25}, {"label": "L Shift","x": 0, "y": 4, "w": 2.25}, - {"label": "Z","x": 2.25, "y": 4}, - {"label": "X","x": 3.25, "y": 4}, - {"label": "C","x": 4.25, "y": 4}, - {"label": "V","x": 5.25, "y": 4}, - {"label": "B","x": 6.25, "y": 4}, - {"label": "N","x": 7.25, "y": 4}, - {"label": "M","x": 8.25, "y": 4}, - {"label": ",","x": 9.25, "y": 4}, - {"label": ".","x": 10.25, "y": 4}, - {"label": "/","x": 11.25, "y": 4}, + {"label": "Z","x": 2.25, "y": 4, "w": 1}, + {"label": "X","x": 3.25, "y": 4, "w": 1}, + {"label": "C","x": 4.25, "y": 4, "w": 1}, + {"label": "V","x": 5.25, "y": 4, "w": 1}, + {"label": "B","x": 6.25, "y": 4, "w": 1}, + {"label": "N","x": 7.25, "y": 4, "w": 1}, + {"label": "M","x": 8.25, "y": 4, "w": 1}, + {"label": ",","x": 9.25, "y": 4, "w": 1}, + {"label": ".","x": 10.25, "y": 4, "w": 1}, + {"label": "/","x": 11.25, "y": 4, "w": 1}, {"label": "R Shift","x": 12.25, "y": 4, "w": 1.75}, - {"label": "FN","x": 14, "y": 4}, + {"label": "FN","x": 14, "y": 4, "w": 1}, {"label": "L CTRL","x": 0, "y": 5, "w": 1.25}, {"label": "L GUI","x": 1.25, "y": 5, "w": 1.25}, @@ -74,7 +74,7 @@ {"label": "Space","x": 3.75, "y": 5, "w": 6.25}, {"label": "R ALT","x": 10, "y": 5, "w": 1.25}, {"label": "R GUI","x": 11.25, "y": 5, "w": 1.25}, - {"label": "R MENU","x": 12.5, "y": 5, "w": 1.25}, + {"label": "FN","x": 12.5, "y": 5, "w": 1.25}, {"label": "R CTRL","x": 13.75, "y": 5, "w": 1.25} ] } diff --git a/keyboards/handwired/pill60/keymaps/default/keymap.c b/keyboards/handwired/pill60/keymaps/default/keymap.c index 6edcb0c2c899..d9f0fa727c7d 100644 --- a/keyboards/handwired/pill60/keymaps/default/keymap.c +++ b/keyboards/handwired/pill60/keymaps/default/keymap.c @@ -28,7 +28,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_GESC, 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_BSLS, KC_DEL, 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_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_ENT, - KC_RSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, MO(_FL), + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FL), MO(_FL), KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FL), KC_RCTL ), [_FL] = LAYOUT( @@ -44,7 +44,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #ifdef OLED_DRIVER_ENABLE static void render_oled(void) { - oled_write_P(PSTR("Ikta's Pill60"), false); + oled_write_P(PSTR("Pill60"), 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); diff --git a/keyboards/idobo/keymaps/ifohancroft/config.h b/keyboards/idobo/keymaps/ifohancroft/config.h new file mode 100644 index 000000000000..09467b436210 --- /dev/null +++ b/keyboards/idobo/keymaps/ifohancroft/config.h @@ -0,0 +1,27 @@ +/* Copyright 2021 IFo Hancroft + * + * 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 . + */ + +#pragma once + +// place overrides here +#define USB_POLLING_INTERVAL_MS 1 +#undef RGBLIGHT_HUE_STEP +#define RGBLIGHT_HUE_STEP 1 +#undef RGBLIGHT_SAT_STEP +#define RGBLIGHT_SAT_STEP 1 +#undef RGBLIGHT_VAL_STEP +#define RGBLIGHT_VAL_STEP 1 +#define FORCE_NKRO diff --git a/keyboards/idobo/keymaps/ifohancroft/keymap.c b/keyboards/idobo/keymaps/ifohancroft/keymap.c new file mode 100644 index 000000000000..d71dcee6a98b --- /dev/null +++ b/keyboards/idobo/keymaps/ifohancroft/keymap.c @@ -0,0 +1,104 @@ +/* Copyright 2021 IFo Hancroft + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* Default Layer + * --------------------------------------------------------------------------------------------------------------------------------------- + * | ` || 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 || 9 || 0 || - || = || Bkspc || Del | + * |-------------------------------------------------------------------------------------------------------------------------------------| + * | Tab || Q || W || E || R || T || Y || U || I || O || P || [ || ] || \ || Home | + * |-------------------------------------------------------------------------------------------------------------------------------------| + * | ESC || A || S || D || F || G || H || J || K || L || ; || " || Enter || Enter || PgUp | + * |-------------------------------------------------------------------------------------------------------------------------------------| + * | Shift || Z || X || C || V || B || N || M || , || . || / || Shift || Shift || Up || PgDn | + * |-------------------------------------------------------------------------------------------------------------------------------------| + * | Ctrl || Super || Alt || MO(1) || Bkspc || Space || Space || Bkspc || MO(1) || Alt || Super || Ctrl || Left || Down || Right | + * --------------------------------------------------------------------------------------------------------------------------------------- + */ + LAYOUT_ortho_5x15( + 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_DEL, + 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_HOME, + KC_ESC, 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_ENT, KC_PGUP, + 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_RSFT, KC_UP, KC_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, MO(1), KC_BSPC, KC_SPC, KC_SPC, KC_BSPC, MO(1), KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + /* Function Layer + * --------------------------------------------------------------------------------------------------------------------------------------- + * | || F1 || F2 || F3 || F4 || F5 || F6 || F7 || F8 || F9 || F10 || F11 || F12 || || | + * |-------------------------------------------------------------------------------------------------------------------------------------| + * | || ||RGB MOD|| || || || || || || || || || || || | + * |-------------------------------------------------------------------------------------------------------------------------------------| + * |RGB TOG||RGB HUI||RGB SAI||RGB VAI|| || || || || || || || || || || | + * |-------------------------------------------------------------------------------------------------------------------------------------| + * | || || || || || || || || || || || || || || | + * |-------------------------------------------------------------------------------------------------------------------------------------| + * | || || || || || || || || || || || || || || | + * --------------------------------------------------------------------------------------------------------------------------------------- + */ + LAYOUT_ortho_5x15( + _______, 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_INS, + _______, _______, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_END, + RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + /* Empty Layer + * --------------------------------------------------------------------------------------------------------------------------------------- + * | || || || || || || || || || || || || || || | + * |-------------------------------------------------------------------------------------------------------------------------------------| + * | || || || || || || || || || || || || || || | + * |-------------------------------------------------------------------------------------------------------------------------------------| + * | || || || || || || || || || || || || || || | + * |-------------------------------------------------------------------------------------------------------------------------------------| + * | || || || || || || || || || || || || || || | + * |-------------------------------------------------------------------------------------------------------------------------------------| + * | || || || || || || || || || || || || || || | + * --------------------------------------------------------------------------------------------------------------------------------------- + */ + LAYOUT_ortho_5x15( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + /* Empty Layer + * --------------------------------------------------------------------------------------------------------------------------------------- + * | || || || || || || || || || || || || || || | + * |-------------------------------------------------------------------------------------------------------------------------------------| + * | || || || || || || || || || || || || || || | + * |-------------------------------------------------------------------------------------------------------------------------------------| + * | || || || || || || || || || || || || || || | + * |-------------------------------------------------------------------------------------------------------------------------------------| + * | || || || || || || || || || || || || || || | + * |-------------------------------------------------------------------------------------------------------------------------------------| + * | || || || || || || || || || || || || || || | + * --------------------------------------------------------------------------------------------------------------------------------------- + */ + LAYOUT_ortho_5x15( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/idobo/keymaps/ifohancroft/readme.md b/keyboards/idobo/keymaps/ifohancroft/readme.md new file mode 100644 index 000000000000..6a6c2cd34bd4 --- /dev/null +++ b/keyboards/idobo/keymaps/ifohancroft/readme.md @@ -0,0 +1,14 @@ +![IFo Hancroft Idobo Layout Image](https://i.imgur.com/ml1olw4.png) + +# IFo Hancroft's Idobo Layout + + - Layer 1: A standard ANSI QWERTY layer. + - Layer 2: A fuction layer. It contains the F1-F12 keys, RGB control keys and the Insert and End keys. + - Layer 3: An empty layer in-case I need something on-the-fly so I can remap with VIA. + - Layer 4: An empty layer in-case I need something on-the-fly so I can remap with VIA. + +This keymap also sets the polling rate of the keyboard to 1ms, the HUE, VALUE and SATURATION of the RGB to steps of 1, disables the MOUSEKEY, EXTRAKEY and CONSOLE features, and enables the following features: + + - COMMAND + - NKRO (forced on) + - VIA diff --git a/keyboards/idobo/keymaps/ifohancroft/rules.mk b/keyboards/idobo/keymaps/ifohancroft/rules.mk new file mode 100644 index 000000000000..6609b4097b0b --- /dev/null +++ b/keyboards/idobo/keymaps/ifohancroft/rules.mk @@ -0,0 +1,6 @@ +MOUSEKEY_ENABLE = no +EXTRAKEY_ENABLE = no +CONSOLE_ENABLE = no +COMMAND_ENABLE = yes +NKRO_ENABLE = yes +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/lazydesigners/dimpleplus/dimpleplus.h b/keyboards/lazydesigners/dimpleplus/dimpleplus.h index 7664b87605e3..93199dc6e071 100644 --- a/keyboards/lazydesigners/dimpleplus/dimpleplus.h +++ b/keyboards/lazydesigners/dimpleplus/dimpleplus.h @@ -19,15 +19,29 @@ along with this program. If not, see . #include "quantum.h" #define LAYOUT( \ - K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, \ - K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, \ - K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, \ - K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, \ - K400, K402, K403, K404, K406, K407, K408, K409 \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, \ + K400, K402, K403, K404, K406, K407, K408, K409 \ ) { \ - { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011 }, \ - { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111 }, \ - { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211 }, \ - { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, KC_NO }, \ - { K400, KC_NO, K402, K403, K404, KC_NO, K406, K407, K408, K409, KC_NO, KC_NO } \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211 }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, KC_NO }, \ + { K400, KC_NO, K402, K403, K404, KC_NO, K406, K407, K408, K409, KC_NO, KC_NO } \ +} + +#define LAYOUT_7u( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K211, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, \ + K400, K402, K404, K408, K409 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, KC_NO, K211 }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310 }, \ + { K400, KC_NO, K402, KC_NO, K404, KC_NO, KC_NO, KC_NO, K408, K409, KC_NO, KC_NO } \ } diff --git a/keyboards/lazydesigners/dimpleplus/info.json b/keyboards/lazydesigners/dimpleplus/info.json index 4ad13f3746a0..e7a028e55007 100644 --- a/keyboards/lazydesigners/dimpleplus/info.json +++ b/keyboards/lazydesigners/dimpleplus/info.json @@ -63,6 +63,60 @@ {"label":"K408 (F5,B4)", "x":9.75, "y":4.25}, {"label":"K409 (F5,D7)", "x":10.75, "y":4.25} ] + }, + "LAYOUT_7u": { + "layout": [ + {"label":"K000 (B3,F1)", "x":0, "y":0}, + {"label":"K001 (B3,D5)", "x":1.5, "y":0}, + {"label":"K002 (B3,F6)", "x":2.5, "y":0}, + {"label":"K003 (B3,F7)", "x":3.5, "y":0}, + {"label":"K004 (B3,C7)", "x":4.5, "y":0}, + {"label":"K005 (B3,C6)", "x":5.5, "y":0}, + {"label":"K006 (B3,B6)", "x":6.5, "y":0}, + {"label":"K007 (B3,B5)", "x":7.5, "y":0}, + {"label":"K008 (B3,B4)", "x":8.5, "y":0}, + {"label":"K009 (B3,D7)", "x":9.5, "y":0}, + {"label":"K010 (B3,D6)", "x":10.5, "y":0, "w":2.0}, + {"label":"K100 (F0,F1)", "x":0, "y":1.25}, + {"label":"K101 (F0,D5)", "x":1, "y":1.25}, + {"label":"K102 (F0,F6)", "x":2, "y":1.25}, + {"label":"K103 (F0,F7)", "x":3, "y":1.25}, + {"label":"K104 (F0,C7)", "x":4, "y":1.25}, + {"label":"K105 (F0,C6)", "x":5, "y":1.25}, + {"label":"K106 (F0,B6)", "x":6, "y":1.25}, + {"label":"K107 (F0,B5)", "x":7, "y":1.25}, + {"label":"K108 (F0,B4)", "x":8, "y":1.25}, + {"label":"K109 (F0,D7)", "x":9, "y":1.25}, + {"label":"K110 (F0,D6)", "x":10, "y":1.25}, + {"label":"K111 (F0,D4)", "x":11, "y":1.25, "w":1.5}, + {"label":"K200 (E6,F1)", "x":0, "y":2.25, "w":1.25}, + {"label":"K201 (E6,D5)", "x":1.25, "y":2.25}, + {"label":"K202 (E6,F6)", "x":2.25, "y":2.25}, + {"label":"K203 (E6,F7)", "x":3.25, "y":2.25}, + {"label":"K204 (E6,C7)", "x":4.25, "y":2.25}, + {"label":"K205 (E6,C6)", "x":5.25, "y":2.25}, + {"label":"K206 (E6,B6)", "x":6.25, "y":2.25}, + {"label":"K207 (E6,B5)", "x":7.25, "y":2.25}, + {"label":"K208 (E6,B4)", "x":8.25, "y":2.25}, + {"label":"K209 (E6,D7)", "x":9.25, "y":2.25}, + {"label":"K211 (E6,D4)", "x":10.25, "y":2.25, "w":2.25}, + {"label":"K300 (F4,F1)", "x":0, "y":3.25, "w":1.75}, + {"label":"K301 (F4,D5)", "x":1.75, "y":3.25}, + {"label":"K302 (F4,F6)", "x":2.75, "y":3.25}, + {"label":"K303 (F4,F7)", "x":3.75, "y":3.25}, + {"label":"K304 (F4,C7)", "x":4.75, "y":3.25}, + {"label":"K305 (F4,C6)", "x":5.75, "y":3.25}, + {"label":"K306 (F4,B6)", "x":6.75, "y":3.25}, + {"label":"K307 (F4,B5)", "x":7.75, "y":3.25}, + {"label":"K308 (F4,B4)", "x":8.75, "y":3.25}, + {"label":"K309 (F4,D7)", "x":9.75, "y":3.25}, + {"label":"K310 (F4,D6)", "x":10.75, "y":3.25, "w":1.75}, + {"label":"K400 (F5,F1)", "x":0.75, "y":4.25}, + {"label":"K402 (F5,F6)", "x":1.75, "y":4.25}, + {"label":"K404 (F5,C7)", "x":2.75, "y":4.25, "w":7.00}, + {"label":"K408 (F5,B4)", "x":9.75, "y":4.25}, + {"label":"K409 (F5,D7)", "x":10.75, "y":4.25} + ] } } } diff --git a/keyboards/lazydesigners/dimpleplus/keymaps/default_7u/keymap.c b/keyboards/lazydesigners/dimpleplus/keymaps/default_7u/keymap.c new file mode 100644 index 000000000000..16724b5461e0 --- /dev/null +++ b/keyboards/lazydesigners/dimpleplus/keymaps/default_7u/keymap.c @@ -0,0 +1,40 @@ +/* Copyright 2020 LAZYDESIGNERS + * + * 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 . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_7u( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_GRV, 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_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSFT, + KC_LCTL, KC_LGUI, KC_SPC, KC_RALT, MO(1) + ), + [1] = LAYOUT_7u( + RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, + KC_TAB, KC_UNDS, KC_SCLN, KC_BSLS, KC_QUOT, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_UP, KC_SLSH, + KC_LSFT, KC_VOLD, KC_VOLU, KC_MUTE, KC_MSTP, KC_MPLY, KC_MFFD, KC_LEFT, KC_DOWN, KC_RIGHT, KC_RSFT, + KC_CAPS, MO(2), KC_SPC, KC_NO, KC_TRNS + ), + [2] = LAYOUT_7u( + 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, RGB_RMOD, RGB_MOD, RGB_VAD, RGB_VAI, RGB_SPD, RGB_SPI, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/leafcutterlabs/bigknob/keymaps/default/keymap.c b/keyboards/leafcutterlabs/bigknob/keymaps/default/keymap.c index 98186fc71516..acb55486a212 100644 --- a/keyboards/leafcutterlabs/bigknob/keymaps/default/keymap.c +++ b/keyboards/leafcutterlabs/bigknob/keymaps/default/keymap.c @@ -28,8 +28,8 @@ void encoder_update_user(uint8_t index, bool clockwise) { } } -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //buttion closest to usb is first +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //button closest to USB is first [_MAIN] = LAYOUT( KC_MUTE, KC_MEDIA_PREV_TRACK, KC_MEDIA_PLAY_PAUSE, KC_MEDIA_STOP, KC_MNXT ) -}; \ No newline at end of file +}; diff --git a/keyboards/melgeek/mj63/config.h b/keyboards/melgeek/mj63/config.h index 452b1c8728ec..47ad2f96cf79 100644 --- a/keyboards/melgeek/mj63/config.h +++ b/keyboards/melgeek/mj63/config.h @@ -17,3 +17,35 @@ #pragma once #include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xEDED +#define PRODUCT_ID 0x6063 +#define DEVICE_VER 0x0001 +#define MANUFACTURER MelGeek +#define PRODUCT MJ63 + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 14 + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 3 + +/* disable these deprecated features by default */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION + +#define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects +#define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended +#define RGB_MATRIX_KEYPRESSES +#define RGB_MATRIX_LED_PROCESS_LIMIT 4 +#define RGB_MATRIX_LED_FLUSH_LIMIT 26 +#define DISABLE_RGB_MATRIX_SPLASH +#define DISABLE_RGB_MATRIX_MULTISPLASH +#define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH +//#define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_SOLID_COLOR +#define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_ALL +#define DRIVER_ADDR_1 0b0110000 +#define DRIVER_ADDR_2 0b0110000 // this is here for compliancy reasons. +#define DRIVER_COUNT 1 diff --git a/keyboards/melgeek/mj63/rev1/config.h b/keyboards/melgeek/mj63/rev1/config.h index 4cd8d6a9dc15..1f6914f6610c 100644 --- a/keyboards/melgeek/mj63/rev1/config.h +++ b/keyboards/melgeek/mj63/rev1/config.h @@ -16,17 +16,6 @@ #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xEDED -#define PRODUCT_ID 0x6063 -#define DEVICE_VER 0x0001 -#define MANUFACTURER MelGeek -#define PRODUCT MJ63 - -/* key matrix size */ -#define MATRIX_ROWS 5 -#define MATRIX_COLS 14 - /* * Keyboard Matrix Assignments * @@ -45,26 +34,6 @@ /* COL2ROW, ROW2COL*/ #define DIODE_DIRECTION COL2ROW -/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ -#define DEBOUNCE 3 - -/* disable these deprecated features by default */ -#define NO_ACTION_MACRO -#define NO_ACTION_FUNCTION - -#define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects -#define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended -#define RGB_MATRIX_KEYPRESSES -#define RGB_MATRIX_LED_PROCESS_LIMIT 4 -#define RGB_MATRIX_LED_FLUSH_LIMIT 26 -#define DISABLE_RGB_MATRIX_SPLASH -#define DISABLE_RGB_MATRIX_MULTISPLASH -#define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH -//#define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_SOLID_COLOR -#define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_ALL -#define DRIVER_ADDR_1 0b0110000 -#define DRIVER_ADDR_2 0b0110000 // this is here for compliancy reasons. -#define DRIVER_COUNT 1 #define DRIVER_1_LED_TOTAL 65 #define DRIVER_LED_TOTAL DRIVER_1_LED_TOTAL #define DRIVER_INDICATOR_LED_TOTAL 0 diff --git a/keyboards/melgeek/mj63/rev2/config.h b/keyboards/melgeek/mj63/rev2/config.h new file mode 100644 index 000000000000..e6c6e9610e43 --- /dev/null +++ b/keyboards/melgeek/mj63/rev2/config.h @@ -0,0 +1,39 @@ +/* Copyright 2020 MelGeek + * + * 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 . + */ + +#pragma once + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ + +#define MATRIX_ROW_PINS { B12, B11, B10, B1, A3 } +#define MATRIX_COL_PINS { B15, A8, B13, A15, B3, B4, B5, B8, B9, C13, C14, C15, A0, A1 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +#define DRIVER_1_LED_TOTAL 71 +#define DRIVER_LED_TOTAL DRIVER_1_LED_TOTAL +#define DRIVER_INDICATOR_LED_TOTAL 0 diff --git a/keyboards/melgeek/mj63/rev2/rev2.c b/keyboards/melgeek/mj63/rev2/rev2.c new file mode 100644 index 000000000000..c2379dabe943 --- /dev/null +++ b/keyboards/melgeek/mj63/rev2/rev2.c @@ -0,0 +1,134 @@ +/* Copyright 2020 MelGeek + * + * 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 . + */ + +#include "mj63.h" + + +#ifdef RGB_MATRIX_ENABLE + +const is31_led g_is31_leds[DRIVER_LED_TOTAL] = { + {0, CS9_SW1, CS8_SW1, CS7_SW1}, /* RGB1 */ + {0, CS9_SW2, CS8_SW2, CS7_SW2}, /* RGB3 */ + {0, CS9_SW3, CS8_SW3, CS7_SW3}, /* RGB4 */ + {0, CS9_SW4, CS8_SW4, CS7_SW4}, /* RGB5 */ + {0, CS9_SW5, CS8_SW5, CS7_SW5}, /* RGB6 */ + {0, CS9_SW6, CS8_SW6, CS7_SW6}, /* RGB7 */ + {0, CS9_SW7, CS8_SW7, CS7_SW7}, /* RGB2 */ + {0, CS9_SW8, CS8_SW8, CS7_SW8}, /* RGB8 */ + {0, CS9_SW9, CS8_SW9, CS7_SW9}, /* RGB9 */ + {0, CS24_SW1, CS23_SW1, CS22_SW1}, /* RGB48 */ + {0, CS24_SW2, CS23_SW2, CS22_SW2}, /* RGB46 */ + {0, CS24_SW3, CS23_SW3, CS22_SW3}, /* RGB49 */ + {0, CS24_SW4, CS23_SW4, CS22_SW4}, /* RGB50 */ + {0, CS24_SW5, CS23_SW5, CS22_SW5}, /* RGB51 */ + {0, CS24_SW6, CS23_SW6, CS22_SW6}, /* RGB52 */ + {0, CS24_SW7, CS23_SW7, CS22_SW7}, /* RGB53 */ + {0, CS12_SW1, CS11_SW1, CS10_SW1}, /* RGB10 */ + {0, CS12_SW2, CS11_SW2, CS10_SW2}, /* RGB11 */ + {0, CS12_SW3, CS11_SW3, CS10_SW3}, /* RGB16 */ + {0, CS12_SW4, CS11_SW4, CS10_SW4}, /* RGB12 */ + {0, CS12_SW5, CS11_SW5, CS10_SW5}, /* RGB17 */ + {0, CS12_SW6, CS11_SW6, CS10_SW6}, /* RGB13 */ + {0, CS12_SW7, CS11_SW7, CS10_SW7}, /* RGB14 */ + {0, CS12_SW8, CS11_SW8, CS10_SW8}, /* RGB18 */ + {0, CS12_SW9, CS11_SW9, CS10_SW9}, /* RGB15 */ + {0, CS24_SW8, CS23_SW8, CS22_SW8}, /* RGB47 */ + {0, CS24_SW9, CS23_SW9, CS22_SW9}, /* RGB54 */ + {0, CS27_SW1, CS26_SW1, CS25_SW1}, /* RGB55 */ + {0, CS27_SW2, CS26_SW2, CS25_SW2}, /* RGB60 */ + {0, CS27_SW3, CS26_SW3, CS25_SW3}, /* RGB61 */ + {0, CS15_SW1, CS14_SW1, CS13_SW1}, /* RGB21 */ + {0, CS15_SW2, CS14_SW2, CS13_SW2}, /* RGB19 */ + {0, CS15_SW3, CS14_SW3, CS13_SW3}, /* RGB22 */ + {0, CS15_SW4, CS14_SW4, CS13_SW4}, /* RGB26 */ + {0, CS15_SW5, CS14_SW5, CS13_SW5}, /* RGB20 */ + {0, CS15_SW6, CS14_SW6, CS13_SW6}, /* RGB23 */ + {0, CS15_SW7, CS14_SW7, CS13_SW7}, /* RGB24 */ + {0, CS15_SW8, CS14_SW8, CS13_SW8}, /* RGB25 */ + {0, CS15_SW9, CS14_SW9, CS13_SW9}, /* RGB27 */ + {0, CS27_SW4, CS26_SW4, CS25_SW4}, /* RGB56 */ + {0, CS27_SW5, CS26_SW5, CS25_SW5}, /* RGB57 */ + {0, CS27_SW6, CS26_SW6, CS25_SW6}, /* RGB62 */ + {0, CS27_SW7, CS26_SW7, CS25_SW7}, /* RGB58 */ + {0, CS27_SW8, CS26_SW8, CS25_SW8}, /* RGB63 */ + {0, CS27_SW9, CS26_SW9, CS25_SW9}, /* RGB59 */ + {0, CS18_SW1, CS17_SW1, CS16_SW1}, /* RGB28 */ + {0, CS18_SW2, CS17_SW2, CS16_SW2}, /* RGB29 */ + {0, CS18_SW3, CS17_SW3, CS16_SW3}, /* RGB30 */ + {0, CS18_SW4, CS17_SW4, CS16_SW4}, /* RGB31 */ + {0, CS18_SW5, CS17_SW5, CS16_SW5}, /* RGB35 */ + {0, CS18_SW6, CS17_SW6, CS16_SW6}, /* RGB32 */ + {0, CS18_SW7, CS17_SW7, CS16_SW7}, /* RGB33 */ + {0, CS18_SW8, CS17_SW8, CS16_SW8}, /* RGB34 */ + {0, CS18_SW9, CS17_SW9, CS16_SW9}, /* RGB36 */ + {0, CS30_SW1, CS29_SW1, CS28_SW1}, /* RGB64 */ + {0, CS30_SW2, CS29_SW2, CS28_SW2}, /* RGB65 */ + {0, CS30_SW3, CS29_SW3, CS28_SW3}, /* RGB66 */ + {0, CS30_SW5, CS29_SW5, CS28_SW5}, /* RGB68 */ + {0, CS30_SW6, CS29_SW6, CS28_SW6}, /* RGB69 */ + {0, CS30_SW7, CS29_SW7, CS28_SW7}, /* RGB70 */ + {0, CS21_SW1, CS20_SW1, CS19_SW1}, /* RGB37 */ + {0, CS21_SW2, CS20_SW2, CS19_SW2}, /* RGB40 */ + {0, CS21_SW3, CS20_SW3, CS19_SW3}, /* RGB43 */ + {0, CS21_SW4, CS20_SW4, CS19_SW4}, /* RGB38 */ + {0, CS21_SW5, CS20_SW5, CS19_SW5}, /* RGB41 */ + {0, CS21_SW6, CS20_SW6, CS19_SW6}, /* RGB44 */ + {0, CS21_SW7, CS20_SW7, CS19_SW7}, /* RGB45 */ + {0, CS21_SW8, CS20_SW8, CS19_SW8}, /* RGB39 */ + {0, CS21_SW9, CS20_SW9, CS19_SW9}, /* RGB42 */ + {0, CS30_SW8, CS29_SW8, CS28_SW8}, /* RGB71 */ + {0, CS30_SW9, CS29_SW9, CS28_SW9}, /* RGB72 */ +}; + +led_config_t g_led_config = { + { + /* C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13 */ + { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14 }, /* R0 */ + { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }, /* R1 */ + { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 43, NO_LED }, /* R2 */ + { 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, NO_LED, 57, 58, 59 }, /* R3 */ + { 60, 61, 62, NO_LED, NO_LED, 64, NO_LED, NO_LED, NO_LED, 66, 67, 68, 69, 70 }, /* R4 */ + }, { + {0, 0}, {16, 0}, {32, 0}, {48, 0}, {64, 0}, {80, 0}, {96, 0}, {112, 0}, {128, 0}, {144, 0}, {160, 0}, {176, 0}, {192, 0}, {208, 0}, {224, 0}, {240, 0}, + {0, 16}, {16, 16}, {32, 16}, {48, 16}, {64, 16}, {80, 16}, {96, 16}, {112, 16}, {128, 16}, {144, 16}, {160, 16}, {176, 16}, {192, 16}, {208, 16}, + {0, 32}, {16, 32}, {32, 32}, {48, 32}, {64, 32}, {80, 32}, {96, 32}, {112, 32}, {128, 32}, {144, 32}, {160, 32}, {176, 32}, {192, 32}, {208, 32}, {224, 32}, + {0, 48}, {16, 48}, {32, 48}, {48, 48}, {64, 48}, {80, 48}, {96, 48}, {112, 48}, {128, 48}, {144, 48}, {160, 48}, {176, 48}, {192, 48}, {208, 48}, {224, 48}, + {0, 64}, {16, 64}, {32, 64}, {48, 64}, {64, 64}, {80, 64}, {96, 64}, {112, 64}, {128, 64}, {144, 64}, {160, 64}, + }, { + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + } +}; + +void suspend_power_down_kb(void) { + rgb_matrix_set_suspend_state(true); + suspend_power_down_user(); +} + +void suspend_wakeup_init_kb(void) { + rgb_matrix_set_suspend_state(false); + suspend_wakeup_init_user(); +} +#endif + +void keyboard_pre_init_kb(void) { + setPinOutput(A2); + writePinHigh(A2); + keyboard_pre_init_user(); +} diff --git a/keyboards/melgeek/mj63/rev2/rules.mk b/keyboards/melgeek/mj63/rev2/rules.mk new file mode 100644 index 000000000000..d5fc76b8e77e --- /dev/null +++ b/keyboards/melgeek/mj63/rev2/rules.mk @@ -0,0 +1,23 @@ +# MCU name +MCU = STM32F303 + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +RGB_MATRIX_ENABLE = yes # Use RGB matrix +RGB_MATRIX_DRIVER = IS31FL3741 +NO_USB_STARTUP_CHECK = no # Disable initialization only when usb is plugged in + +LAYOUTS = 60_ansi_arrow diff --git a/keyboards/melgeek/mj64/rev3/config.h b/keyboards/melgeek/mj64/rev3/config.h new file mode 100644 index 000000000000..26909d559841 --- /dev/null +++ b/keyboards/melgeek/mj64/rev3/config.h @@ -0,0 +1,39 @@ +/* Copyright 2020 MelGeek + * + * 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 . + */ + +#pragma once + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ + +#define MATRIX_ROW_PINS { B12, B11, B10, B1, A3 } +#define MATRIX_COL_PINS { B15, A8, B13, A15, B3, B4, B5, B8, B9, C13, C14, C15, A0, A1 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +#define DRIVER_1_LED_TOTAL 72 +#define DRIVER_LED_TOTAL DRIVER_1_LED_TOTAL +#define DRIVER_INDICATOR_LED_TOTAL 0 diff --git a/keyboards/melgeek/mj64/rev3/rev3.c b/keyboards/melgeek/mj64/rev3/rev3.c new file mode 100644 index 000000000000..03ed9fe0073d --- /dev/null +++ b/keyboards/melgeek/mj64/rev3/rev3.c @@ -0,0 +1,134 @@ +/* Copyright 2020 MelGeek + * + * 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 . + */ + +#include "mj64.h" + +#ifdef RGB_MATRIX_ENABLE + +const is31_led g_is31_leds[DRIVER_LED_TOTAL] = { + {0, CS9_SW1, CS8_SW1, CS7_SW1}, /* RGB1 */ + {0, CS9_SW2, CS8_SW2, CS7_SW2}, /* RGB3 */ + {0, CS9_SW3, CS8_SW3, CS7_SW3}, /* RGB4 */ + {0, CS9_SW4, CS8_SW4, CS7_SW4}, /* RGB5 */ + {0, CS9_SW5, CS8_SW5, CS7_SW5}, /* RGB6 */ + {0, CS9_SW6, CS8_SW6, CS7_SW6}, /* RGB7 */ + {0, CS9_SW7, CS8_SW7, CS7_SW7}, /* RGB2 */ + {0, CS9_SW8, CS8_SW8, CS7_SW8}, /* RGB8 */ + {0, CS9_SW9, CS8_SW9, CS7_SW9}, /* RGB9 */ + {0, CS24_SW1, CS23_SW1, CS22_SW1}, /* RGB48 */ + {0, CS24_SW2, CS23_SW2, CS22_SW2}, /* RGB46 */ + {0, CS24_SW3, CS23_SW3, CS22_SW3}, /* RGB49 */ + {0, CS24_SW4, CS23_SW4, CS22_SW4}, /* RGB50 */ + {0, CS24_SW5, CS23_SW5, CS22_SW5}, /* RGB51 */ + {0, CS24_SW6, CS23_SW6, CS22_SW6}, /* RGB52 */ + {0, CS24_SW7, CS23_SW7, CS22_SW7}, /* RGB53 */ + {0, CS12_SW1, CS11_SW1, CS10_SW1}, /* RGB10 */ + {0, CS12_SW2, CS11_SW2, CS10_SW2}, /* RGB11 */ + {0, CS12_SW3, CS11_SW3, CS10_SW3}, /* RGB16 */ + {0, CS12_SW4, CS11_SW4, CS10_SW4}, /* RGB12 */ + {0, CS12_SW5, CS11_SW5, CS10_SW5}, /* RGB17 */ + {0, CS12_SW6, CS11_SW6, CS10_SW6}, /* RGB13 */ + {0, CS12_SW7, CS11_SW7, CS10_SW7}, /* RGB14 */ + {0, CS12_SW8, CS11_SW8, CS10_SW8}, /* RGB18 */ + {0, CS12_SW9, CS11_SW9, CS10_SW9}, /* RGB15 */ + {0, CS24_SW8, CS23_SW8, CS22_SW8}, /* RGB47 */ + {0, CS24_SW9, CS23_SW9, CS22_SW9}, /* RGB54 */ + {0, CS27_SW1, CS26_SW1, CS25_SW1}, /* RGB55 */ + {0, CS27_SW2, CS26_SW2, CS25_SW2}, /* RGB60 */ + {0, CS27_SW3, CS26_SW3, CS25_SW3}, /* RGB61 */ + {0, CS15_SW1, CS14_SW1, CS13_SW1}, /* RGB21 */ + {0, CS15_SW2, CS14_SW2, CS13_SW2}, /* RGB19 */ + {0, CS15_SW3, CS14_SW3, CS13_SW3}, /* RGB22 */ + {0, CS15_SW4, CS14_SW4, CS13_SW4}, /* RGB26 */ + {0, CS15_SW5, CS14_SW5, CS13_SW5}, /* RGB20 */ + {0, CS15_SW6, CS14_SW6, CS13_SW6}, /* RGB23 */ + {0, CS15_SW7, CS14_SW7, CS13_SW7}, /* RGB24 */ + {0, CS15_SW8, CS14_SW8, CS13_SW8}, /* RGB25 */ + {0, CS15_SW9, CS14_SW9, CS13_SW9}, /* RGB27 */ + {0, CS27_SW4, CS26_SW4, CS25_SW4}, /* RGB56 */ + {0, CS27_SW5, CS26_SW5, CS25_SW5}, /* RGB57 */ + {0, CS27_SW6, CS26_SW6, CS25_SW6}, /* RGB62 */ + {0, CS27_SW7, CS26_SW7, CS25_SW7}, /* RGB58 */ + {0, CS27_SW8, CS26_SW8, CS25_SW8}, /* RGB63 */ + {0, CS27_SW9, CS26_SW9, CS25_SW9}, /* RGB59 */ + {0, CS18_SW1, CS17_SW1, CS16_SW1}, /* RGB28 */ + {0, CS18_SW2, CS17_SW2, CS16_SW2}, /* RGB29 */ + {0, CS18_SW3, CS17_SW3, CS16_SW3}, /* RGB30 */ + {0, CS18_SW4, CS17_SW4, CS16_SW4}, /* RGB31 */ + {0, CS18_SW5, CS17_SW5, CS16_SW5}, /* RGB35 */ + {0, CS18_SW6, CS17_SW6, CS16_SW6}, /* RGB32 */ + {0, CS18_SW7, CS17_SW7, CS16_SW7}, /* RGB33 */ + {0, CS18_SW8, CS17_SW8, CS16_SW8}, /* RGB34 */ + {0, CS18_SW9, CS17_SW9, CS16_SW9}, /* RGB36 */ + {0, CS30_SW1, CS29_SW1, CS28_SW1}, /* RGB64 */ + {0, CS30_SW2, CS29_SW2, CS28_SW2}, /* RGB65 */ + {0, CS30_SW3, CS29_SW3, CS28_SW3}, /* RGB66 */ + {0, CS30_SW4, CS29_SW4, CS28_SW4}, /* RGB67 */ + {0, CS30_SW5, CS29_SW5, CS28_SW5}, /* RGB68 */ + {0, CS30_SW6, CS29_SW6, CS28_SW6}, /* RGB69 */ + {0, CS30_SW7, CS29_SW7, CS28_SW7}, /* RGB70 */ + {0, CS21_SW1, CS20_SW1, CS19_SW1}, /* RGB37 */ + {0, CS21_SW2, CS20_SW2, CS19_SW2}, /* RGB40 */ + {0, CS21_SW3, CS20_SW3, CS19_SW3}, /* RGB43 */ + {0, CS21_SW4, CS20_SW4, CS19_SW4}, /* RGB38 */ + {0, CS21_SW5, CS20_SW5, CS19_SW5}, /* RGB41 */ + {0, CS21_SW6, CS20_SW6, CS19_SW6}, /* RGB44 */ + {0, CS21_SW7, CS20_SW7, CS19_SW7}, /* RGB45 */ + {0, CS21_SW8, CS20_SW8, CS19_SW8}, /* RGB39 */ + {0, CS21_SW9, CS20_SW9, CS19_SW9}, /* RGB42 */ + {0, CS30_SW8, CS29_SW8, CS28_SW8}, /* RGB71 */ + {0, CS30_SW9, CS29_SW9, CS28_SW9}, /* RGB72 */ +}; + +led_config_t g_led_config = { + { + /* C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13 */ + { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14 }, /* R0 */ + { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }, /* R1 */ + { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 43, NO_LED }, /* R2 */ + { 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60 }, /* R3 */ + { 61, 62, 63, NO_LED, NO_LED, 65, NO_LED, NO_LED, NO_LED, 67, 68, 69, 70, 71 }, /* R4 */ + }, { + {0, 0}, {16, 0}, {32, 0}, {48, 0}, {64, 0}, {80, 0}, {96, 0}, {112, 0}, {128, 0}, {144, 0}, {160, 0}, {176, 0}, {192, 0}, {208, 0}, {224, 0}, {240, 0}, + {0, 16}, {16, 16}, {32, 16}, {48, 16}, {64, 16}, {80, 16}, {96, 16}, {112, 16}, {128, 16}, {144, 16}, {160, 16}, {176, 16}, {192, 16}, {208, 16}, + {0, 32}, {16, 32}, {32, 32}, {48, 32}, {64, 32}, {80, 32}, {96, 32}, {112, 32}, {128, 32}, {144, 32}, {160, 32}, {176, 32}, {192, 32}, {208, 32}, {224, 32}, + {0, 48}, {16, 48}, {32, 48}, {48, 48}, {64, 48}, {80, 48}, {96, 48}, {112, 48}, {128, 48}, {144, 48}, {160, 48}, {176, 48}, {192, 48}, {208, 48}, {224, 48}, {240, 48}, + {0, 64}, {16, 64}, {32, 64}, {48, 64}, {64, 64}, {80, 64}, {96, 64}, {112, 64}, {128, 64}, {144, 64}, {160, 64}, + }, { + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + } +}; + +void suspend_power_down_kb(void) { + rgb_matrix_set_suspend_state(true); + suspend_power_down_user(); +} + +void suspend_wakeup_init_kb(void) { + rgb_matrix_set_suspend_state(false); + suspend_wakeup_init_user(); +} +#endif + +void keyboard_pre_init_kb(void) { + setPinOutput(A2); + writePinHigh(A2); + keyboard_pre_init_user(); +} diff --git a/keyboards/melgeek/mj64/rev3/rules.mk b/keyboards/melgeek/mj64/rev3/rules.mk new file mode 100644 index 000000000000..01b8aca41436 --- /dev/null +++ b/keyboards/melgeek/mj64/rev3/rules.mk @@ -0,0 +1,23 @@ +# MCU name +MCU = STM32F303 + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +RGB_MATRIX_ENABLE = yes # Use RGB matrix +RGB_MATRIX_DRIVER = IS31FL3741 +NO_USB_STARTUP_CHECK = no # Disable initialization only when usb is plugged in + +LAYOUTS = 64_ansi diff --git a/keyboards/mio/config.h b/keyboards/mio/config.h new file mode 100644 index 000000000000..7eab9ea590f2 --- /dev/null +++ b/keyboards/mio/config.h @@ -0,0 +1,67 @@ +/* +Copyright 2021 recompile keys + +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 . +*/ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x524B // recompile keys +#define PRODUCT_ID 0x4D41 // MIO +#define DEVICE_VER 0x0001 +#define MANUFACTURER recompile keys +#define PRODUCT MIO + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 8 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + */ +#define MATRIX_ROW_PINS { F1, F0, F4, F7, F6, F5 } +#define MATRIX_COL_PINS { C7, C6, B6, B5, B4, D7, D6, D4} +#define UNUSED_PINS + +/* COL2ROW, ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +#define RGB_DI_PIN B3 +#ifdef RGB_DI_PIN +# define RGBLED_NUM 8 +# define RGBLIGHT_HUE_STEP 8 +# define RGBLIGHT_SAT_STEP 8 +# define RGBLIGHT_VAL_STEP 8 +# define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ +# define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ +# define RGBLIGHT_ANIMATIONS +#endif + +/* disable these deprecated features by default */ +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION + +/* Bootmagic Lite key configuration */ +#define BOOTMAGIC_LITE_ROW 0 +#define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/mio/info.json b/keyboards/mio/info.json new file mode 100644 index 000000000000..d5afdbf79b27 --- /dev/null +++ b/keyboards/mio/info.json @@ -0,0 +1,54 @@ +{ + "keyboard_name": "MIO", + "url": "https://keys.recompile.net/projects/mio/", + "maintainer": "recompile keys", + "width": 8.25, + "height": 7.5, + "layouts": { + "LAYOUT": { + "layout": [ + {"label": "Esc", "x": 0, "y": 0 }, + {"label": "F1", "x": 2, "y": 0 }, + {"label": "F2", "x": 3, "y": 0 }, + {"label": "F3", "x": 4, "y": 0 }, + {"label": "F4", "x": 5, "y": 0 }, + {"label": "F5", "x": 6.25, "y": 0 }, + {"label": "F6", "x": 7.25, "y": 0 }, + {"label": "~", "x": 0, "y": 1.25 }, + {"label": "!", "x": 1, "y": 1.25 }, + {"label": "@", "x": 2, "y": 1.25 }, + {"label": "#", "x": 3, "y": 1.25 }, + {"label": "$", "x": 4, "y": 1.25 }, + {"label": "%", "x": 5, "y": 1.25 }, + {"label": "^", "x": 6, "y": 1.25 }, + {"label": "&", "x": 7, "y": 1.25 }, + {"label": "Tab", "x": 0, "y": 2.25, "w": 1.5 }, + {"label": "Q", "x": 1.5, "y": 2.25 }, + {"label": "W", "x": 2.5, "y": 2.25 }, + {"label": "E", "x": 3.5, "y": 2.25 }, + {"label": "R", "x": 4.5, "y": 2.25 }, + {"label": "T", "x": 5.5, "y": 2.25 }, + {"label": "Y", "x": 6.5, "y": 2.25 }, + {"label": "Caps Lock", "x": 0, "y": 3.25, "w": 1.75 }, + {"label": "A", "x": 1.75, "y": 3.25 }, + {"label": "S", "x": 2.75, "y": 3.25 }, + {"label": "D", "x": 3.75, "y": 3.25 }, + {"label": "F", "x": 4.75, "y": 3.25 }, + {"label": "G", "x": 5.75, "y": 3.25 }, + {"label": "H", "x": 6.75, "y": 3.25 }, + {"label": "Shift", "x": 0, "y": 4.25, "w": 2.25 }, + {"label": "Z", "x": 2.25, "y": 4.25 }, + {"label": "X", "x": 3.25, "y": 4.25 }, + {"label": "C", "x": 4.25, "y": 4.25 }, + {"label": "V", "x": 5.25, "y": 4.25 }, + {"label": "B", "x": 6.25, "y": 4.25 }, + {"label": "N", "x": 7.25, "y": 4.25 }, + {"label": "Ctrl", "x": 0, "y": 5.25, "w": 1.5 }, + {"label": "Alt", "x": 2.5, "y": 5.25, "w": 1.5 }, + {"x": 4, "y": 5.25, "w": 1.5 }, + {"x": 5.5, "y": 5.25, "w": 2.75 }, + {"x": 7, "y": 6.5, "w": 1.25 } + ] + } + } +} diff --git a/keyboards/mio/keymaps/default/keymap.c b/keyboards/mio/keymaps/default/keymap.c new file mode 100644 index 000000000000..39223f537aaf --- /dev/null +++ b/keyboards/mio/keymaps/default/keymap.c @@ -0,0 +1,42 @@ +/* Copyright 2021 recompile keys + * + * 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 . + */ +#include QMK_KEYBOARD_H + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _BASE, + _FN +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [_BASE] = LAYOUT( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, + MO(_FN), KC_LCTL, KC_LALT, KC_SPC, KC_ENT + ), + [_FN] = LAYOUT( + RESET, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, + _______, RGB_RMOD, RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/mio/keymaps/default/readme.md b/keyboards/mio/keymaps/default/readme.md new file mode 100644 index 000000000000..688c514730b5 --- /dev/null +++ b/keyboards/mio/keymaps/default/readme.md @@ -0,0 +1,5 @@ +![MIO Layout Image](https://i.imgur.com/vihNDjn.png) + +# Default MIO Layout + +This layout is the default keymap for MIO. diff --git a/keyboards/mio/keymaps/via/keymap.c b/keyboards/mio/keymaps/via/keymap.c new file mode 100644 index 000000000000..b521df997165 --- /dev/null +++ b/keyboards/mio/keymaps/via/keymap.c @@ -0,0 +1,51 @@ +/* Copyright 2021 recompile keys + * + * 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 . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, + MO(1), KC_LCTL, KC_LALT, KC_SPC, KC_ENT + ), + [1] = LAYOUT( + RESET, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, + _______, RGB_RMOD, RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______ + ), + [2] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______ + ), + [3] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/mio/keymaps/via/rules.mk b/keyboards/mio/keymaps/via/rules.mk new file mode 100644 index 000000000000..36b7ba9cbc98 --- /dev/null +++ b/keyboards/mio/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/mio/mio.c b/keyboards/mio/mio.c new file mode 100644 index 000000000000..154a89d26f02 --- /dev/null +++ b/keyboards/mio/mio.c @@ -0,0 +1,17 @@ +/* Copyright 2021 recompile keys + * + * 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 . + */ + +#include "mio.h" diff --git a/keyboards/mio/mio.h b/keyboards/mio/mio.h new file mode 100644 index 000000000000..da6dc3229c3d --- /dev/null +++ b/keyboards/mio/mio.h @@ -0,0 +1,44 @@ +/* Copyright 2021 recompile keys + * + * 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 . + */ + +#pragma once + +#include "quantum.h" + +/* This is a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT( \ + K000, K002, K003, K004, K005, K006, K007, \ + K100, K101, K102, K103, K104, K105, K106, K107, \ + K200, K201, K202, K203, K204, K205, K206, \ + K300, K301, K302, K303, K304, K305, K306, \ + K400, K401, K402, K403, K404, K405, K406, \ + K500, K501, K502, K505, K506 \ +) \ +{ \ + { K000, KC_NO, K002, K003, K004, K005, K006, K007 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107 }, \ + { K200, K201, K202, K203, K204, K205, K206, KC_NO }, \ + { K300, K301, K302, K303, K304, K305, K306, KC_NO }, \ + { K400, K401, K402, K403, K404, K405, K406, KC_NO }, \ + { K500, K501, K502, KC_NO, KC_NO, K505, K506, KC_NO }, \ +} diff --git a/keyboards/mio/readme.md b/keyboards/mio/readme.md new file mode 100644 index 000000000000..6ae4fd049ffc --- /dev/null +++ b/keyboards/mio/readme.md @@ -0,0 +1,23 @@ +# MIO + +![MIO](https://keys.recompile.net/images/mio-01@600w.jpg) + +High-end custom gaming keyboard. + +* Keyboard Maintainer: [Naoto Takai](https://github.com/takai) +* Hardware Supported: Original MIO PCB +* Hardware Availability: https://keys.recompile.net/projects/mio/ + +Make example for this keyboard (after setting up your build environment): + + make mio:default + +Flashing example for this keyboard: + + make mio: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 Mode + +In order to flash the firmware, you need to put the keyboard into bootloader mode. To enable the bootloader mode, press the reset button (SW1) on the underside of the PCB. diff --git a/keyboards/mio/rules.mk b/keyboards/mio/rules.mk new file mode 100644 index 000000000000..38ce53e3096f --- /dev/null +++ b/keyboards/mio/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/montsinger/rebound/rev4/config.h b/keyboards/montsinger/rebound/rev4/config.h index be97ab98d737..60a255f49dd9 100644 --- a/keyboards/montsinger/rebound/rev4/config.h +++ b/keyboards/montsinger/rebound/rev4/config.h @@ -18,8 +18,8 @@ along with this program. If not, see . /* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x552F +#define VENDOR_ID 0x524D +#define PRODUCT_ID 0x0001 #define DEVICE_VER 0x0002 #define MANUFACTURER Montsinger #define PRODUCT Rebound diff --git a/keyboards/nullbitsco/nibble/keymaps/oled_bongocat/keymap.c b/keyboards/nullbitsco/nibble/keymaps/oled_bongocat/keymap.c new file mode 100644 index 000000000000..4bdecf2c6a64 --- /dev/null +++ b/keyboards/nullbitsco/nibble/keymaps/oled_bongocat/keymap.c @@ -0,0 +1,364 @@ +/* Copyright 2020 Jonathan Law + * + * 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 . + * + * Original: j-inc's kyria keymap + */ +#include QMK_KEYBOARD_H +#include + +enum layer_names { + _MA, + _FN +}; + +enum custom_keycodes { + KC_CUST = SAFE_RANGE, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_MA] = LAYOUT_ansi( + KC_ESC, 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_HOME, + KC_F13, 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_DEL, + KC_F14, 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_PGUP, + KC_F15, 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, KC_PGDN, + KC_F16, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(_FN), KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [_FN] = LAYOUT_ansi( + RESET, 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_END, + RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + +}; + +void encoder_update_kb(uint8_t index, bool clockwise) { + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } +} + +#ifdef OLED_DRIVER_ENABLE +oled_rotation_t oled_init_user(oled_rotation_t rotation) { return OLED_ROTATION_90; } + +#define TAP_FRAMES 2 // cycles through frames on keypress, 2 required +#define IDLE_FRAMES 5 +#define IDLE_FRAME_DURATION 200 // idle animation iteration rate in ms +#define ANIM_SIZE 512 // number of bytes in array, max is 1024 (minimize where possible) + +uint32_t anim_timer = 0; +uint32_t anim_sleep = 0; +uint8_t current_idle_frame = 0; + +char wpm_str[10]; +bool tap_anim = false; +bool tap_anim_toggle = false; + +static const char PROGMEM idle_frames[IDLE_FRAMES][ANIM_SIZE] = { + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x78, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xe0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1e, 0xe0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1e, + 0xe0, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0xc2, 0xc1, + 0x01, 0x00, 0x00, 0xc0, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0x10, 0x08, 0x08, 0x04, 0x02, 0x01, 0x00, 0x00, 0x00, 0x18, 0x18, 0x03, 0x43, + 0xc0, 0x00, 0x03, 0x7c, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x03, 0x7c, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x13, 0x0c, 0x00, 0x00, 0x07, 0x38, 0x40, 0x20, 0x20, 0x20, 0x20, 0xc0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x18, 0x20, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, + 0x03, 0x00, 0x1e, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x80, 0x60, 0x18, 0x07, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x20, 0x40, 0x40, 0x20, 0x20, 0x10, + 0x10, 0x10, 0x20, 0x40, 0x40, 0x40, 0x80, 0x80, 0x9f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x3e, 0xc0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xf8, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xe0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x7c, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }, + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x78, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xe0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1e, 0xe0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1e, + 0xe0, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0xc2, 0xc1, + 0x01, 0x00, 0x00, 0xc0, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0x10, 0x08, 0x08, 0x04, 0x02, 0x01, 0x00, 0x00, 0x00, 0x18, 0x18, 0x03, 0x43, + 0xc0, 0x00, 0x03, 0x7c, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x03, 0x7c, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x13, 0x0c, 0x00, 0x00, 0x07, 0x38, 0x40, 0x20, 0x20, 0x20, 0x20, 0xc0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x18, 0x20, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, + 0x03, 0x00, 0x1e, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x80, 0x60, 0x18, 0x07, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x20, 0x40, 0x40, 0x20, 0x20, 0x10, + 0x10, 0x10, 0x20, 0x40, 0x40, 0x40, 0x80, 0x80, 0x9f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x3e, 0xc0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xf8, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xe0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x7c, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }, + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x78, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xe0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1e, 0xe0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1e, + 0xe0, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0xc2, + 0xc1, 0x00, 0x00, 0xc0, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xc0, 0x20, 0x10, 0x10, 0x08, 0x08, 0x04, 0x02, 0x01, 0x00, 0x00, 0x00, 0x18, 0x18, 0x03, + 0x43, 0xc0, 0x03, 0x7c, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x02, 0x04, 0x78, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x13, 0x0c, 0x00, 0x07, 0x38, 0x40, 0x20, 0x20, 0x20, 0x20, 0xc0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x18, 0x20, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x03, 0x03, 0x00, 0x1e, 0x1e, 0x00, 0x00, 0x00, 0x80, 0x60, 0x18, 0x07, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x26, 0x41, 0x40, 0x40, 0x40, 0x20, 0x20, + 0x20, 0x10, 0x10, 0x20, 0x60, 0x40, 0x40, 0x80, 0x9f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x3e, 0xc0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xf8, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xe0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x7c, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }, + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x78, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xe0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1e, 0xe0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1e, + 0xe0, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0xc2, 0xc1, + 0x01, 0x00, 0x00, 0xc0, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xc0, 0x20, 0x10, 0x10, 0x08, 0x08, 0x04, 0x02, 0x01, 0x00, 0x00, 0x00, 0x18, 0x18, 0x03, 0x43, + 0xc0, 0x00, 0x03, 0x7c, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x02, 0x04, 0x78, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x13, 0x0c, 0x00, 0x00, 0x07, 0x38, 0x40, 0x20, 0x20, 0x20, 0x20, 0xc0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x18, 0x20, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, + 0x03, 0x00, 0x1e, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x80, 0x60, 0x18, 0x07, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x26, 0x41, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, + 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x40, 0x80, 0x9f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x3e, 0xc0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xf8, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xe0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x7c, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }, + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x78, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xe0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1e, 0xe0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1e, + 0xe0, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0xc2, 0xc1, + 0x01, 0x00, 0x00, 0xc0, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xe0, 0x10, 0x08, 0x08, 0x08, 0x04, 0x02, 0x01, 0x00, 0x00, 0x00, 0x18, 0x18, 0x03, 0x43, + 0xc0, 0x00, 0x03, 0x7c, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x06, 0x78, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x13, 0x0c, 0x00, 0x00, 0x07, 0x38, 0x40, 0x20, 0x20, 0x20, 0x20, 0xc0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x18, 0x20, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, + 0x03, 0x00, 0x1e, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x80, 0x60, 0x18, 0x07, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x27, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, + 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x40, 0x80, 0x9f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x3e, 0xc0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xf8, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xe0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x7c, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + } + }; +static const char PROGMEM tap_frames[TAP_FRAMES][ANIM_SIZE] = { + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x78, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xe0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xc0, 0xe0, 0xe0, 0x81, 0x1e, 0xe0, 0x00, + 0x00, 0x00, 0xe0, 0xe0, 0xc0, 0xc0, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0xc0, 0xc1, 0xc3, 0x87, 0x8f, 0x1f, 0x1f, 0x1c, 0x01, 0x1e, + 0xe0, 0x80, 0xbf, 0xbf, 0x3f, 0x3f, 0x1f, 0x0f, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x83, 0x43, 0x21, 0x10, 0x08, 0x04, 0x02, 0x01, + 0x01, 0x00, 0x00, 0xc0, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xc0, 0x20, 0x10, 0x10, 0x08, 0x08, 0x04, 0x02, 0x01, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x40, + 0xc0, 0x00, 0x03, 0x7c, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x02, 0x04, 0x78, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x13, 0x0c, 0x00, 0x00, 0x07, 0x38, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x18, 0x20, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, + 0xab, 0x08, 0x94, 0x64, 0x64, 0x04, 0x0f, 0x70, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x26, 0x41, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, + 0x10, 0x11, 0x21, 0x22, 0x42, 0x40, 0x40, 0x80, 0x9f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x3e, 0xc0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xf8, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xe0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x7c, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }, + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x78, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xe0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1e, 0xe0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x81, 0x1e, + 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9e, 0x61, 0x24, 0x51, 0x4c, 0x8c, 0x80, 0x81, + 0x01, 0x0e, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xc0, 0x20, 0x10, 0x10, 0x08, 0x08, 0x04, 0x02, 0x01, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x40, + 0xc0, 0x00, 0x03, 0x7c, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x02, 0x04, 0x78, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x13, 0x0c, 0x00, 0x00, 0x07, 0x38, 0x40, 0x20, 0x20, 0x20, 0x20, 0xc0, 0x00, 0x00, 0x00, 0xf0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x18, 0x20, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x60, 0x18, 0x07, 0x80, 0x80, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x26, 0x41, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, + 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x40, 0x80, 0x9f, 0xe0, 0x00, 0x7f, 0x7f, 0x7f, 0x7e, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x3e, 0xc0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xf8, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xe0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x7c, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }, + }; + +static void render_anim(void) { + // idle anim + void animation_phase(void) { + if (!tap_anim) { + current_idle_frame = (current_idle_frame + 1) % IDLE_FRAMES; + oled_write_raw_P(idle_frames[abs((IDLE_FRAMES - 1) - current_idle_frame)], ANIM_SIZE); + } + } + + // idle behaviour + if (get_current_wpm() != 000) { // prevent sleep + oled_on(); + if (timer_elapsed32(anim_timer) > IDLE_FRAME_DURATION) { + anim_timer = timer_read32(); + animation_phase(); + } + anim_sleep = timer_read32(); + } else { // turn off screen when timer threshold elapsed or reset time since last input + if (timer_elapsed32(anim_sleep) > OLED_TIMEOUT) { + oled_off(); + } else { + if (timer_elapsed32(anim_timer) > IDLE_FRAME_DURATION) { + anim_timer = timer_read32(); + animation_phase(); + } + } + } +} + +// animate tap? +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + process_record_remote_kb(keycode, record); + // check if non-mod + if ((keycode >= KC_A && keycode <= KC_0) || (keycode >= KC_TAB && keycode <= KC_SLASH)) { + if (record->event.pressed) { + // display tap frames + tap_anim_toggle = !tap_anim_toggle; + oled_write_raw_P(tap_frames[tap_anim_toggle], ANIM_SIZE); // hacky; only 2 frames so bool works in this scenario (return 0/1) + } + } + return true; +} + +void oled_task_user(void) { + render_anim(); + oled_set_cursor(0, 14); + sprintf(wpm_str, ">%04d", get_current_wpm()); + oled_write_ln(wpm_str, false); +} +#endif diff --git a/keyboards/nullbitsco/nibble/keymaps/oled_bongocat/readme.md b/keyboards/nullbitsco/nibble/keymaps/oled_bongocat/readme.md new file mode 100644 index 000000000000..303bed897542 --- /dev/null +++ b/keyboards/nullbitsco/nibble/keymaps/oled_bongocat/readme.md @@ -0,0 +1,7 @@ +# The Bongo Cat WPM Layout! + +![Oled Preview](http://i.imgur.com/e2QHJnn.png) + +If you're looking for the Bongo Cat/WPM Counter firmware for your Nibble, this is it! The OLED occupies the bottom two left macro key spots, so there isn't anything assigned. However, if you've manually wired the oled to a different position, you can assign keys to those locations. This uses the default keymap layout so everything is where you expect it to be. + +![Layout Image](http://i.imgur.com/5Q6BzAe.png) \ No newline at end of file diff --git a/keyboards/nullbitsco/nibble/keymaps/oled_bongocat/rules.mk b/keyboards/nullbitsco/nibble/keymaps/oled_bongocat/rules.mk new file mode 100644 index 000000000000..53784c69f9a0 --- /dev/null +++ b/keyboards/nullbitsco/nibble/keymaps/oled_bongocat/rules.mk @@ -0,0 +1,2 @@ +OLED_DRIVER_ENABLE = yes +WPM_ENABLE = yes \ No newline at end of file diff --git a/keyboards/primekb/prime_e/keymaps/ifohancroft/config.h b/keyboards/primekb/prime_e/keymaps/ifohancroft/config.h new file mode 100644 index 000000000000..9a0d0e54f71b --- /dev/null +++ b/keyboards/primekb/prime_e/keymaps/ifohancroft/config.h @@ -0,0 +1,21 @@ +/* Copyright 2021 IFo Hancroft + * + * 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 . + */ + +#pragma once + +// place overrides here +#define USB_POLLING_INTERVAL_MS 1 +#define FORCE_NKRO diff --git a/keyboards/primekb/prime_e/keymaps/ifohancroft/keymap.c b/keyboards/primekb/prime_e/keymaps/ifohancroft/keymap.c new file mode 100644 index 000000000000..666153ea2c14 --- /dev/null +++ b/keyboards/primekb/prime_e/keymaps/ifohancroft/keymap.c @@ -0,0 +1,92 @@ +/* Copyright 2021 IFo Hancroft + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* Default Layer + * ------------------------------------------------------------------------------------------------------------------------------ + * | Tab || Q || W || E || R || T || || Y || U || I || O || P || [ || ] | + * |----------------------------------------------------------------------------------------------------------------------------| + * | ESC || A || S || D || F || G || || H || J || K || L || ; || Enter || | + * |----------------------------------------------------------------------------------------------------------------------------| + * | Shift || Z || X || C || V || B || || N || M || , || . || / || " || Shift | + * |----------------------------------------------------------------------------------------------------------------------------| + * | Ctrl || Super || || || Alt || Bkspc || || Space || MO(1) || || || || Alt || Ctrl | + * ------------------------------------------------------------------------------------------------------------------------------ + */ + LAYOUT( + 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_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, 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_QUOT, KC_RSFT, + KC_LCTL, KC_LWIN, KC_LALT, KC_BSPC, KC_SPC, MO(1), KC_RALT, KC_RCTL + ), + + /* Secondary Layer + * ------------------------------------------------------------------------------------------------------------------------------ + * | ` || 1 || 2 || 3 || 4 || 5 || || 6 || 7 || 8 || 9 || 0 || - || = | + * |----------------------------------------------------------------------------------------------------------------------------| + * | || || || || || \ || || Left || Down || Up || Right || Del || || | + * |----------------------------------------------------------------------------------------------------------------------------| + * | || F1 || F2 || F3 || F4 || F5 || || F6 || F7 || F8 || F9 || F10 || F11 || F12 | + * |----------------------------------------------------------------------------------------------------------------------------| + * | || || || || || || || || || || || || || | + * ------------------------------------------------------------------------------------------------------------------------------ + */ + 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_EQL, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BSLS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_DEL, KC_TRNS, + 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_F12, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + /* Empty Layer + * ------------------------------------------------------------------------------------------------------------------------------ + * | || || || || || || || || || || || || || | + * |----------------------------------------------------------------------------------------------------------------------------| + * | || || || || || || || || || || || || || | + * |----------------------------------------------------------------------------------------------------------------------------| + * | || || || || || || || || || || || || || | + * |----------------------------------------------------------------------------------------------------------------------------| + * | || || || || || || || || || || || || || | + * ------------------------------------------------------------------------------------------------------------------------------ + */ + 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, 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 + ), + + /* Empty Layer + * ------------------------------------------------------------------------------------------------------------------------------ + * | || || || || || || || || || || || || || | + * |----------------------------------------------------------------------------------------------------------------------------| + * | || || || || || || || || || || || || || | + * |----------------------------------------------------------------------------------------------------------------------------| + * | || || || || || || || || || || || || || | + * |----------------------------------------------------------------------------------------------------------------------------| + * | || || || || || || || || || || || || || | + * ------------------------------------------------------------------------------------------------------------------------------ + */ + 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, 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 + ) +}; diff --git a/keyboards/primekb/prime_e/keymaps/ifohancroft/readme.md b/keyboards/primekb/prime_e/keymaps/ifohancroft/readme.md new file mode 100644 index 000000000000..06c15f76737d --- /dev/null +++ b/keyboards/primekb/prime_e/keymaps/ifohancroft/readme.md @@ -0,0 +1,13 @@ +Will add layout image later when I get a KLE. + +# IFo Hancroft's Prime_E Layout + + - Layer 1: A standard 45% ANSI QWERTY layer. It contains the alphabet, as well as a couple of special characters. + - Layer 2: A function layer. It contains the number keys, the F1-12 keys, as well as the rest of the special characters that do not fit on Layer 1. + - Layer 3: An empty layer in-case I need something on-the-fly so I can remap with VIA. + - Layer 4: An empty layer in-case I need something on-the-fly so I can remap with VIA. + +This keymap also sets the polling rate of the keyboard to 1ms, forces NKRO on, disables the EXTRAKEY feature, and enables the following features: + + - COMMAND + - VIA diff --git a/keyboards/primekb/prime_e/keymaps/ifohancroft/rules.mk b/keyboards/primekb/prime_e/keymaps/ifohancroft/rules.mk new file mode 100644 index 000000000000..625a37dc4476 --- /dev/null +++ b/keyboards/primekb/prime_e/keymaps/ifohancroft/rules.mk @@ -0,0 +1,3 @@ +EXTRAKEY_ENABLE = no +COMMAND_ENABLE = yes +VIA_ENABLE = yes diff --git a/keyboards/program_yoink/ortho/ortho.h b/keyboards/program_yoink/ortho/ortho.h index c906d2e24745..964c0e363b18 100644 --- a/keyboards/program_yoink/ortho/ortho.h +++ b/keyboards/program_yoink/ortho/ortho.h @@ -45,11 +45,11 @@ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, \ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, \ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, \ - K30, K31, K32, K34, K36, K38, K39, K3A, K3B, K3C \ + K30, K31, K32, K34, K37, K38, K39, K3A, K3B, K3C \ ) \ { \ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C }, \ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C }, \ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C }, \ - { K30, K31, K32, XXX, K34, XXX, K36, XXX, K38, K39, K3A, K3B, K3C } \ + { K30, K31, K32, XXX, K34, XXX, XXX, K37, K38, K39, K3A, K3B, K3C } \ } diff --git a/keyboards/sixkeyboard/keymaps/semicolonsnet/keymap.c b/keyboards/sixkeyboard/keymaps/semicolonsnet/keymap.c new file mode 100644 index 000000000000..86fdc90b65e1 --- /dev/null +++ b/keyboards/sixkeyboard/keymaps/semicolonsnet/keymap.c @@ -0,0 +1,42 @@ +/* Copyright 2021 Chase Nordengren + * + * 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 . + */ + +#include QMK_KEYBOARD_H + + +enum custom_keycodes { + QMKPASS = SAFE_RANGE, +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QMKPASS: + if (record->event.pressed) { + // when keycode QMKPASS is pressed + SEND_STRING("Sample string"); + } else { + // when keycode QMKPASS is released + } + break; + } + return true; +}; + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT(KC_ESC, SGUI(KC_R), SGUI(KC_S), QMKPASS, SGUI(KC_A), SGUI(KC_V)) +}; + diff --git a/keyboards/sixkeyboard/keymaps/semicolonsnet/readme.md b/keyboards/sixkeyboard/keymaps/semicolonsnet/readme.md new file mode 100644 index 000000000000..e791b12a653b --- /dev/null +++ b/keyboards/sixkeyboard/keymaps/semicolonsnet/readme.md @@ -0,0 +1,29 @@ +Techkeys SixKeyBoard +=== + +Keyboard Maintainer: QMK Community +Hardware Supported: Techkeys SixKeyBoard PCB +Hardware Availability: [Techkeys](http://techkeys.us/collections/accessories/products/sixkeyboard) + +Make example for this keyboard (after setting up your build environment): + + make sixkeyboard:semicolonsnet + +See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. + +## Hardware Info + +The schematic is like this: + +``` + switches leds +,--+--+--. ,--+--+--. +|C7|B7|B5| |C6|B6|B4| ++--+--+--+ +--+--+--+ +|D6|D1|D4| |D5|D2|D3| +`--+--+--' `--+--+--' +``` + +The LED on the bottom is `C4`. All 7 of the leds are turned on when the keyboard boots-up in the `sixkeyboard.c` file - backlight_enable is not required. The MCU is an Atmega16u2, so the flash memory is limited to 0x3000 bytes - the current setup uses just about all of that! I'm sure things can be opitimised a bit. + +There is a jumper on the bottom of the board (next to the USB port) that serves as a reset button - I drilled a hole in my case to allow for quick access via a screwdriver/metal object. diff --git a/keyboards/trashman/ketch/config.h b/keyboards/trashman/ketch/config.h new file mode 100644 index 000000000000..93e6479a155e --- /dev/null +++ b/keyboards/trashman/ketch/config.h @@ -0,0 +1,44 @@ +/* +Copyright 2021 Evan Sailer, Jetpacktuxedo, & QMK Firmware + +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. +*/ + +#pragma once +#include "config_common.h" + +#define VENDOR_ID 0xFEAE +#define PRODUCT_ID 0x8947 +#define DEVICE_VER 0x0001 +#define MANUFACTURER trash man +#define PRODUCT Ketch + +#define MATRIX_ROWS 6 +#define MATRIX_COLS 8 +#define MATRIX_ROW_PINS { F5, F1, F0, F7, B6, F6 } +#define MATRIX_COL_PINS { D0, D1, D2, D3, D4, D5, D6, D7 } +#define DIODE_DIRECTION COL2ROW +#define DEBOUNCE 5 + +#define USB_MAX_POWER_CONSUMPTION 100 +#define RGB_DI_PIN F4 +#define RGBLED_NUM 10 +#define RGBLIGHT_ANIMATIONS +#define RGBLIGHT_SLEEP +#define NO_USB_STARTUP_CHECK diff --git a/keyboards/trashman/ketch/info.json b/keyboards/trashman/ketch/info.json new file mode 100644 index 000000000000..bb69106b3d0b --- /dev/null +++ b/keyboards/trashman/ketch/info.json @@ -0,0 +1,53 @@ +{ + "keyboard_name": "ketch", + "url": "https://trashman.wiki/pcbs/ketch", + "maintainer": "jetpacktuxedo", + "width": 12.75, + "height": 4, + "layouts": { + "LAYOUT": { + "layout": [ + {"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0, "w":1.75}, + {"x":0, "y":1, "w":1.25}, {"x":1.25, "y":1}, {"x":2.25, "y":1}, {"x":3.25, "y":1}, {"x":4.25, "y":1}, {"x":5.25, "y":1}, {"x":6.25, "y":1}, {"x":7.25, "y":1}, {"x":8.25, "y":1}, {"x":9.25, "y":1}, {"x":10.25, "y":1}, {"x":11.25, "y":1, "w":1.5}, + {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, + {"x":0, "y":3, "w":1.25}, {"x":1.25, "y":3, "w":1.5}, {"x":2.75, "y":3, "w":1.25}, {"x":4, "y":3, "w":2.25}, {"x":6.25, "y":3, "w":2}, {"x":8.25, "y":3, "w":1.25}, {"x":9.5, "y":3, "w":1.5}, {"x":11, "y":3, "w":1.75} + ] + }, + + "LAYOUT_arrow": { + "layout": [ + {"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0, "w":1.75}, + {"x":0, "y":1, "w":1.25}, {"x":1.25, "y":1}, {"x":2.25, "y":1}, {"x":3.25, "y":1}, {"x":4.25, "y":1}, {"x":5.25, "y":1}, {"x":6.25, "y":1}, {"x":7.25, "y":1}, {"x":8.25, "y":1}, {"x":9.25, "y":1}, {"x":10.25, "y":1}, {"x":11.25, "y":1, "w":1.5}, + {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, + {"x":0, "y":3, "w":1.25}, {"x":1.25, "y":3, "w":1.5}, {"x":2.75, "y":3, "w":1.25}, {"x":4, "y":3, "w":2.25}, {"x":6.25, "y":3, "w":2}, {"x":8.25, "y":3, "w":1.5}, {"x":9.75, "y":3}, {"x":10.75, "y":3}, {"x":11.75, "y":3} + ] + }, + + "LAYOUT_command": { + "layout": [ + {"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0, "w":1.75}, + {"x":0, "y":1, "w":1.25}, {"x":1.25, "y":1}, {"x":2.25, "y":1}, {"x":3.25, "y":1}, {"x":4.25, "y":1}, {"x":5.25, "y":1}, {"x":6.25, "y":1}, {"x":7.25, "y":1}, {"x":8.25, "y":1}, {"x":9.25, "y":1}, {"x":10.25, "y":1}, {"x":11.25, "y":1, "w":1.5}, + {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, + {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}, {"x":4, "y":3, "w":2.25}, {"x":6.25, "y":3, "w":2}, {"x":8.25, "y":3, "w":1.25}, {"x":9.5, "y":3, "w":1.5}, {"x":11, "y":3, "w":1.75} + ] + }, + + "LAYOUT_all": { + "layout": [ + {"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0, "w":1.75}, + {"x":0, "y":1, "w":1.25}, {"x":1.25, "y":1}, {"x":2.25, "y":1}, {"x":3.25, "y":1}, {"x":4.25, "y":1}, {"x":5.25, "y":1}, {"x":6.25, "y":1}, {"x":7.25, "y":1}, {"x":8.25, "y":1}, {"x":9.25, "y":1}, {"x":10.25, "y":1}, {"x":11.25, "y":1, "w":1.5}, + {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, + {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}, {"x":4, "y":3, "w":2.25}, {"x":6.25, "y":3, "w":2}, {"x":8.25, "y":3, "w":1.5}, {"x":9.75, "y":3}, {"x":10.75, "y":3}, {"x":11.75, "y":3} + ] + }, + "LAYOUT_jetvan": { + "layout": [ + {"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0, "w":1.75}, + {"x":0, "y":1, "w":1.25}, {"x":1.25, "y":1}, {"x":2.25, "y":1}, {"x":3.25, "y":1}, {"x":4.25, "y":1}, {"x":5.25, "y":1}, {"x":6.25, "y":1}, {"x":7.25, "y":1}, {"x":8.25, "y":1}, {"x":9.25, "y":1}, {"x":10.25, "y":1}, {"x":11.25, "y":1, "w":1.5}, + {"x":0, "y":2, "w":1.75}, {"x":1.75, "y":2}, {"x":2.75, "y":2}, {"x":3.75, "y":2}, {"x":4.75, "y":2}, {"x":5.75, "y":2}, {"x":6.75, "y":2}, {"x":7.75, "y":2}, {"x":8.75, "y":2}, {"x":9.75, "y":2}, {"x":10.75, "y":2}, {"x":11.75, "y":2}, + {"x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"x":2.25, "y":3, "w":1.25}, {"x":3.5, "w":6.25, "y":3}, {"x":9.75, "y":3}, {"x":10.75, "y":3}, {"x":11.75, "y":3} + ] + } + } +} + diff --git a/keyboards/trashman/ketch/ketch.c b/keyboards/trashman/ketch/ketch.c new file mode 100644 index 000000000000..5c38f476644a --- /dev/null +++ b/keyboards/trashman/ketch/ketch.c @@ -0,0 +1,23 @@ +/* +Copyright 2021 Evan Sailer, Jetpacktuxedo, & QMK Firmware + +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. +*/ + +#include "ketch.h" diff --git a/keyboards/trashman/ketch/ketch.h b/keyboards/trashman/ketch/ketch.h new file mode 100644 index 000000000000..9a20ecf1f1ff --- /dev/null +++ b/keyboards/trashman/ketch/ketch.h @@ -0,0 +1,96 @@ +/* +Copyright 2021 Evan Sailer, Jetpacktuxedo, & QMK Firmware + +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. +*/ + +#pragma once +#include "quantum.h" + +#define LAYOUT(\ + K39, K40, K41, K42, K0, K1, K2, K3, K4, K5, K6, K7,\ + K32, K33, K34, K35, K8, K9, K10, K11, K12, K13, K14, K15,\ + K38, K45, K44, K36, K16, K17, K18, K19, K20, K21, K22, K23,\ + K37, K43, K24, K26, K27, K28, K29, K31\ +) {\ + { K0, K1, K2, K3, K4, K5, K6, K7 },\ + { K8, K9, K10, K11, K12, K13, K14, K15 },\ + { K16, K17, K18, K19, K20, K21, K22, K23 },\ + { K24, KC_NO, K26, K27, K28, K29, KC_NO, K31 },\ + { K32, K33, K34, K35, K36, K37, K38, KC_NO },\ + { K39, K40, K41, K42, K43, K44, K45, KC_NO }\ +} + +#define LAYOUT_arrow(\ + K39, K40, K41, K42, K0, K1, K2, K3, K4, K5, K6, K7,\ + K32, K33, K34, K35, K8, K9, K10, K11, K12, K13, K14, K15,\ + K38, K45, K44, K36, K16, K17, K18, K19, K20, K21, K22, K23,\ + K37, K43, K24, K26, K27, K28, K29, K30, K31\ +) {\ + { K0, K1, K2, K3, K4, K5, K6, K7 }, \ + { K8, K9, K10, K11, K12, K13, K14, K15 }, \ + { K16, K17, K18, K19, K20, K21, K22, K23 }, \ + { K24, KC_NO, K26, K27, K28, K29, K30, K31 }, \ + { K32, K33, K34, K35, K36, K37, K38, KC_NO }, \ + { K39, K40, K41, K42, K43, K44, K45, KC_NO } \ +} + +#define LAYOUT_command(\ + K39, K40, K41, K42, K0, K1, K2, K3, K4, K5, K6, K7,\ + K32, K33, K34, K35, K8, K9, K10, K11, K12, K13, K14, K15,\ + K38, K45, K44, K36, K16, K17, K18, K19, K20, K21, K22, K23,\ + K37, K43, K24, K25, K26, K27, K28, K29, K31\ +) {\ + { K0, K1, K2, K3, K4, K5, K6, K7 }, \ + { K8, K9, K10, K11, K12, K13, K14, K15 }, \ + { K16, K17, K18, K19, K20, K21, K22, K23 }, \ + { K24, K25, K26, K27, K28, K29, KC_NO, K31 }, \ + { K32, K33, K34, K35, K36, K37, K38, KC_NO }, \ + { K39, K40, K41, K42, K43, K44, K45, KC_NO } \ +} + +// This layout is typically called "southpaw_arrow" or "southpaw + arrow", but +// using "all" here to match typical qmk conventions +#define LAYOUT_all(\ + K39, K40, K41, K42, K0, K1, K2, K3, K4, K5, K6, K7,\ + K32, K33, K34, K35, K8, K9, K10, K11, K12, K13, K14, K15,\ + K38, K45, K44, K36, K16, K17, K18, K19, K20, K21, K22, K23,\ + K37, K43, K24, K25, K26, K27, K28, K29, K30, K31\ +) {\ + { K0, K1, K2, K3, K4, K5, K6, K7 }, \ + { K8, K9, K10, K11, K12, K13, K14, K15 }, \ + { K16, K17, K18, K19, K20, K21, K22, K23 }, \ + { K24, K25, K26, K27, K28, K29, K30, K31 }, \ + { K32, K33, K34, K35, K36, K37, K38, KC_NO }, \ + { K39, K40, K41, K42, K43, K44, K45, KC_NO } \ +} + +#define LAYOUT_jetvan(\ + K39, K40, K41, K42, K0, K1, K2, K3, K4, K5, K6, K7,\ + K32, K33, K34, K35, K8, K9, K10, K11, K12, K13, K14, K15,\ + K38, K45, K44, K36, K16, K17, K18, K19, K20, K21, K22, K23,\ + K37, K43, K24, K27, K29, K30, K31\ +) {\ + { K0, K1, K2, K3, K4, K5, K6, K7 }, \ + { K8, K9, K10, K11, K12, K13, K14, K15 }, \ + { K16, K17, K18, K19, K20, K21, K22, K23 }, \ + { K24, KC_NO, KC_NO, K27, KC_NO, K29, K30, K31 }, \ + { K32, K33, K34, K35, K36, K37, K38, KC_NO }, \ + { K39, K40, K41, K42, K43, K44, K45, KC_NO } \ +} diff --git a/keyboards/trashman/ketch/keymaps/default/keymap.c b/keyboards/trashman/ketch/keymaps/default/keymap.c new file mode 100644 index 000000000000..5d2220a4f427 --- /dev/null +++ b/keyboards/trashman/ketch/keymaps/default/keymap.c @@ -0,0 +1,44 @@ +/* +Copyright 2021 Evan Sailer, Jetpacktuxedo, & QMK Firmware + +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. +*/ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_all( /* Qwerty */ + KC_GESC, 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_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, MT(MOD_RSFT, KC_SLSH), + KC_LCTL, KC_LGUI, KC_LALT, MO(1), KC_SPC, KC_SPC, MO(2), KC_LEFT, KC_DOWN, KC_RIGHT + ), + [1] = LAYOUT_all( /* Number+Symbol Layer */ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, + KC_TRNS, KC_MINS, KC_EQL, KC_SCLN, KC_QUOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_QUOT, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_PGUP, KC_BSLS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END + ), + [2] = LAYOUT_all( /* Shifted Layer */ + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, + KC_TRNS, KC_UNDS, KC_PLUS, KC_COLN, KC_DQUO, KC_TRNS, KC_TRNS, KC_TRNS, KC_UNDS, KC_PLUS, KC_DQUO, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LCBR, KC_RCBR, KC_PGUP, KC_PIPE, + KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END + ) +}; diff --git a/keyboards/trashman/ketch/keymaps/jetpacktuxedo/config.h b/keyboards/trashman/ketch/keymaps/jetpacktuxedo/config.h new file mode 100644 index 000000000000..64f73ab021a7 --- /dev/null +++ b/keyboards/trashman/ketch/keymaps/jetpacktuxedo/config.h @@ -0,0 +1,26 @@ +/* +Copyright 2021 Evan Sailer, Jetpacktuxedo, & QMK Firmware + +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. +*/ + +#pragma once + +#define RGBLIGHT_LAYERS +#define TAPPING_TERM 150 diff --git a/keyboards/trashman/ketch/keymaps/jetpacktuxedo/keymap.c b/keyboards/trashman/ketch/keymaps/jetpacktuxedo/keymap.c new file mode 100644 index 000000000000..50b1f7a62e11 --- /dev/null +++ b/keyboards/trashman/ketch/keymaps/jetpacktuxedo/keymap.c @@ -0,0 +1,113 @@ +/* +Copyright 2021 Evan Sailer, Jetpacktuxedo, & QMK Firmware + +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. +*/ + +#include QMK_KEYBOARD_H +#include + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_jetvan( /* Qwerty */ + KC_GESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + LT(2, KC_TAB), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, LT(2, KC_ENT), + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, MT(MOD_RSFT, KC_SLSH), + KC_LCTL, KC_LGUI, KC_LALT, LT(1, KC_SPC), KC_LEFT, KC_DOWN, KC_RIGHT + ), + [1] = LAYOUT_jetvan( /* LAYER 1 */ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, + KC_TRNS, KC_MINS, KC_EQL, KC_SCLN, KC_QUOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_QUOT, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_PGUP, KC_BSLS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END + ), + [2] = LAYOUT_jetvan( /* LAYER 2 */ + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, + KC_TRNS, KC_UNDS, KC_PLUS, KC_COLN, KC_DQUO, KC_TRNS, KC_TRNS, KC_TRNS, KC_UNDS, KC_PLUS, KC_DQUO, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LCBR, KC_RCBR, KC_PGUP, KC_PIPE, + KC_TRNS, TG(4), MO(3), KC_TRNS, KC_HOME, KC_PGDN, KC_END + ), + [3] = LAYOUT_jetvan( /* LAYER 3 */ + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F11, KC_F12, 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 + ), + [4] = LAYOUT_jetvan( /* Gaming Layer*/ + KC_ESC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_WH_U, KC_BTN1, KC_MS_U, KC_BTN2, KC_TRNS, KC_TRNS, + KC_TAB, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_WH_D, KC_MS_L, KC_MS_D, KC_MS_R, 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, LT(5, KC_SLSH), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [5] = LAYOUT_jetvan( /* RESET Layer*/ + RESET, 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 + ) +}; + +const rgblight_segment_t PROGMEM layer1[] = RGBLIGHT_LAYER_SEGMENTS( + {9, 1, HSV_RED} +); + +const rgblight_segment_t PROGMEM layer2[] = RGBLIGHT_LAYER_SEGMENTS( + {9, 1, HSV_GREEN} +); + +const rgblight_segment_t PROGMEM layer3[] = RGBLIGHT_LAYER_SEGMENTS( + {8, 1, HSV_CYAN} +); + +const rgblight_segment_t PROGMEM layer4[] = RGBLIGHT_LAYER_SEGMENTS( + {8, 1, HSV_MAGENTA} +); + +const rgblight_segment_t PROGMEM layer5[] = RGBLIGHT_LAYER_SEGMENTS( + {8, 1, HSV_YELLOW} +); + +const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST( + layer1, + layer2, + layer3, + layer4, + layer5 +); + +layer_state_t layer_state_set_user(layer_state_t state) { + rgblight_set_layer_state(0, layer_state_cmp(state, 1)); + rgblight_set_layer_state(1, layer_state_cmp(state, 2)); + rgblight_set_layer_state(2, layer_state_cmp(state, 3)); + rgblight_set_layer_state(3, layer_state_cmp(state, 4)); + rgblight_set_layer_state(4, layer_state_cmp(state, 5)); + return state; +} + +void keyboard_post_init_user(void) { + #ifdef RGBLIGHT_ENABLE + // Litearlly just doing this to lower the brightness. Since I am about to + // turn on the rainbow effect which changes the hue I don't actually care + // what that gets set to, but I am also lowering the saturation to get more + // of a pastel feel + rgblight_sethsv_noeeprom(0, 192, 128); + // Set LED effects to rainbow + rgblight_mode_noeeprom(RGBLIGHT_MODE_RAINBOW_SWIRL); + rgblight_layers = my_rgb_layers; + #endif //RGBLIGHT_ENABLE +} diff --git a/keyboards/trashman/ketch/readme.md b/keyboards/trashman/ketch/readme.md new file mode 100644 index 000000000000..d6a96183b34a --- /dev/null +++ b/keyboards/trashman/ketch/readme.md @@ -0,0 +1,23 @@ +# Ketch + +![Ketch](https://i.imgur.com/eCIrvJBl.png) + +A pcb designed to be compatible with older minivan cases as well as support most minivan layouts (+ a few new ones). +The ketch supports the following physical layouts: +![Image of supported ketch layouts](https://trashman.wiki/layouts/ketch/ketch-all_extra_condensed.png) + +Ketch was also explicitly designed to use port D for all column pins in order to support matrix scanning via a portscan rather than individually scanning each pin. This has been implemented here via a custom matrix, so enjoy your slightly more efficient matrix scanning. :P + +The PCB has exposed pads for triggering a reset. If you are looking at the bottom of the PCB, the pads are on the left chunk of the board between the usb port and the controller, right next to the bottom of the right-most homerow key (typically enter). + +More information can be found on the [trashman wiki](https://trashman.wiki/pcbs/ketch) + +* Keyboard Maintainer: [Jetpacktuxedo](https://github.com/jetpacktuxedo) +* Hardware Supported: Ketch PCB, Sketch PCB +* Hardware Availability: [Trash Man Keyboards](https://trashman.club/) + +Make example for this keyboard (after setting up your build environment): + + make trashman/ketch: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). diff --git a/keyboards/trashman/ketch/rules.mk b/keyboards/trashman/ketch/rules.mk new file mode 100644 index 000000000000..eeb3847805d8 --- /dev/null +++ b/keyboards/trashman/ketch/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/trashman/readme.md b/keyboards/trashman/readme.md new file mode 100644 index 000000000000..46df88f77d2f --- /dev/null +++ b/keyboards/trashman/readme.md @@ -0,0 +1,4 @@ +# Trash Man +Trash Man is the new brand under which Evan Sailer is creating keyboard things following the shut down of TheVan Keyboards in October 2019. Produced boards so far include V4N4G0N, Ketch, Skiff, CaraVan 2, and Garbage Truck. + +For more information see the [trashman website](https://trashman.club/) and the [trashman/van wiki](https://trashman.wiki/). diff --git a/keyboards/v60_type_r/keymaps/ifohancroft/config.h b/keyboards/v60_type_r/keymaps/ifohancroft/config.h new file mode 100644 index 000000000000..3d26fae03168 --- /dev/null +++ b/keyboards/v60_type_r/keymaps/ifohancroft/config.h @@ -0,0 +1,24 @@ +/* Copyright 2021 IFo Hancroft + * + * 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 . + */ + +#pragma once + +// place overrides here +#ifdef V60_POLESTAR +#undef V60_POLESTAR +#endif +#define USB_POLLING_INTERVAL_MS 1 +#define FORCE_NKRO diff --git a/keyboards/v60_type_r/keymaps/ifohancroft/keymap.c b/keyboards/v60_type_r/keymaps/ifohancroft/keymap.c new file mode 100644 index 000000000000..c5ed0d7ed95a --- /dev/null +++ b/keyboards/v60_type_r/keymaps/ifohancroft/keymap.c @@ -0,0 +1,105 @@ +/* Copyright 2021 IFo Hancroft + * + * 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 . + */ + +#include QMK_KEYBOARD_H + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* Default Layer + * ------------------------------------------------------------------------------------------------------------------------------ + * | ` || 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 || 9 || 0 || - || = || Bkspc | + * |----------------------------------------------------------------------------------------------------------------------------| + * | Tab || Q || W || E || R || T || Y || U || I || O || P || [ || ] || \ | + * |----------------------------------------------------------------------------------------------------------------------------| + * | ESC || A || S || D || F || G || H || J || K || L || ; || " || || Enter | + * |----------------------------------------------------------------------------------------------------------------------------| + * | Shift || Z || X || C || V || B || N || M || , || . || / || || Shift || | + * |----------------------------------------------------------------------------------------------------------------------------| + * | Ctrl || Super || Alt || || Space || || || || || TG(1) || Alt || Super || Ctrl || | + * ------------------------------------------------------------------------------------------------------------------------------ + */ + LAYOUT_60_ansi( + 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_ESC, 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_LCTL, KC_LGUI, KC_LALT, KC_SPC, TG(1), KC_RALT, KC_RGUI, KC_RCTL + ), + + /* Function Layer + * ------------------------------------------------------------------------------------------------------------------------------ + * | || F1 || F2 || F3 || F4 || F5 || F6 || F7 || F8 || F9 || F10 || F11 || F12 || Del | + * |----------------------------------------------------------------------------------------------------------------------------| + * | || || || || || || || || || || || || || | + * |----------------------------------------------------------------------------------------------------------------------------| + * | || || || || || || Left || Down || Up || Right || || || || | + * |----------------------------------------------------------------------------------------------------------------------------| + * | || || || || || || || || || || || || || | + * |----------------------------------------------------------------------------------------------------------------------------| + * | || || || || || || || || || || || || || | + * ------------------------------------------------------------------------------------------------------------------------------ + */ + LAYOUT_60_ansi( + 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_F12, KC_DEL, + 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_DOWN, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, 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 + ), + + /* Empty Layer + * ------------------------------------------------------------------------------------------------------------------------------ + * | || || || || || || || || || || || || || | + * |----------------------------------------------------------------------------------------------------------------------------| + * | || || || || || || || || || || || || || | + * |----------------------------------------------------------------------------------------------------------------------------| + * | || || || || || || || || || || || || || | + * |----------------------------------------------------------------------------------------------------------------------------| + * | || || || || || || || || || || || || || | + * |----------------------------------------------------------------------------------------------------------------------------| + * | || || || || || || || || || || || || || | + * ------------------------------------------------------------------------------------------------------------------------------ + */ + LAYOUT_60_ansi( + 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 + ), + + /* Empty Layer + * ------------------------------------------------------------------------------------------------------------------------------ + * | || || || || || || || || || || || || || | + * |----------------------------------------------------------------------------------------------------------------------------| + * | || || || || || || || || || || || || || | + * |----------------------------------------------------------------------------------------------------------------------------| + * | || || || || || || || || || || || || || | + * |----------------------------------------------------------------------------------------------------------------------------| + * | || || || || || || || || || || || || || | + * |----------------------------------------------------------------------------------------------------------------------------| + * | || || || || || || || || || || || || || | + * ------------------------------------------------------------------------------------------------------------------------------ + */ + LAYOUT_60_ansi( + 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 + ) +}; diff --git a/keyboards/v60_type_r/keymaps/ifohancroft/readme.md b/keyboards/v60_type_r/keymaps/ifohancroft/readme.md new file mode 100644 index 000000000000..b2d2249081c4 --- /dev/null +++ b/keyboards/v60_type_r/keymaps/ifohancroft/readme.md @@ -0,0 +1,13 @@ +![IFo Hancroft KBParadise V60 Type R Layout Image](https://i.imgur.com/3BGQS75.png) + +# IFo Hancroft's KBParadise V60 Type R Layout + + - Layer 1: A standard ANSI QWERTY layer. + - Layer 2: A function layer. It contains the F1-12 keys, the arrow keys and the Del key. + - Layer 3: An empty layer in-case I need something on-the-fly so I can remap with VIA. + - Layer 4: An empty layer in-case I need something on-the-fly so I can remap with VIA. + +This keymap also sets the polling rate of the keyboard to 1ms, disables the MOUSEKEY, EXTRAKEY, BACKLIGHT, RGBLIGHT and RGBLIGHT_CUSTOM_DRIVER features, and enables the following features: + + - NKRO (forced on) + - VIA diff --git a/keyboards/v60_type_r/keymaps/ifohancroft/rules.mk b/keyboards/v60_type_r/keymaps/ifohancroft/rules.mk new file mode 100644 index 000000000000..b7d5bb519858 --- /dev/null +++ b/keyboards/v60_type_r/keymaps/ifohancroft/rules.mk @@ -0,0 +1,7 @@ +MOUSEKEY_ENABLE = no +EXTRAKEY_ENABLE = no +BACKLIGHT_ENABLE = no +RGBLIGHT_ENABLE = no +RGBLIGHT_CUSTOM_DRIVER = no +NKRO_ENABLE = yes +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/xd60/keymaps/semicolonsnet/keymap.c b/keyboards/xd60/keymaps/semicolonsnet/keymap.c new file mode 100644 index 000000000000..7b1bacf0fe90 --- /dev/null +++ b/keyboards/xd60/keymaps/semicolonsnet/keymap.c @@ -0,0 +1,24 @@ +/* Copyright 2021 Chase Nordengren + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_all(KC_ESC, 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_GRV, 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, MO(1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NO, KC_ENT, KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, RSFT_T(KC_SLSH), KC_UP, KC_DEL, KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT), + [1] = LAYOUT_all(KC_GRV, 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_F13, KC_F14, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_VOLU, KC_VOLD, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, LCAG(KC_SCLN), LCAG(KC_QUOT), KC_NO, KC_TRNS, KC_TRNS, KC_NO, LCAG(KC_Z), LCAG(KC_X), LCAG(KC_ASTR), LCAG(KC_V), LCAG(KC_B), LCAG(KC_N), LCAG(KC_M), LCAG(KC_COMM), KC_INS, KC_DEL, KC_TRNS, KC_PGUP, KC_INS, KC_TRNS, KC_TRNS, KC_TRNS, LCAG(KC_SPC), KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END) +}; + +// Loop diff --git a/keyboards/xd60/keymaps/semicolonsnet/readme.md b/keyboards/xd60/keymaps/semicolonsnet/readme.md new file mode 100644 index 000000000000..b8a3ac4fff4f --- /dev/null +++ b/keyboards/xd60/keymaps/semicolonsnet/readme.md @@ -0,0 +1,13 @@ +# Semicolonsnet Keymap for XIUDI's 60% XD60 PCB + +![Semicolonsnet Keymap for XD60](https://i.imgur.com/VZygOqK.png) + +## Additional Notes +Custom Keymap for XD60 - uses a META key and lots of shortcut keys that are later software controlled + +## Build + +To build the default keymap, simply run: + + make xd60/rev2:default # XD60 rev2 + make xd60/rev3:default # XD60 rev3 \ No newline at end of file diff --git a/tmk_core/common/action.c b/tmk_core/common/action.c index 36a792135790..5936ed09eaec 100644 --- a/tmk_core/common/action.c +++ b/tmk_core/common/action.c @@ -405,74 +405,22 @@ void process_action(keyrecord_t *record, action_t action) { case ACT_MOUSEKEY: if (event.pressed) { mousekey_on(action.key.code); - switch (action.key.code) { -# if defined(PS2_MOUSE_ENABLE) || defined(POINTING_DEVICE_ENABLE) - case KC_MS_BTN1: - register_button(true, MOUSE_BTN1); - break; - case KC_MS_BTN2: - register_button(true, MOUSE_BTN2); - break; - case KC_MS_BTN3: - register_button(true, MOUSE_BTN3); - break; -# endif -# ifdef POINTING_DEVICE_ENABLE - case KC_MS_BTN4: - register_button(true, MOUSE_BTN4); - break; - case KC_MS_BTN5: - register_button(true, MOUSE_BTN5); - break; - case KC_MS_BTN6: - register_button(true, MOUSE_BTN6); - break; - case KC_MS_BTN7: - register_button(true, MOUSE_BTN7); - break; - case KC_MS_BTN8: - register_button(true, MOUSE_BTN8); - break; -# endif - default: - mousekey_send(); - break; - } } else { mousekey_off(action.key.code); - switch (action.key.code) { + } + switch (action.key.code) { # if defined(PS2_MOUSE_ENABLE) || defined(POINTING_DEVICE_ENABLE) - case KC_MS_BTN1: - register_button(false, MOUSE_BTN1); - break; - case KC_MS_BTN2: - register_button(false, MOUSE_BTN2); - break; - case KC_MS_BTN3: - register_button(false, MOUSE_BTN3); - break; -# endif -# ifdef POINTING_DEVICE_ENABLE - case KC_MS_BTN4: - register_button(false, MOUSE_BTN4); - break; - case KC_MS_BTN5: - register_button(false, MOUSE_BTN5); - break; - case KC_MS_BTN6: - register_button(false, MOUSE_BTN6); - break; - case KC_MS_BTN7: - register_button(false, MOUSE_BTN7); - break; - case KC_MS_BTN8: - register_button(false, MOUSE_BTN8); - break; +# ifdef POINTING_DEVICE_ENABLE + case KC_MS_BTN1 ... KC_MS_BTN8: +# else + case KC_MS_BTN1 ... KC_MS_BTN3: +# endif + register_button(event.pressed, MOUSE_BTN_MASK(action.key.code - KC_MS_BTN1)); + break; # endif - default: - mousekey_send(); - break; - } + default: + mousekey_send(); + break; } break; #endif diff --git a/tmk_core/common/report.h b/tmk_core/common/report.h index bcf5cab388de..606a25964363 100644 --- a/tmk_core/common/report.h +++ b/tmk_core/common/report.h @@ -34,15 +34,16 @@ enum hid_report_ids { }; /* Mouse buttons */ +#define MOUSE_BTN_MASK(n) (1 << (n)) enum mouse_buttons { - MOUSE_BTN1 = (1 << 0), - MOUSE_BTN2 = (1 << 1), - MOUSE_BTN3 = (1 << 2), - MOUSE_BTN4 = (1 << 3), - MOUSE_BTN5 = (1 << 4), - MOUSE_BTN6 = (1 << 5), - MOUSE_BTN7 = (1 << 6), - MOUSE_BTN8 = (1 << 7) + MOUSE_BTN1 = MOUSE_BTN_MASK(0), + MOUSE_BTN2 = MOUSE_BTN_MASK(1), + MOUSE_BTN3 = MOUSE_BTN_MASK(2), + MOUSE_BTN4 = MOUSE_BTN_MASK(3), + MOUSE_BTN5 = MOUSE_BTN_MASK(4), + MOUSE_BTN6 = MOUSE_BTN_MASK(5), + MOUSE_BTN7 = MOUSE_BTN_MASK(6), + MOUSE_BTN8 = MOUSE_BTN_MASK(7) }; /* Consumer Page (0x0C)