logo

qmk_firmware

custom branch of QMK firmware git clone https://anongit.hacktivis.me/git/qmk_firmware.git
commit: 24895c46f3b513483964b2ad79916f0e589dd168
parent 190e0eff23b748e9b96f0b93a0bc57b6683356b1
Author: ivan <81021475+ivndbt@users.noreply.github.com>
Date:   Mon, 19 May 2025 23:15:19 +0200

Move rookiebwoy to ivndbt (#25142)


Diffstat:

Mdata/mappings/keyboard_aliases.hjson14++++++++++----
Akeyboards/ivndbt/late9/readme.md26++++++++++++++++++++++++++
Akeyboards/ivndbt/late9/rev1/config.h20++++++++++++++++++++
Akeyboards/ivndbt/late9/rev1/keyboard.json58++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Akeyboards/ivndbt/late9/rev1/keymaps/default/keymap.c85+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Akeyboards/ivndbt/late9/rev1/readme.md5+++++
Akeyboards/ivndbt/late9/rev1/rev1.c61+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Akeyboards/ivndbt/neopad/readme.md25+++++++++++++++++++++++++
Akeyboards/ivndbt/neopad/rev1/config.h21+++++++++++++++++++++
Akeyboards/ivndbt/neopad/rev1/keyboard.json49+++++++++++++++++++++++++++++++++++++++++++++++++
Akeyboards/ivndbt/neopad/rev1/keymaps/default/keymap.c154+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Akeyboards/ivndbt/neopad/rev1/readme.md5+++++
Akeyboards/ivndbt/neopad/rev1/rev1.c65+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Dkeyboards/rookiebwoy/late9/readme.md26--------------------------
Dkeyboards/rookiebwoy/late9/rev1/config.h20--------------------
Dkeyboards/rookiebwoy/late9/rev1/keyboard.json58----------------------------------------------------------
Dkeyboards/rookiebwoy/late9/rev1/keymaps/default/keymap.c85-------------------------------------------------------------------------------
Dkeyboards/rookiebwoy/late9/rev1/readme.md5-----
Dkeyboards/rookiebwoy/late9/rev1/rev1.c61-------------------------------------------------------------
Dkeyboards/rookiebwoy/neopad/readme.md25-------------------------
Dkeyboards/rookiebwoy/neopad/rev1/config.h21---------------------
Dkeyboards/rookiebwoy/neopad/rev1/keyboard.json49-------------------------------------------------
Dkeyboards/rookiebwoy/neopad/rev1/keymaps/default/keymap.c154-------------------------------------------------------------------------------
Dkeyboards/rookiebwoy/neopad/rev1/readme.md5-----
Dkeyboards/rookiebwoy/neopad/rev1/rev1.c65-----------------------------------------------------------------
25 files changed, 584 insertions(+), 578 deletions(-)

diff --git a/data/mappings/keyboard_aliases.hjson b/data/mappings/keyboard_aliases.hjson @@ -1042,7 +1042,7 @@ "target": "kprepublic/bm68hsrgb/rev1" }, "late9/rev1": { - "target": "rookiebwoy/late9/rev1" + "target": "ivndbt/late9/rev1" }, "latin17rgb": { "target": "latincompass/latin17rgb" @@ -1207,7 +1207,7 @@ "target": "spaceholdings/nebula68b" }, "neopad/rev1": { - "target": "rookiebwoy/neopad/rev1" + "target": "ivndbt/neopad/rev1" }, "niu_mini": { "target": "kbdfans/niu_mini" @@ -2104,10 +2104,16 @@ "target": "rmi_kb/wete/v2" }, "rookiebwoy/late9": { - "target": "rookiebwoy/late9/rev1" + "target": "ivndbt/late9/rev1" }, "rookiebwoy/neopad": { - "target": "rookiebwoy/neopad/rev1" + "target": "ivndbt/neopad/rev1" + }, + "ivndbt/late9": { + "target": "ivndbt/late9/rev1" + }, + "ivndbt/neopad": { + "target": "ivndbt/neopad/rev1" }, "rura66": { "target": "rura66/rev1" diff --git a/keyboards/ivndbt/late9/readme.md b/keyboards/ivndbt/late9/readme.md @@ -0,0 +1,25 @@ +# LATE-9 + + +The LATE-9 is a multi-tap input keyboard based on mobile phones from the late '90s. LATE-9 is intended as a dev board with 18 buttons and an OLED screen, made by through-hole components only. With this, you can experiment QMK OLED capabilities with very little expense. + +![LATE-9](https://i.imgur.com/QXycTC3h.jpg "LATE-9 first proto") + +* Keyboard maintainer: [ivndbt](https://github.com/ivndbt) +* Hardware supported: ProMicro, _Elite-C (not tested)_ +* Hardware Availability: LATE-9 is open source, check the [project repository](https://github.com/ivndbt/late-9) for gerbers. + +Make example for this keyboard (after setting up your build environment): + + make ivndbt/late9/rev1:default + +Flashing example for this keyboard: + + make ivndbt/late9/rev1: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 + +When asked by the terminal, short with a metal wire the pins on the backside of the board highlighted as `RST` (one is the `RESET` and the other one is `GROUND`) to enter the bootloader and let the OS detects the device.\ +After installing this firmware you can use Bootmagic to enter the bootloader while plugging in your LATE-9. By default it's the button on the upper-left of the keyboard. +\ No newline at end of file diff --git a/keyboards/ivndbt/late9/rev1/config.h b/keyboards/ivndbt/late9/rev1/config.h @@ -0,0 +1,20 @@ +/* +Copyright 2021 ivndbt + +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 <http://www.gnu.org/licenses/>. +*/ +#pragma once + +/* Oneshot interval */ +#define ONESHOT_TIMEOUT 5000 diff --git a/keyboards/ivndbt/late9/rev1/keyboard.json b/keyboards/ivndbt/late9/rev1/keyboard.json @@ -0,0 +1,58 @@ +{ + "keyboard_name": "LATE-9", + "manufacturer": "ivndbt", + "url": "https://github.com/ivndbt/late-9)", + "maintainer": "ivndbt", + "usb": { + "vid": "0x6961", + "pid": "0x3032", + "device_version": "0.1.0" + }, + "tapping": { + "term": 400 + }, + "build": { + "debounce_type": "sym_eager_pk" + }, + "matrix_pins": { + "cols": ["B5", "C6", "D4"], + "rows": ["B4", "E6", "D7", "B3", "B2", "B6"] + }, + "diode_direction": "ROW2COL", + "features": { + "bootmagic": true, + "nkro": true, + "oled": true + }, + "processor": "atmega32u4", + "bootloader": "caterina", + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1, "y": 2}, + {"matrix": [2, 2], "x": 2, "y": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3}, + {"matrix": [3, 1], "x": 1, "y": 3}, + {"matrix": [3, 2], "x": 2, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4}, + {"matrix": [4, 1], "x": 1, "y": 4}, + {"matrix": [4, 2], "x": 2, "y": 4}, + + {"matrix": [5, 0], "x": 0, "y": 5}, + {"matrix": [5, 1], "x": 1, "y": 5}, + {"matrix": [5, 2], "x": 2, "y": 5} + ] + } + } +} diff --git a/keyboards/ivndbt/late9/rev1/keymaps/default/keymap.c b/keyboards/ivndbt/late9/rev1/keymaps/default/keymap.c @@ -0,0 +1,84 @@ +/* Copyright 2021 ivndbt + * + * 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 <http://www.gnu.org/licenses/>. + */ +#include QMK_KEYBOARD_H + +// Layers declarations +enum layers { + _BL, + _OL +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* BL: Base Layer + * ,-----------------------. + * |MO(OP) | ↑ | BSPC | + * | | | | + * |-------+-------+-------| + * | <- | ↓ | -> | + * | | | | + * |-------+-------+-------| + * | 1 | 2 | 3 | + * | | | | + * |-------+-------+-------| + * | 4 | 5 | 6 | + * | | | | + * |-------+-------+-------| + * | 7 | 8 | 9 | + * | | | | + * |-------+-------+-------| + * | 0 | . | = | + * | | | | + * `-----------------------' + */ + [_BL] = LAYOUT( + MO(1), KC_UP, KC_BSPC, + KC_LEFT, KC_DOWN, KC_RIGHT, + KC_P1, KC_P2, KC_P3, + KC_P4, KC_P5, KC_P6, + KC_P7, KC_P8, KC_P9, + KC_P0, KC_PDOT, KC_PEQL + ), + +/* OP: Operators Layer + * ,-----------------------. + * |MO(OP) | ↑ | BSPC | + * | | | | + * |-------+-------+-------| + * | <- | ↓ | -> | + * | | | | + * |-------+-------+-------| + * | / | * | - | + * | | | | + * |-------+-------+-------| + * | ( | ) | + | + * | | | | + * |-------+-------+-------| + * | & | % | ^ | + * | | | | + * |-------+-------+-------| + * | | | . | = | + * | | | | + * `-----------------------' + */ + [_OL] = LAYOUT( + MO(1), KC_UP, KC_BSPC, + KC_LEFT, KC_DOWN, KC_RIGHT, + KC_PSLS, KC_PAST, KC_PMNS, + LSFT(KC_9), LSFT(KC_0), KC_PPLS, + LSFT(KC_7), LSFT(KC_5), LSFT(KC_6), + LSFT(KC_BSLS), KC_PDOT, KC_PEQL + ), +}; +\ No newline at end of file diff --git a/keyboards/ivndbt/late9/rev1/readme.md b/keyboards/ivndbt/late9/rev1/readme.md @@ -0,0 +1,5 @@ +# LATE-9 rev1 + +First (and final untill now) revision of the LATE-9. For in depth look please go to [project repository](https://github.com/ivndbt/late-9). + + diff --git a/keyboards/ivndbt/late9/rev1/rev1.c b/keyboards/ivndbt/late9/rev1/rev1.c @@ -0,0 +1,61 @@ +/* Copyright 2021 ivndbt + * + * 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 <http://www.gnu.org/licenses/>. + */ +#include "quantum.h" + +// OLED logo +#ifdef OLED_ENABLE +bool oled_task_kb(void) { + if (!oled_task_user()) { return false; } + static const char PROGMEM rb_logo[] = { + // ivndbt 128x32px + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0x78, 0x78, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 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, 0xe1, 0xe1, 0xf8, 0xf8, + 0x00, 0x00, 0x80, 0x80, 0x06, 0x06, 0xff, 0xff, 0xff, 0xff, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x98, 0xcc, 0x00, 0x80, 0xc0, 0xe0, + 0x00, 0x00, 0x00, 0xc0, 0xe0, 0x00, 0x80, 0xc0, 0xe0, 0x80, 0x40, 0x20, 0xe0, 0xe0, 0x00, 0x00, + 0xc0, 0xe0, 0x20, 0x60, 0xc8, 0xfc, 0xfc, 0x00, 0x10, 0xf8, 0xfc, 0x80, 0x40, 0x60, 0xe0, 0xc0, + 0x00, 0x50, 0xf8, 0xfc, 0x40, 0x40, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0x20, 0x20, 0x60, 0xc0, + 0xe0, 0x00, 0x80, 0xc0, 0x20, 0x60, 0xe0, 0xc0, 0x80, 0x00, 0x80, 0xc0, 0xe0, 0x80, 0x40, 0xe0, + 0xe0, 0x80, 0x40, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0xff, 0xff, 0xff, 0xff, + 0x60, 0x60, 0x01, 0x01, 0x00, 0x00, 0x1f, 0x1f, 0x87, 0x87, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1f, 0x1f, 0x08, 0x00, 0x07, 0x0f, + 0x1c, 0x18, 0x08, 0x07, 0x03, 0x00, 0x00, 0x1f, 0x1f, 0x08, 0x00, 0x00, 0x1f, 0x1f, 0x08, 0x00, + 0x07, 0x0f, 0x1c, 0x18, 0x08, 0x1f, 0x1f, 0x08, 0x00, 0x1f, 0x1f, 0x10, 0x10, 0x10, 0x0f, 0x07, + 0x00, 0x00, 0x1f, 0x1f, 0x08, 0x04, 0x00, 0x18, 0x18, 0x00, 0x07, 0x0f, 0x1c, 0x18, 0x10, 0x10, + 0x08, 0x00, 0x07, 0x0f, 0x1c, 0x18, 0x10, 0x0f, 0x07, 0x00, 0x00, 0x1f, 0x1f, 0x00, 0x00, 0x1f, + 0x1f, 0x00, 0x00, 0x1f, 0x1f, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x1e, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }; + oled_write_raw_P(rb_logo, sizeof(rb_logo)); + return false; +} + +#endif diff --git a/keyboards/ivndbt/neopad/readme.md b/keyboards/ivndbt/neopad/readme.md @@ -0,0 +1,25 @@ +# Neopad + +Neopad is a little macropad with four switches and two rotary encoders, made by through hole components only. +_Actually the number of switches is six, because even the encoder are allowed to click._ + +![Neopad](https://i.imgur.com/TgOkj2Fh.jpg "Neopad first proto") + +The Neopad in the photo above is the first prototype. See the project repository for revision 1 update and KiCad files. + +* Keyboard maintainer: [ivndbt](https://github.com/ivndbt) +* Hardware supported: ProMicro, _Elite-C (not tested)_ +* Project repository: [Neopad on github](https://github.com/ivndbt/neopad) + +Make example for this keyboard (after setting up your build environment): + + make ivndbt/neopad/rev1:default + +Flashing example for this keyboard: + + make ivndbt/neopad/rev1:default:flash + +When asked by the terminal, press the dedicated `RESET` button (the one above the 2 LEDs) to enter the bootloader and let the OS detects the device. + +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 [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + diff --git a/keyboards/ivndbt/neopad/rev1/config.h b/keyboards/ivndbt/neopad/rev1/config.h @@ -0,0 +1,21 @@ +/* +Copyright 2021 ivndbt + +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 <http://www.gnu.org/licenses/>. +*/ +#pragma once + +/* Onboard LEDs */ +#define LED_00 F6 +#define LED_01 F7 diff --git a/keyboards/ivndbt/neopad/rev1/keyboard.json b/keyboards/ivndbt/neopad/rev1/keyboard.json @@ -0,0 +1,49 @@ +{ + "keyboard_name": "neopad", + "manufacturer": "ivndbt", + "url": "https://github.com/ivndbt/neopad)", + "maintainer": "ivndbt", + "usb": { + "vid": "0x6961", + "pid": "0x3031", + "device_version": "0.1.0" + }, + "features": { + "bootmagic": true, + "console": true, + "encoder": true, + "extrakey": true, + "key_lock": true, + "mousekey": true, + "nkro": false + }, + "matrix_pins": { + "cols": ["B3", "B2", "B6"], + "rows": ["F4", "F5"] + }, + "diode_direction": "COL2ROW", + "encoder": { + "rotary": [ + {"pin_a": "D1", "pin_b": "D0"}, + {"pin_a": "D4", "pin_b": "C6"} + ] + }, + "processor": "atmega32u4", + "bootloader": "caterina", + "tapping": { + "toggle": 2 + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1} + ] + } + } +} diff --git a/keyboards/ivndbt/neopad/rev1/keymaps/default/keymap.c b/keyboards/ivndbt/neopad/rev1/keymaps/default/keymap.c @@ -0,0 +1,154 @@ +/* Copyright 2021 ivndbt + * + * 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 <http://www.gnu.org/licenses/>. + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + LAYER 0 - MUSIC + /-----------------------------` + | TO(1) | stop | mute | L ENC: prev/next song + |---------|---------|---------| + | prev | play | next | R ENC: vol up/down + \-----------------------------' + */ + [0] = LAYOUT( + TO(1), KC_MSTP, KC_MUTE, + KC_MPRV, KC_MPLY, KC_MNXT + ), + + /* + LAYER 1 - MOVEMENT IN WINDOWS + /---------------------------------------` + | TO(2) | maximize | show desktop | L ENC: change desktop + |-------------|----------|--------------| + | move window | minimize | move window | R ENC: change browser tab + change explorer window + \---------------------------------------' + */ + [1] = LAYOUT( + TO(2), LGUI(KC_UP), LGUI(KC_D), + LGUI(KC_LEFT), LGUI(KC_DOWN), LGUI(KC_RIGHT) + ), + + /* + LAYER 2 - SHORTCUT + /------------------------------` + | TO(3) | esc | task man | L ENC: redo/undo + |---------|---------|----------| + | cut | copy | paste | R ENC: mouse wheel up/down + \------------------------------' + */ + [2] = LAYOUT( + TO(3), KC_ESC, LCTL(LSFT(KC_ESC)), + LCTL(KC_X), LCTL(KC_C), LCTL(KC_V) + ), + + /* + LAYER 3 - AUDACITY + /-----------------------------` + | TO(0) | REC | canc | L ENC: pan right/left + |---------|---------|---------| + | ctrl | play | pause | R ENC: mouse wheel up/down + \-----------------------------' + */ + [3] = LAYOUT( + TO(0), LSFT(KC_R), KC_DEL, + KC_LCTL, KC_SPC, KC_P + ), + +}; + + +bool encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { /* LEFT ENCODER */ + switch (get_highest_layer(layer_state)) { + case 0: + // layer 0 - next song (CW) and previous (CCW) + if (clockwise) { + tap_code(KC_MNXT); + } else { + tap_code(KC_MPRV); + } + break; + + case 1: + // layer 1 - change desktop right (CW) and left (CCW) + if (clockwise) { + tap_code16(LCTL(LGUI(KC_RIGHT))); + } else { + tap_code16(LCTL(LGUI(KC_LEFT))); + } + break; + + case 2: + // layer 2 - redo (CW) and undo (CCW) + if (clockwise) { + tap_code16(LCTL(KC_Y)); + } else { + tap_code16(LCTL(KC_Z)); + } + break; + + case 3: + // layer 3 - pan right (CW) and left (CCW) + if (clockwise) { + tap_code(KC_WH_R); + } else { + tap_code(KC_WH_L); + } + break; + } + + } else if (index == 1) { /* RIGHT ENCODER */ + switch (get_highest_layer(layer_state)) { + case 0: + // layer 0 - volume up (CW) and down (CCW) + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + break; + + case 1: + // layer 1 - change browser tab (CW) and change explorer window (CCW) + if (clockwise) { + tap_code16(LCTL(KC_TAB)); + } else { + tap_code16(LALT(LSFT(KC_TAB))); + } + break; + + case 2: + // layer 2 - wheel up (CW) and down (CCW) + if (clockwise) { + tap_code(KC_WH_U); + } else { + tap_code(KC_WH_D); + } + break; + + case 3: + // layer 3 - wheel up (CW) and down (CCW) + if (clockwise) { + tap_code(KC_WH_U); + } else { + tap_code(KC_WH_D); + } + break; + } + } + return true; +} diff --git a/keyboards/ivndbt/neopad/rev1/readme.md b/keyboards/ivndbt/neopad/rev1/readme.md @@ -0,0 +1,5 @@ +# Neopad rev1 + +Final revision of the Neopad macropad. For in depth look please go to [project repository](https://github.com/ivndbt/neopad). + + diff --git a/keyboards/ivndbt/neopad/rev1/rev1.c b/keyboards/ivndbt/neopad/rev1/rev1.c @@ -0,0 +1,65 @@ +/* Copyright 2021 ivndbt + * + * 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 <http://www.gnu.org/licenses/>. + */ +#include "quantum.h" + +void keyboard_pre_init_kb(void) { + // Set LED IO as outputs + gpio_set_pin_output(LED_00); + gpio_set_pin_output(LED_01); + keyboard_pre_init_user(); +} + +bool shutdown_kb(bool jump_to_bootloader) { + if (!shutdown_user(jump_to_bootloader)) { + return false; + } + // Shutdown LEDs + gpio_write_pin_low(LED_00); + gpio_write_pin_low(LED_01); + return true; +} + +layer_state_t layer_state_set_kb(layer_state_t state) { + state = layer_state_set_user(state); + + // Layer LEDs act as binary indication of current layer + uint8_t layer = get_highest_layer(state); + gpio_write_pin(LED_00, layer & 0b1); + gpio_write_pin(LED_01, (layer >> 1) & 0b1); + return state; +} + +// Optional override functions below. +// You can leave any or all of these undefined. +// These are only required if you want to perform custom actions. + +void matrix_init_kb(void) { + // put your keyboard start-up code here + // runs once when the firmware starts up + uint8_t led_delay_ms = 80; + for (int i = 0; i < 2; i++) { + gpio_write_pin_high(LED_00); + gpio_write_pin_high(LED_01); + wait_ms(led_delay_ms); + gpio_write_pin_low(LED_00); + gpio_write_pin_low(LED_01); + if (i < 1) { + wait_ms(led_delay_ms); + } + } + + matrix_init_user(); +} diff --git a/keyboards/rookiebwoy/late9/readme.md b/keyboards/rookiebwoy/late9/readme.md @@ -1,25 +0,0 @@ -# LATE-9 - - -The LATE-9 is a multi-tap input keyboard based on mobile phones from the late '90s. LATE-9 is intended as a dev board with 18 buttons and an OLED screen, made by through-hole components only. With this, you can experiment QMK OLED capabilities with very little expense. - -![LATE-9](https://i.imgur.com/QXycTC3h.jpg "LATE-9 first proto") - -* Keyboard maintainer: [rookiebwoy](https://github.com/rookiebwoy) -* Hardware supported: ProMicro, _Elite-C (not tested)_ -* Hardware Availability: LATE-9 is open source, check the [project repository](https://github.com/rookiebwoy/late-9) for gerbers. - -Make example for this keyboard (after setting up your build environment): - - make rookiebwoy/late9/rev1:default - -Flashing example for this keyboard: - - make rookiebwoy/late9/rev1: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 - -When asked by the terminal, short with a metal wire the pins on the backside of the board highlighted as `RST` (one is the `RESET` and the other one is `GROUND`) to enter the bootloader and let the OS detects the device.\ -After installing this firmware you can use Bootmagic to enter the bootloader while plugging in your LATE-9. By default it's the button on the upper-left of the keyboard. -\ No newline at end of file diff --git a/keyboards/rookiebwoy/late9/rev1/config.h b/keyboards/rookiebwoy/late9/rev1/config.h @@ -1,20 +0,0 @@ -/* -Copyright 2021 rookiebwoy - -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 <http://www.gnu.org/licenses/>. -*/ -#pragma once - -/* Oneshot interval */ -#define ONESHOT_TIMEOUT 5000 diff --git a/keyboards/rookiebwoy/late9/rev1/keyboard.json b/keyboards/rookiebwoy/late9/rev1/keyboard.json @@ -1,58 +0,0 @@ -{ - "keyboard_name": "LATE-9", - "manufacturer": "rookiebwoy", - "url": "https://github.com/rookiebwoy/late-9)", - "maintainer": "rookiebwoy", - "usb": { - "vid": "0x6961", - "pid": "0x3032", - "device_version": "0.1.0" - }, - "tapping": { - "term": 400 - }, - "build": { - "debounce_type": "sym_eager_pk" - }, - "matrix_pins": { - "cols": ["B5", "C6", "D4"], - "rows": ["B4", "E6", "D7", "B3", "B2", "B6"] - }, - "diode_direction": "ROW2COL", - "features": { - "bootmagic": true, - "nkro": true, - "oled": true - }, - "processor": "atmega32u4", - "bootloader": "caterina", - "layouts": { - "LAYOUT": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - - {"matrix": [1, 0], "x": 0, "y": 1}, - {"matrix": [1, 1], "x": 1, "y": 1}, - {"matrix": [1, 2], "x": 2, "y": 1}, - - {"matrix": [2, 0], "x": 0, "y": 2}, - {"matrix": [2, 1], "x": 1, "y": 2}, - {"matrix": [2, 2], "x": 2, "y": 2}, - - {"matrix": [3, 0], "x": 0, "y": 3}, - {"matrix": [3, 1], "x": 1, "y": 3}, - {"matrix": [3, 2], "x": 2, "y": 3}, - - {"matrix": [4, 0], "x": 0, "y": 4}, - {"matrix": [4, 1], "x": 1, "y": 4}, - {"matrix": [4, 2], "x": 2, "y": 4}, - - {"matrix": [5, 0], "x": 0, "y": 5}, - {"matrix": [5, 1], "x": 1, "y": 5}, - {"matrix": [5, 2], "x": 2, "y": 5} - ] - } - } -} diff --git a/keyboards/rookiebwoy/late9/rev1/keymaps/default/keymap.c b/keyboards/rookiebwoy/late9/rev1/keymaps/default/keymap.c @@ -1,84 +0,0 @@ -/* Copyright 2021 rookiebwoy - * - * 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 <http://www.gnu.org/licenses/>. - */ -#include QMK_KEYBOARD_H - -// Layers declarations -enum layers { - _BL, - _OL -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -/* BL: Base Layer - * ,-----------------------. - * |MO(OP) | ↑ | BSPC | - * | | | | - * |-------+-------+-------| - * | <- | ↓ | -> | - * | | | | - * |-------+-------+-------| - * | 1 | 2 | 3 | - * | | | | - * |-------+-------+-------| - * | 4 | 5 | 6 | - * | | | | - * |-------+-------+-------| - * | 7 | 8 | 9 | - * | | | | - * |-------+-------+-------| - * | 0 | . | = | - * | | | | - * `-----------------------' - */ - [_BL] = LAYOUT( - MO(1), KC_UP, KC_BSPC, - KC_LEFT, KC_DOWN, KC_RIGHT, - KC_P1, KC_P2, KC_P3, - KC_P4, KC_P5, KC_P6, - KC_P7, KC_P8, KC_P9, - KC_P0, KC_PDOT, KC_PEQL - ), - -/* OP: Operators Layer - * ,-----------------------. - * |MO(OP) | ↑ | BSPC | - * | | | | - * |-------+-------+-------| - * | <- | ↓ | -> | - * | | | | - * |-------+-------+-------| - * | / | * | - | - * | | | | - * |-------+-------+-------| - * | ( | ) | + | - * | | | | - * |-------+-------+-------| - * | & | % | ^ | - * | | | | - * |-------+-------+-------| - * | | | . | = | - * | | | | - * `-----------------------' - */ - [_OL] = LAYOUT( - MO(1), KC_UP, KC_BSPC, - KC_LEFT, KC_DOWN, KC_RIGHT, - KC_PSLS, KC_PAST, KC_PMNS, - LSFT(KC_9), LSFT(KC_0), KC_PPLS, - LSFT(KC_7), LSFT(KC_5), LSFT(KC_6), - LSFT(KC_BSLS), KC_PDOT, KC_PEQL - ), -}; -\ No newline at end of file diff --git a/keyboards/rookiebwoy/late9/rev1/readme.md b/keyboards/rookiebwoy/late9/rev1/readme.md @@ -1,5 +0,0 @@ -# LATE-9 rev1 - -First (and final untill now) revision of the LATE-9. For in depth look please go to [project repository](https://github.com/rookiebwoy/late-9). - - diff --git a/keyboards/rookiebwoy/late9/rev1/rev1.c b/keyboards/rookiebwoy/late9/rev1/rev1.c @@ -1,61 +0,0 @@ -/* Copyright 2021 rookiebwoy - * - * 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 <http://www.gnu.org/licenses/>. - */ -#include "quantum.h" - -// OLED logo -#ifdef OLED_ENABLE -bool oled_task_kb(void) { - if (!oled_task_user()) { return false; } - static const char PROGMEM rb_logo[] = { - // rookiebwoy 128x32px - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0xf0, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x00, - 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0xe0, 0xe0, - 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, - 0xfc, 0xfc, 0xfc, 0x00, 0x00, 0x00, 0xe3, 0xe3, 0xe3, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0x1c, - 0x1c, 0x1c, 0xfc, 0xfc, 0xfc, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, - 0xe0, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, - 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x00, - 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x3f, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x3f, 0x3f, 0x3f, 0x38, 0x38, 0x38, 0x3f, 0x3f, 0x3f, 0x00, 0x00, 0x00, 0x3f, 0x3f, - 0x3f, 0x38, 0x38, 0x38, 0x3f, 0x3f, 0x3f, 0x00, 0x00, 0x00, 0x3f, 0x3f, 0x3f, 0x07, 0x07, 0x07, - 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, 0x3f, 0x3f, 0x3f, 0x00, 0x00, 0x00, 0x07, 0x07, 0x07, 0x3f, - 0x3f, 0x3f, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, 0x3f, 0x3f, 0x3f, 0x38, 0x38, 0x38, 0x3f, 0x3f, - 0x3f, 0x00, 0x00, 0x00, 0x3f, 0x3f, 0x3f, 0x38, 0x38, 0x38, 0x3f, 0x3f, 0x3f, 0x38, 0x38, 0x38, - 0x07, 0x07, 0x07, 0x00, 0x00, 0x00, 0x3f, 0x3f, 0x3f, 0x38, 0x38, 0x38, 0x3f, 0x3f, 0x3f, 0x00, - 0x00, 0x00, 0x07, 0x07, 0x07, 0x38, 0x38, 0x38, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x0e, 0x0e, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00 - }; - oled_write_raw_P(rb_logo, sizeof(rb_logo)); - return false; -} - -#endif diff --git a/keyboards/rookiebwoy/neopad/readme.md b/keyboards/rookiebwoy/neopad/readme.md @@ -1,25 +0,0 @@ -# Neopad - -Neopad is a little macropad with four switches and two rotary encoders, made by through hole components only. -_Actually the number of switches is six, because even the encoder are allowed to click._ - -![Neopad](https://i.imgur.com/TgOkj2Fh.jpg "Neopad first proto") - -The Neopad in the photo above is the first prototype. See the project repository for revision 1 update and KiCad files. - -* Keyboard maintainer: [rookiebwoy](https://github.com/rookiebwoy) -* Hardware supported: ProMicro, _Elite-C (not tested)_ -* Project repository: [Neopad on github](https://github.com/rookiebwoy/neopad) - -Make example for this keyboard (after setting up your build environment): - - make rookiebwoy/neopad/rev1:default - -Flashing example for this keyboard: - - make rookiebwoy/neopad/rev1:default:flash - -When asked by the terminal, press the dedicated `RESET` button (the one above the 2 LEDs) to enter the bootloader and let the OS detects the device. - -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 [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - diff --git a/keyboards/rookiebwoy/neopad/rev1/config.h b/keyboards/rookiebwoy/neopad/rev1/config.h @@ -1,21 +0,0 @@ -/* -Copyright 2021 rookiebwoy - -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 <http://www.gnu.org/licenses/>. -*/ -#pragma once - -/* Onboard LEDs */ -#define LED_00 F6 -#define LED_01 F7 diff --git a/keyboards/rookiebwoy/neopad/rev1/keyboard.json b/keyboards/rookiebwoy/neopad/rev1/keyboard.json @@ -1,49 +0,0 @@ -{ - "keyboard_name": "neopad", - "manufacturer": "rookiebwoy", - "url": "https://github.com/rookiebwoy/neopad)", - "maintainer": "rookiebwoy", - "usb": { - "vid": "0xFEED", - "pid": "0x0913", - "device_version": "0.1.0" - }, - "features": { - "bootmagic": true, - "console": true, - "encoder": true, - "extrakey": true, - "key_lock": true, - "mousekey": true, - "nkro": false - }, - "matrix_pins": { - "cols": ["B3", "B2", "B6"], - "rows": ["F4", "F5"] - }, - "diode_direction": "COL2ROW", - "encoder": { - "rotary": [ - {"pin_a": "D1", "pin_b": "D0"}, - {"pin_a": "D4", "pin_b": "C6"} - ] - }, - "processor": "atmega32u4", - "bootloader": "caterina", - "tapping": { - "toggle": 2 - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0}, - {"matrix": [0, 1], "x": 1, "y": 0}, - {"matrix": [0, 2], "x": 2, "y": 0}, - - {"matrix": [1, 0], "x": 0, "y": 1}, - {"matrix": [1, 1], "x": 1, "y": 1}, - {"matrix": [1, 2], "x": 2, "y": 1} - ] - } - } -} diff --git a/keyboards/rookiebwoy/neopad/rev1/keymaps/default/keymap.c b/keyboards/rookiebwoy/neopad/rev1/keymaps/default/keymap.c @@ -1,154 +0,0 @@ -/* Copyright 2021 rookiebwoy - * - * 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 <http://www.gnu.org/licenses/>. - */ -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* - LAYER 0 - MUSIC - /-----------------------------` - | TO(1) | stop | mute | L ENC: prev/next song - |---------|---------|---------| - | prev | play | next | R ENC: vol up/down - \-----------------------------' - */ - [0] = LAYOUT( - TO(1), KC_MSTP, KC_MUTE, - KC_MPRV, KC_MPLY, KC_MNXT - ), - - /* - LAYER 1 - MOVEMENT IN WINDOWS - /---------------------------------------` - | TO(2) | maximize | show desktop | L ENC: change desktop - |-------------|----------|--------------| - | move window | minimize | move window | R ENC: change browser tab + change explorer window - \---------------------------------------' - */ - [1] = LAYOUT( - TO(2), LGUI(KC_UP), LGUI(KC_D), - LGUI(KC_LEFT), LGUI(KC_DOWN), LGUI(KC_RIGHT) - ), - - /* - LAYER 2 - SHORTCUT - /------------------------------` - | TO(3) | esc | task man | L ENC: redo/undo - |---------|---------|----------| - | cut | copy | paste | R ENC: mouse wheel up/down - \------------------------------' - */ - [2] = LAYOUT( - TO(3), KC_ESC, LCTL(LSFT(KC_ESC)), - LCTL(KC_X), LCTL(KC_C), LCTL(KC_V) - ), - - /* - LAYER 3 - AUDACITY - /-----------------------------` - | TO(0) | REC | canc | L ENC: pan right/left - |---------|---------|---------| - | ctrl | play | pause | R ENC: mouse wheel up/down - \-----------------------------' - */ - [3] = LAYOUT( - TO(0), LSFT(KC_R), KC_DEL, - KC_LCTL, KC_SPC, KC_P - ), - -}; - - -bool encoder_update_user(uint8_t index, bool clockwise) { - if (index == 0) { /* LEFT ENCODER */ - switch (get_highest_layer(layer_state)) { - case 0: - // layer 0 - next song (CW) and previous (CCW) - if (clockwise) { - tap_code(KC_MNXT); - } else { - tap_code(KC_MPRV); - } - break; - - case 1: - // layer 1 - change desktop right (CW) and left (CCW) - if (clockwise) { - tap_code16(LCTL(LGUI(KC_RIGHT))); - } else { - tap_code16(LCTL(LGUI(KC_LEFT))); - } - break; - - case 2: - // layer 2 - redo (CW) and undo (CCW) - if (clockwise) { - tap_code16(LCTL(KC_Y)); - } else { - tap_code16(LCTL(KC_Z)); - } - break; - - case 3: - // layer 3 - pan right (CW) and left (CCW) - if (clockwise) { - tap_code(KC_WH_R); - } else { - tap_code(KC_WH_L); - } - break; - } - - } else if (index == 1) { /* RIGHT ENCODER */ - switch (get_highest_layer(layer_state)) { - case 0: - // layer 0 - volume up (CW) and down (CCW) - if (clockwise) { - tap_code(KC_VOLU); - } else { - tap_code(KC_VOLD); - } - break; - - case 1: - // layer 1 - change browser tab (CW) and change explorer window (CCW) - if (clockwise) { - tap_code16(LCTL(KC_TAB)); - } else { - tap_code16(LALT(LSFT(KC_TAB))); - } - break; - - case 2: - // layer 2 - wheel up (CW) and down (CCW) - if (clockwise) { - tap_code(KC_WH_U); - } else { - tap_code(KC_WH_D); - } - break; - - case 3: - // layer 3 - wheel up (CW) and down (CCW) - if (clockwise) { - tap_code(KC_WH_U); - } else { - tap_code(KC_WH_D); - } - break; - } - } - return true; -} diff --git a/keyboards/rookiebwoy/neopad/rev1/readme.md b/keyboards/rookiebwoy/neopad/rev1/readme.md @@ -1,5 +0,0 @@ -# Neopad rev1 - -Final revision of the Neopad macropad. For in depth look please go to [project repository](https://github.com/rookiebwoy/neopad). - - diff --git a/keyboards/rookiebwoy/neopad/rev1/rev1.c b/keyboards/rookiebwoy/neopad/rev1/rev1.c @@ -1,65 +0,0 @@ -/* Copyright 2021 rookiebwoy - * - * 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 <http://www.gnu.org/licenses/>. - */ -#include "quantum.h" - -void keyboard_pre_init_kb(void) { - // Set LED IO as outputs - gpio_set_pin_output(LED_00); - gpio_set_pin_output(LED_01); - keyboard_pre_init_user(); -} - -bool shutdown_kb(bool jump_to_bootloader) { - if (!shutdown_user(jump_to_bootloader)) { - return false; - } - // Shutdown LEDs - gpio_write_pin_low(LED_00); - gpio_write_pin_low(LED_01); - return true; -} - -layer_state_t layer_state_set_kb(layer_state_t state) { - state = layer_state_set_user(state); - - // Layer LEDs act as binary indication of current layer - uint8_t layer = get_highest_layer(state); - gpio_write_pin(LED_00, layer & 0b1); - gpio_write_pin(LED_01, (layer >> 1) & 0b1); - return state; -} - -// Optional override functions below. -// You can leave any or all of these undefined. -// These are only required if you want to perform custom actions. - -void matrix_init_kb(void) { - // put your keyboard start-up code here - // runs once when the firmware starts up - uint8_t led_delay_ms = 80; - for (int i = 0; i < 2; i++) { - gpio_write_pin_high(LED_00); - gpio_write_pin_high(LED_01); - wait_ms(led_delay_ms); - gpio_write_pin_low(LED_00); - gpio_write_pin_low(LED_01); - if (i < 1) { - wait_ms(led_delay_ms); - } - } - - matrix_init_user(); -}