mirror of
https://github.com/qmk/qmk_firmware.git
synced 2025-08-14 09:31:12 +00:00
Compare commits
24 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
6461087c86 | ||
![]() |
7aa74c227b | ||
![]() |
0fd95e5db5 | ||
![]() |
8f30f4170c | ||
![]() |
ad4cfffe3d | ||
![]() |
2dcd67ce1a | ||
![]() |
4c3090ace9 | ||
![]() |
fb3777f085 | ||
![]() |
018b8e1d62 | ||
![]() |
ba3c346195 | ||
![]() |
e420b3981c | ||
![]() |
76cd6b662b | ||
![]() |
0b6ff59448 | ||
![]() |
0752b6b23c | ||
![]() |
c5b0b6ff32 | ||
![]() |
ab3986a684 | ||
![]() |
d0108869ee | ||
![]() |
58d043b0d0 | ||
![]() |
d918d571cc | ||
![]() |
75ab48958c | ||
![]() |
3200007a69 | ||
![]() |
7132526dd2 | ||
![]() |
f8266a228c | ||
![]() |
59c7deab09 |
@@ -97,7 +97,7 @@ MAIN_KEYMAP_PATH_4 := $(KEYBOARD_PATH_4)/keymaps/$(KEYMAP)
|
||||
MAIN_KEYMAP_PATH_5 := $(KEYBOARD_PATH_5)/keymaps/$(KEYMAP)
|
||||
|
||||
# Pull in rules from info.json
|
||||
INFO_RULES_MK = $(shell bin/qmk generate-rules-mk --quiet --keyboard $(KEYBOARD) --output $(KEYBOARD_OUTPUT)/src/rules.mk)
|
||||
INFO_RULES_MK = $(shell bin/qmk generate-rules-mk --quiet --escape --keyboard $(KEYBOARD) --output $(KEYBOARD_OUTPUT)/src/rules.mk)
|
||||
include $(INFO_RULES_MK)
|
||||
|
||||
# Check for keymap.json first, so we can regenerate keymap.c
|
||||
|
@@ -38,5 +38,9 @@
|
||||
"RGBLIGHT_SPLIT": {"info_key": "rgblight.split", "value_type": "bool"},
|
||||
"PRODUCT": {"info_key": "keyboard_folder", "to_json": false},
|
||||
"PRODUCT_ID": {"info_key": "usb.pid", "value_type": "hex"},
|
||||
"VENDOR_ID": {"info_key": "usb.vid", "value_type": "hex"}
|
||||
"VENDOR_ID": {"info_key": "usb.vid", "value_type": "hex"},
|
||||
"QMK_ESC_OUTPUT": {"info_key": "qmk_lufa_bootloader.esc_output"},
|
||||
"QMK_ESC_INPUT": {"info_key": "qmk_lufa_bootloader.esc_input"},
|
||||
"QMK_LED": {"info_key": "qmk_lufa_bootloader.led"},
|
||||
"QMK_SPEAKER": {"info_key": "qmk_lufa_bootloader.speaker"}
|
||||
}
|
||||
|
@@ -299,6 +299,28 @@
|
||||
"pattern": "^[0-9A-F]x[0-9A-F][0-9A-F][0-9A-F][0-9A-F]"
|
||||
}
|
||||
}
|
||||
},
|
||||
"qmk_lufa_bootloader": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"esc_output": {
|
||||
"type": "string",
|
||||
"pattern": "^[A-K]\\d{1,2}$"
|
||||
},
|
||||
"esc_input": {
|
||||
"type": "string",
|
||||
"pattern": "^[A-K]\\d{1,2}$"
|
||||
},
|
||||
"led": {
|
||||
"type": "string",
|
||||
"pattern": "^[A-K]\\d{1,2}$"
|
||||
},
|
||||
"speaker": {
|
||||
"type": "string",
|
||||
"pattern": "^[A-K]\\d{1,2}$"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -109,6 +109,19 @@ If you can't get this 'Listening:' message try building with `CONSOLE_ENABLE=yes
|
||||
|
||||
You may need privileges to access the device an OS like Linux. Try `sudo hid_listen`.
|
||||
|
||||
On many Linux distros you can avoid having to run hid_listen as root
|
||||
by creating a file called `/etc/udev/rules.d/70-hid-listen.rules` with
|
||||
the following content:
|
||||
|
||||
```
|
||||
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="abcd", ATTRS{idProduct}=="def1", TAG+="uaccess", RUN{builtin}+="uaccess"
|
||||
```
|
||||
|
||||
Replace abcd and def1 with your keyboard's vendor and product id,
|
||||
letters must be lowercase. The `RUN{builtin}+="uaccess"` part is only
|
||||
needed for older distros.
|
||||
|
||||
|
||||
## Can't Get Message on Console
|
||||
Check:
|
||||
- *hid_listen* finds your device. See above.
|
||||
|
@@ -92,7 +92,7 @@ void leader_start(void) {
|
||||
}
|
||||
|
||||
void leader_end(void) {
|
||||
// sequence ended (no success/failuer detection)
|
||||
// sequence ended (no success/failure detection)
|
||||
}
|
||||
```
|
||||
|
||||
|
@@ -109,6 +109,10 @@ Normally, when a diode is connected to an intersection, it is judged to be left.
|
||||
#define SPLIT_HAND_MATRIX_GRID_LOW_IS_RIGHT
|
||||
```
|
||||
|
||||
Note that adding a diode at a previously unused intersection will effectively tell the firmware that there is a key held down at that point. You can instruct qmk to ignore that intersection by defining `MATRIX_MASKED` and then defining a `matrix_row_t matrix_mask[MATRIX_ROWS]` array in your keyboard config. Each bit of a single value (starting form the least-significant bit) is used to tell qmk whether or not to pay attention to key presses at that intersection.
|
||||
|
||||
While `MATRIX_MASKED` isn't necessary to use `SPLIT_HAND_MATRIX_GRID` successfully, without it you may experience issues trying to suspend your computer with your keyboard attached as the matrix will always report at least one key-press.
|
||||
|
||||
#### Handedness by EEPROM
|
||||
|
||||
This method sets the keyboard's handedness by setting a flag in the persistent storage (`EEPROM`). This is checked when the controller first starts up, and determines what half the keyboard is, and how to orient the keyboard layout.
|
||||
@@ -239,7 +243,12 @@ This sets how many LEDs are directly connected to each controller. The first nu
|
||||
```c
|
||||
#define SPLIT_USB_DETECT
|
||||
```
|
||||
This option changes the startup behavior to detect an active USB connection when delegating master/slave. If this operation times out, then the half is assume to be a slave. This is the default behavior for ARM, and required for AVR Teensy boards (due to hardware limitations).
|
||||
|
||||
Enabling this option changes the startup behavior to listen for an active USB communication to delegate which part is master and which is slave. With this option enabled and theres's USB communication, then that half assumes it is the master, otherwise it assumes it is the slave.
|
||||
|
||||
Without this option, the master is the half that can detect voltage on the physical USB connection (VBUS detection).
|
||||
|
||||
Enabled by default on ChibiOS/ARM.
|
||||
|
||||
?> This setting will stop the ability to demo using battery packs.
|
||||
|
||||
@@ -255,9 +264,13 @@ This sets the poll frequency when detecting master/slave when using `SPLIT_USB_D
|
||||
|
||||
## Hardware Considerations and Mods
|
||||
|
||||
While most any Pro Micro can be used, micro controllers like the AVR Teensys and most (if not all) ARM boards require the Split USB Detect.
|
||||
Master/slave delegation is made either by detecting voltage on VBUS connection or waiting for USB communication (`SPLIT_USB_DETECT`). Pro Micro boards can use VBUS detection out of the box and be used with or without `SPLIT_USB_DETECT`.
|
||||
|
||||
However, with the Teensy 2.0 and Teensy++ 2.0, there is a simple hardware mod that you can perform to add VBUS detection, so you don't need the Split USB detection option.
|
||||
Many ARM boards, but not all, do not support VBUS detection. Because it is common that ARM boards lack VBUS detection, `SPLIT_USB_DETECT` is automatically defined on ARM targets (technically when ChibiOS is targetted).
|
||||
|
||||
### Teensy boards
|
||||
|
||||
Teensy boards lack VBUS detection out of the box and must have `SPLIT_USB_DETECT` defined. With the Teensy 2.0 and Teensy++ 2.0, there is a simple hardware mod that you can perform to add VBUS detection, so you don't need the `SPLIT_USB_DETECT` option.
|
||||
|
||||
You'll only need a few things:
|
||||
|
||||
|
39
keyboards/bastardkb/tbk/config.h
Normal file
39
keyboards/bastardkb/tbk/config.h
Normal file
@@ -0,0 +1,39 @@
|
||||
/*
|
||||
* Copyright 2021 Quentin LEBASTARD <qlebastard@gmail.com>
|
||||
*
|
||||
* 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
|
||||
#include "config_common.h"
|
||||
#define VENDOR_ID 0xA8F8
|
||||
#define PRODUCT_ID 0x1828
|
||||
#define DEVICE_VER 0x0001
|
||||
#define MANUFACTURER Bastard Keyboards
|
||||
#define PRODUCT The Bastard Keyboard
|
||||
|
||||
#define MATRIX_ROWS 10
|
||||
#define MATRIX_COLS 6
|
||||
#define DIODE_DIRECTION ROW2COL
|
||||
#define MATRIX_ROW_PINS { D7, B5, F7, F6, B6 }
|
||||
#define MATRIX_COL_PINS { B4, E6, C6, B1, B3, B2 }
|
||||
|
||||
#define RGB_DI_PIN D2
|
||||
#define RGBLED_NUM 38
|
||||
#define RGBLED_SPLIT { 19, 19 }
|
||||
#define RGBLIGHT_SPLIT
|
||||
#define RGBLIGHT_ANIMATIONS
|
||||
#define DEBOUNCE 5
|
||||
#define SOFT_SERIAL_PIN D0
|
||||
#define MASTER_RIGHT
|
71
keyboards/bastardkb/tbk/info.json
Normal file
71
keyboards/bastardkb/tbk/info.json
Normal file
@@ -0,0 +1,71 @@
|
||||
{
|
||||
"keyboard_name": "The Bastard Keyboard",
|
||||
"url": "https://bastardkb.com/",
|
||||
"maintainer": "Quentin Lebastard",
|
||||
"width": 17,
|
||||
"height": 8,
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
{"label":"L00", "x":0, "y":0},
|
||||
{"label":"L01", "x":1, "y":0},
|
||||
{"label":"L02", "x":2, "y":0},
|
||||
{"label":"L03", "x":3, "y":0},
|
||||
{"label":"L04", "x":4, "y":0},
|
||||
{"label":"L05", "x":5, "y":0},
|
||||
{"label":"R00", "x":11, "y":0},
|
||||
{"label":"R01", "x":12, "y":0},
|
||||
{"label":"R02", "x":13, "y":0},
|
||||
{"label":"R03", "x":14, "y":0},
|
||||
{"label":"R04", "x":15, "y":0},
|
||||
{"label":"R05", "x":16, "y":0},
|
||||
{"label":"L10", "x":0, "y":1},
|
||||
{"label":"L11", "x":1, "y":1},
|
||||
{"label":"L12", "x":2, "y":1},
|
||||
{"label":"L13", "x":3, "y":1},
|
||||
{"label":"L14", "x":4, "y":1},
|
||||
{"label":"L15", "x":5, "y":1},
|
||||
{"label":"R10", "x":11, "y":1},
|
||||
{"label":"R11", "x":12, "y":1},
|
||||
{"label":"R12", "x":13, "y":1},
|
||||
{"label":"R13", "x":14, "y":1},
|
||||
{"label":"R14", "x":15, "y":1},
|
||||
{"label":"R15", "x":16, "y":1},
|
||||
{"label":"L20", "x":0, "y":2},
|
||||
{"label":"L21", "x":1, "y":2},
|
||||
{"label":"L22", "x":2, "y":2},
|
||||
{"label":"L23", "x":3, "y":2},
|
||||
{"label":"L24", "x":4, "y":2},
|
||||
{"label":"L25", "x":5, "y":2},
|
||||
{"label":"R20", "x":11, "y":2},
|
||||
{"label":"R21", "x":12, "y":2},
|
||||
{"label":"R22", "x":13, "y":2},
|
||||
{"label":"R23", "x":14, "y":2},
|
||||
{"label":"R24", "x":15, "y":2},
|
||||
{"label":"R25", "x":16, "y":2},
|
||||
{"label":"L30", "x":0, "y":3},
|
||||
{"label":"L31", "x":1, "y":3},
|
||||
{"label":"L32", "x":2, "y":3},
|
||||
{"label":"L33", "x":3, "y":3},
|
||||
{"label":"L34", "x":4, "y":3},
|
||||
{"label":"L35", "x":5, "y":3},
|
||||
{"label":"R30", "x":11, "y":3},
|
||||
{"label":"R31", "x":12, "y":3},
|
||||
{"label":"R32", "x":13, "y":3},
|
||||
{"label":"R33", "x":14, "y":3},
|
||||
{"label":"R34", "x":15, "y":3},
|
||||
{"label":"R35", "x":16, "y":3},
|
||||
{"label":"L43", "x":5, "y":4},
|
||||
{"label":"L44", "x":6, "y":4},
|
||||
{"label":"L45", "x":7, "y":4},
|
||||
{"label":"R40", "x":9, "y":4},
|
||||
{"label":"R41", "x":10, "y":4},
|
||||
{"label":"R40", "x":11, "y":4},
|
||||
{"label":"L52", "x":6, "y":5},
|
||||
{"label":"L53", "x":7, "y":5},
|
||||
{"label":"R52", "x":9, "y":5},
|
||||
{"label":"R53", "x":10, "y":5}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
60
keyboards/bastardkb/tbk/keymaps/default/keymap.c
Normal file
60
keyboards/bastardkb/tbk/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,60 @@
|
||||
/*
|
||||
* Copyright 2021 Quentin LEBASTARD <qlebastard@gmail.com>
|
||||
*
|
||||
* 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] = {
|
||||
|
||||
[0] = LAYOUT_split_4x6_5(
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, 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_MINS,
|
||||
//-------------------------------------------------//-----------------------------------------------------------//
|
||||
KC_LSFT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
|
||||
//-------------------------------------------------//-----------------------------------------------------------//
|
||||
KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_BSLS,
|
||||
//-------------------------------------------------//-----------------------------------------------------------//
|
||||
KC_LCTL, KC_SPC, MO(1), MO(2), KC_ENT, KC_RGUI,
|
||||
KC_HOME, KC_BSPC, KC_DEL, KC_RALT
|
||||
),
|
||||
|
||||
[1] = LAYOUT_split_4x6_5(
|
||||
KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL,
|
||||
//---------------------------------------------------------//-----------------------------------------------------------//
|
||||
RESET, _______, _______, _______, _______, KC_LBRC, KC_RBRC, KC_P7, KC_P8, KC_P9, _______, KC_PLUS,
|
||||
//---------------------------------------------------------//-----------------------------------------------------------//
|
||||
_______, KC_HOME, KC_PGUP, KC_PGDN, KC_END, KC_LPRN, KC_RPRN, KC_P4, KC_P5, KC_P6, KC_MINS, KC_PIPE,
|
||||
//---------------------------------------------------------//-----------------------------------------------------------//
|
||||
_______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, KC_EQL, KC_UNDS,
|
||||
//---------------------------------------------------------//-----------------------------------------------------------//
|
||||
KC_LCTL, KC_HOME, KC_TRNS, KC_TRNS, KC_RALT, KC_RGUI,
|
||||
KC_SPC, KC_BSPC, KC_RCTL, KC_ENT
|
||||
),
|
||||
|
||||
[2] = LAYOUT_split_4x6_5(
|
||||
KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
|
||||
//---------------------------------------------------------//--------------------------------------------------------------//
|
||||
_______, _______, RGB_RMOD, RGB_TOG, RGB_MOD, KC_LBRC, KC_RBRC, _______, KC_NLCK, KC_INS, KC_SLCK, KC_MUTE,
|
||||
//---------------------------------------------------------//--------------------------------------------------------------//
|
||||
_______, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, KC_LPRN, KC_RPRN, KC_MPRV, KC_MPLY, KC_MNXT, _______, KC_VOLU,
|
||||
//---------------------------------------------------------//--------------------------------------------------------------//
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD,
|
||||
//---------------------------------------------------------//--------------------------------------------------------------//
|
||||
KC_LCTL, KC_HOME, KC_TRNS, KC_TRNS, KC_RALT, RESET,
|
||||
KC_SPC, KC_BSPC, KC_RCTL, KC_ENT
|
||||
),
|
||||
};
|
90
keyboards/bastardkb/tbk/keymaps/german_gaming/keymap.c
Normal file
90
keyboards/bastardkb/tbk/keymaps/german_gaming/keymap.c
Normal file
@@ -0,0 +1,90 @@
|
||||
/*
|
||||
* Copyright 2021 Joschua Gandert
|
||||
*
|
||||
* 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
|
||||
#include "keymap_german.h"
|
||||
|
||||
|
||||
enum layer_names {
|
||||
_BASE,
|
||||
_GAME, /* WASD shifted right once */
|
||||
_LOWER,
|
||||
_RAISE,
|
||||
_ADJUST /* when both LOWER and RAISE pressed */
|
||||
};
|
||||
|
||||
#define RAISE MO(_RAISE)
|
||||
#define LOWER MO(_LOWER)
|
||||
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[_BASE] = LAYOUT_split_4x6_5(
|
||||
KC_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , DE_SS ,
|
||||
KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , DE_Z , KC_U , KC_I , KC_O , KC_P , DE_UDIA,
|
||||
KC_LSFT, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , DE_ODIA, DE_ADIA,
|
||||
KC_LCTL, DE_Y , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT, DE_MINS, DE_PLUS,
|
||||
|
||||
RAISE, KC_SPC, KC_LCTL, KC_RALT, KC_BSPC, LOWER,
|
||||
KC_ENT, KC_LALT, KC_LGUI, KC_RSFT
|
||||
),
|
||||
|
||||
[_GAME] = LAYOUT_split_4x6_5(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
KC_T , KC_TAB , KC_Q , KC_W , KC_E , KC_R , _______, _______, KC_UP, _______, _______, _______,
|
||||
KC_G , KC_LSFT, KC_A , KC_S , KC_D , KC_F , _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______,
|
||||
KC_B , KC_LCTL, DE_Y , KC_X , KC_C , KC_V , _______, _______, _______, _______, _______, _______,
|
||||
|
||||
_______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______
|
||||
),
|
||||
|
||||
[_LOWER] = LAYOUT_split_4x6_5(
|
||||
KC_TILD, KC_EXLM, KC_AT , KC_HASH, KC_DLR , KC_PERC, KC_CIRC, KC_AMPR, KC_PSLS, KC_PAST, KC_PMNS, KC_DEL ,
|
||||
_______, DE_HASH, DE_CIRC, KC_PGUP, DE_LABK, _______, _______, KC_P7 , KC_P8 , KC_P9 , KC_PPLS, KC_BSPC ,
|
||||
_______, DE_ACUT, KC_HOME, KC_PGDN, KC_END , KC_LPRN, KC_RPRN, KC_P4 , KC_P5 , KC_P6 , KC_PDOT, _______ ,
|
||||
_______, KC_PLUS, KC_PIPE, KC_UNDS, _______, _______, KC_P0 , KC_P1 , KC_P2 , KC_P3 , KC_PENT, KC_KP_EQUAL,
|
||||
|
||||
_______, KC_RGHT, _______, _______, _______, _______,
|
||||
KC_LEFT, _______, RESET , _______
|
||||
),
|
||||
|
||||
[_RAISE] = LAYOUT_split_4x6_5(
|
||||
KC_F12 , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 ,
|
||||
_______, _______, _______, KC_UP , _______, _______, KC_LALT, KC_INS , KC_NLCK , KC_CALC, KC_PSCREEN, KC_MUTE,
|
||||
_______, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_ENT , KC_MSEL, KC_MPRV , KC_MPLY , KC_MNXT, _______ , KC_VOLU,
|
||||
_______, _______, _______, _______, _______, _______, DE_HASH, KC_MYCM , _______ , _______, KC_SLCK , KC_VOLD,
|
||||
|
||||
_______, _______, _______, _______, KC_UP , _______,
|
||||
_______, _______, _______, KC_DOWN
|
||||
),
|
||||
|
||||
[_ADJUST] = LAYOUT_split_4x6_5(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, RESET , _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, DF(_GAME), _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, DF(_BASE), _______, _______, _______, _______, _______, _______,
|
||||
|
||||
_______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______
|
||||
),
|
||||
};
|
||||
|
||||
|
||||
layer_state_t layer_state_set_user(layer_state_t state) {
|
||||
return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
|
||||
}
|
24
keyboards/bastardkb/tbk/keymaps/german_gaming/readme.md
Normal file
24
keyboards/bastardkb/tbk/keymaps/german_gaming/readme.md
Normal file
@@ -0,0 +1,24 @@
|
||||

|
||||
|
||||
Despite being less accurate, the columns in the image are shifted up and down to avoid the [Hermann grid illusion](https://en.wikipedia.org/wiki/Grid_illusion).
|
||||
|
||||
|
||||
# German Gaming Layout
|
||||
|
||||
This layout was build with gaming in mind for a german user. As a result I added a "game" layer that shifts the keys of the left side (below the number row) one to the right, so that <kbd>WASD</kbd> is on the <kbd>ESDF</kbd> keys. The reason this layer was added is that using <kbd>WASD</kbd> is less comfortable with a contoured Dactyl-style keyboard, where each column is adjusted for the respective fingers. <kbd>ESDF</kbd> also has the upside of allowing one to stay in the home row. Note that the rightmost column of the default layer, so <kbd>TGB</kbd>, ends up in the leftmost position.
|
||||
|
||||
Of course, one could just be forced to reconfigure every game, but that wouldn't be very user-friendly and likely reduce satisfaction with the layout. When in game mode, the right side of keys also features arrow keys on <kbd>IJKL</kbd>.
|
||||
|
||||
|
||||
## Raise and Lower layer
|
||||
|
||||
Additionally, via the RAISE layer, it's always possible to access the arrow keys, which are often used in game menues. On the exact same position one can access <kbd>Home</kbd>, <kbd>End</kbd>, <kbd>Page Down</kbd> and <kbd>Page Up</kbd> via the LOWER layer. The left side of the LOWER layer also contains the few characters that would usually have their own key in a traditional german keyboard.
|
||||
|
||||
The right side features various media keys in the RAISE layer, and a numpad in the LOWER layer.
|
||||
|
||||
|
||||
## Firmware
|
||||
|
||||
The keyboard can be put into Reset mode (for flashing a keymap) by pressing <kbd>**LOWER**</kbd> + <kbd>Super</kbd> (also known as Windows key), or by pressing <kbd>**LOWER**</kbd> + <kbd>**RAISE**</kbd> + <kbd>R</kbd>.
|
||||
|
||||
`MOUSEKEY_ENABLE` was set to `no` for this keymap, since it wasn't used and the size of the firmware ended up being too large.
|
1
keyboards/bastardkb/tbk/keymaps/german_gaming/rules.mk
Normal file
1
keyboards/bastardkb/tbk/keymaps/german_gaming/rules.mk
Normal file
@@ -0,0 +1 @@
|
||||
MOUSEKEY_ENABLE = no
|
33
keyboards/bastardkb/tbk/keymaps/xyverz/config.h
Normal file
33
keyboards/bastardkb/tbk/keymaps/xyverz/config.h
Normal file
@@ -0,0 +1,33 @@
|
||||
/*
|
||||
This is the c configuration file for the keymap
|
||||
|
||||
Copyright 2012 Jun Wako <wakojun@gmail.com>
|
||||
Copyright 2015 Jack Humbert
|
||||
|
||||
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
|
||||
|
||||
/* Select hand configuration */
|
||||
// #define MASTER_LEFT
|
||||
// #define MASTER_RIGHT
|
||||
#define EE_HANDS
|
||||
|
||||
#define TAPPING_FORCE_HOLD
|
||||
#define TAPPING_TERM 300
|
||||
#define PERMISSIVE_HOLD
|
||||
#define IGNORE_MOD_TAP_INTERRUPT
|
||||
#define LEADER_PER_KEY_TIMING
|
||||
#define LEADER_TIMEOUT 300
|
100
keyboards/bastardkb/tbk/keymaps/xyverz/keymap.c
Normal file
100
keyboards/bastardkb/tbk/keymaps/xyverz/keymap.c
Normal file
@@ -0,0 +1,100 @@
|
||||
/*
|
||||
* Copyright 2021 Ian Sterling <xyverz on Github.com>
|
||||
*
|
||||
* 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
|
||||
|
||||
enum layer_names { _WINDOWS, _MAC, _LOWER, _RAISE, _ADJUST };
|
||||
|
||||
enum custom_keycodes { WINDOWS = SAFE_RANGE, MAC, ADJUST };
|
||||
|
||||
// Aliases to keep the keymap tidy
|
||||
#define GUIBSPC GUI_T(KC_BSPC) // GUI when held, BSPC when tapped.
|
||||
#define RGB_SWR RGB_M_SW // Swirl Animation alias
|
||||
#define RGB_SNK RGB_M_SN // Snake Animation alias
|
||||
#define MACLOCK LGUI(LCTL(KC_Q)) // Lock my MacBook!
|
||||
#define WINLOCK LGUI(KC_L) // Lock my PC!
|
||||
#define DELGUI GUI_T(KC_DEL)
|
||||
#define RAISE MO(_RAISE)
|
||||
#define LOWER MO(_LOWER)
|
||||
|
||||
|
||||
#define MACLOCK LGUI(LCTL(KC_Q)) // Lock my MacBook!
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[_WINDOWS] = LAYOUT_split_4x6_5(
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS,
|
||||
KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH,
|
||||
KC_GRV, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS,
|
||||
KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT,
|
||||
LOWER, KC_BSPC, KC_DEL, KC_ENT, KC_SPC, RAISE,
|
||||
KC_LCTL, KC_LALT, KC_RGUI, KC_RCTL
|
||||
),
|
||||
|
||||
[_MAC] = LAYOUT_split_4x6_5(
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS,
|
||||
KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH,
|
||||
KC_GRV, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS,
|
||||
KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT,
|
||||
LOWER, KC_BSPC, DELGUI, KC_ENT, KC_SPC, RAISE,
|
||||
KC_LCTL, KC_LALT, KC_RGUI, KC_RCTL
|
||||
),
|
||||
|
||||
[_LOWER] = LAYOUT_split_4x6_5(
|
||||
KC_F11, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F12,
|
||||
RESET, _______, _______, KC_UP, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______, _______,
|
||||
KC_CAPS, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_HOME, KC_PGUP, _______, KC_PLUS, KC_LCBR, KC_RCBR, _______,
|
||||
_______, _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_END, KC_PGDN, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______,
|
||||
_______, KC_DEL, _______, _______, _______, _______,
|
||||
MACLOCK, _______, _______, WINLOCK
|
||||
),
|
||||
|
||||
[_RAISE] = LAYOUT_split_4x6_5(
|
||||
KC_F11, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F12,
|
||||
_______, _______, _______, KC_UP, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______, RESET,
|
||||
KC_CAPS, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_HOME, KC_PGUP, _______, KC_EQL, KC_LBRC, KC_RBRC, _______,
|
||||
_______, _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_END, KC_PGDN, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______,
|
||||
_______, KC_DEL, _______, _______, _______, _______,
|
||||
MACLOCK, _______, _______, WINLOCK
|
||||
),
|
||||
|
||||
[_ADJUST] = LAYOUT_split_4x6_5(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, WINDOWS, MAC, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______
|
||||
),
|
||||
|
||||
};
|
||||
|
||||
layer_state_t layer_state_set_user(layer_state_t state) { return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); };
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
if (record->event.pressed) {
|
||||
switch (keycode) {
|
||||
case WINDOWS:
|
||||
set_single_persistent_default_layer(_WINDOWS);
|
||||
return false;
|
||||
case MAC:
|
||||
set_single_persistent_default_layer(_MAC);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
22
keyboards/bastardkb/tbk/keymaps/xyverz/readme.md
Normal file
22
keyboards/bastardkb/tbk/keymaps/xyverz/readme.md
Normal file
@@ -0,0 +1,22 @@
|
||||
# The Bastard Keyboard
|
||||
|
||||
A split ergonomic keyboard.
|
||||
|
||||
* Keyboard Maintainer: [Bastard Keyboards](https://github.com/Bastardkb/)
|
||||
* Hardware Supported: elite-C V4
|
||||
* Hardware Availability: [Bastard Keyboards](https://bastardkb.com/)
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make bastardkb/tbk: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).
|
||||
|
||||
See the [keyboard build instructions](https://docs.bastardkb.com)
|
||||
|
||||
|
||||
## Important information regarding the reset
|
||||
|
||||
If you modify this firmware, make sure to always have a RESET key that can be triggered using only the master side ! This way you ensure that you can always flash the keyboard, even if you mess up.
|
||||
|
||||
Otherwise if you're stuck, open the case and reset manually by shorting Gnd and Rst, or pressing the RST button.
|
22
keyboards/bastardkb/tbk/readme.md
Normal file
22
keyboards/bastardkb/tbk/readme.md
Normal file
@@ -0,0 +1,22 @@
|
||||
# The Bastard Keyboard
|
||||
|
||||
A split ergonomic keyboard.
|
||||
|
||||
* Keyboard Maintainer: [Bastard Keyboards](https://github.com/Bastardkb/)
|
||||
* Hardware Supported: elite-C V4
|
||||
* Hardware Availability: [Bastard Keyboards](https://bastardkb.com/)
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make bastardkb/tbk: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).
|
||||
|
||||
See the [keyboard build instructions](https://docs.bastardkb.com)
|
||||
|
||||
|
||||
## Important information regarding the reset
|
||||
|
||||
If you modify this firmware, make sure to always have a RESET key that can be triggered using only the master side ! This way you ensure that you can always flash the keyboard, even if you mess up.
|
||||
|
||||
Otherwise if you're stuck, open the case and reset manually by shorting Gnd and Rst, or pressing the RST button.
|
23
keyboards/bastardkb/tbk/rules.mk
Normal file
23
keyboards/bastardkb/tbk/rules.mk
Normal file
@@ -0,0 +1,23 @@
|
||||
# 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
|
||||
SPLIT_KEYBOARD = yes
|
@@ -15,4 +15,4 @@
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "bastylmini.h"
|
||||
#include "tbk.h"
|
42
keyboards/bastardkb/tbk/tbk.h
Normal file
42
keyboards/bastardkb/tbk/tbk.h
Normal file
@@ -0,0 +1,42 @@
|
||||
/*
|
||||
* Copyright 2021 Quentin LEBASTARD <qlebastard@gmail.com>
|
||||
*
|
||||
* 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
|
||||
#include "quantum.h"
|
||||
|
||||
// SWITCHED 91 and 95 - check on left ?
|
||||
#define LAYOUT_split_4x6_5( \
|
||||
k00, k01, k02, k03, k04, k05, k55, k54, k53, k52, k51, k50, \
|
||||
k10, k11, k12, k13, k14, k15, k65, k64, k63, k62, k61, k60, \
|
||||
k20, k21, k22, k23, k24, k25, k75, k74, k73, k72, k71, k70, \
|
||||
k30, k31, k32, k33, k34, k35, k85, k84, k83, k82, k81, k80, \
|
||||
k43, k44, k41, k91, k94, k93, \
|
||||
k45, k42, k92, k95 \
|
||||
)\
|
||||
{\
|
||||
{ k00, k01, k02, k03, k04, k05 }, \
|
||||
{ k10, k11, k12, k13, k14, k15 }, \
|
||||
{ k20, k21, k22, k23, k24, k25 }, \
|
||||
{ k30, k31, k32, k33, k34, k35 }, \
|
||||
{ KC_NO, k41, k42, k43, k44, k45 }, \
|
||||
{ k50, k51, k52, k53, k54, k55 }, \
|
||||
{ k60, k61, k62, k63, k64, k65 }, \
|
||||
{ k70, k71, k72, k73, k74, k75 }, \
|
||||
{ k80, k81, k82, k83, k84, k85 }, \
|
||||
{ KC_NO, k91, k92, k93, k94, k95 }, \
|
||||
}
|
@@ -21,7 +21,7 @@
|
||||
#define PRODUCT_ID 0x1828
|
||||
#define DEVICE_VER 0x0001
|
||||
#define MANUFACTURER Bastard Keyboards
|
||||
#define PRODUCT Bastyl Mini
|
||||
#define PRODUCT TBK Mini
|
||||
|
||||
#define MATRIX_ROWS 8
|
||||
#define MATRIX_COLS 6
|
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"keyboard_name": "Bastyl Mini",
|
||||
"keyboard_name": "TBK Mini",
|
||||
"url": "https://www.bastardkb.com",
|
||||
"maintainer": "Quentin Lebastard",
|
||||
"width": 17,
|
@@ -1,14 +1,14 @@
|
||||
# Bastyl Mini
|
||||
# TBK Mini
|
||||
|
||||
A split, compact ergonomic keyboard.
|
||||
|
||||
* Keyboard Maintainer: [BastardKb](https://github.com/Bastardkb/)
|
||||
* Keyboard Maintainer: [Bastard Keyboards](https://github.com/Bastardkb/)
|
||||
* Hardware Supported: elite-C V4
|
||||
* Hardware Availability: [Bastardkb.com](https://bastardkb.com/)
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make bastardkb/bastylmini:default
|
||||
make bastardkb/tbkmini: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).
|
||||
|
18
keyboards/bastardkb/tbkmini/tbkmini.c
Normal file
18
keyboards/bastardkb/tbkmini/tbkmini.c
Normal file
@@ -0,0 +1,18 @@
|
||||
/*
|
||||
* Copyright 2021 Quentin LEBASTARD <qlebastard@gmail.com>
|
||||
*
|
||||
* 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 "tbkmini.h"
|
80
keyboards/bm40hsrgb/keymaps/signynt/config.h
Normal file
80
keyboards/bm40hsrgb/keymaps/signynt/config.h
Normal file
@@ -0,0 +1,80 @@
|
||||
// qmk flash -kb bm40hsrgb -km signynt
|
||||
|
||||
/* Copyright 2021 Vincenzo Mitchell Barroso
|
||||
*
|
||||
* 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
|
||||
|
||||
#define RGBLIGHT_LAYERS
|
||||
#define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF
|
||||
#define RGBLIGHT_ANIMATIONS
|
||||
|
||||
//#define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS
|
||||
#define RGBLIGHT_LIMIT_VAL 10
|
||||
|
||||
//bootmagic
|
||||
#define BOOTMAGIC_KEY_SALT KC_V
|
||||
#define BOOTMAGIC_KEY_EEPROM_CLEAR KC_Q
|
||||
|
||||
#ifdef RGB_MATRIX_ENABLE
|
||||
|
||||
#define TAPPING_TERM 200
|
||||
|
||||
//--------------------------------------------------------------------------------------------------------
|
||||
|
||||
//disable broken animations
|
||||
#define DISABLE_RGB_MATRIX_ALPHAS_MODS
|
||||
#define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN
|
||||
#define DISABLE_RGB_MATRIX_BREATHING
|
||||
#define DISABLE_RGB_MATRIX_BAND_SAT
|
||||
#define DISABLE_RGB_MATRIX_BAND_VAL
|
||||
#define DISABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
|
||||
#define DISABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
|
||||
#define DISABLE_RGB_MATRIX_BAND_SPIRAL_SAT
|
||||
#define DISABLE_RGB_MATRIX_BAND_SPIRAL_VAL
|
||||
#define DISABLE_RGB_MATRIX_CYCLE_ALL
|
||||
#define DISABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
|
||||
#define DISABLE_RGB_MATRIX_CYCLE_UP_DOWN
|
||||
#define DISABLE_RGB_MATRIX_CYCLE_OUT_IN
|
||||
#define DISABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
|
||||
//#define DISABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
|
||||
//#define DISABLE_RGB_MATRIX_DUAL_BEACON
|
||||
#define DISABLE_RGB_MATRIX_CYCLE_PINWHEEL
|
||||
#define DISABLE_RGB_MATRIX_CYCLE_SPIRAL
|
||||
//#define DISABLE_RGB_MATRIX_RAINBOW_BEACON
|
||||
//#define DISABLE_RGB_MATRIX_RAINBOW_PINWHEELS
|
||||
//#define DISABLE_RGB_MATRIX_RAINDROPS
|
||||
#define DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS // DO NOT ENABLE
|
||||
//#define DISABLE_RGB_MATRIX_TYPING_HEATMAP
|
||||
//#define DISABLE_RGB_MATRIX_DIGITAL_RAIN
|
||||
//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE
|
||||
//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
|
||||
//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
|
||||
//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
|
||||
//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
|
||||
//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
|
||||
//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
|
||||
//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
|
||||
//#define DISABLE_RGB_MATRIX_SPLASH
|
||||
//#define DISABLE_RGB_MATRIX_MULTISPLASH
|
||||
//#define DISABLE_RGB_MATRIX_SOLID_SPLASH
|
||||
//#define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH
|
||||
|
||||
#undef RGB_MATRIX_STARTUP_MODE
|
||||
|
||||
#define RGBLIGHT_HUE_STEP 20
|
||||
|
||||
#endif
|
241
keyboards/bm40hsrgb/keymaps/signynt/keymap.c
Normal file
241
keyboards/bm40hsrgb/keymaps/signynt/keymap.c
Normal file
@@ -0,0 +1,241 @@
|
||||
// qmk flash -kb bm40hsrgb -km signynt
|
||||
|
||||
/* Copyright 2021 Vincenzo Mitchell Barroso
|
||||
*
|
||||
* 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
|
||||
|
||||
// non-KC_ keycodes
|
||||
#define KC_RST RESET
|
||||
#define KC_TOG RGB_TOG
|
||||
#define KC_MOD RGB_MOD
|
||||
#define KC_HUI RGB_HUI
|
||||
#define KC_SAI RGB_SAI
|
||||
#define KC_VAI RGB_VAI
|
||||
|
||||
//define layers
|
||||
enum layers {BASE, MEDR, NAVR, NSSL, NSL, FUNL, GAME, SECGAME};
|
||||
|
||||
enum custom_keycodes {
|
||||
CMD_TAB = SAFE_RANGE,
|
||||
};
|
||||
|
||||
//cmd tab
|
||||
|
||||
bool is_cmd_tab_active = false;
|
||||
uint16_t cmd_tab_timer = 0;
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
switch (keycode) {
|
||||
case CMD_TAB:
|
||||
if (record->event.pressed) {
|
||||
if (!is_cmd_tab_active) {
|
||||
is_cmd_tab_active = true;
|
||||
register_code(KC_LCTL);
|
||||
}
|
||||
cmd_tab_timer = timer_read();
|
||||
register_code(KC_TAB);
|
||||
} else {
|
||||
unregister_code(KC_TAB);
|
||||
}
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
void matrix_scan_user(void) {
|
||||
if (is_cmd_tab_active) {
|
||||
if (timer_elapsed(cmd_tab_timer) > 500) {
|
||||
unregister_code(KC_LCTL);
|
||||
is_cmd_tab_active = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//layer led colors
|
||||
|
||||
void rgb_matrix_indicators_user(void) {
|
||||
|
||||
//game indicators
|
||||
|
||||
if(IS_LAYER_ON(GAME)) {
|
||||
rgb_matrix_set_color(11, 0, 40, 50);
|
||||
}
|
||||
|
||||
if(IS_LAYER_ON(SECGAME)) {
|
||||
rgb_matrix_set_color(11, 50, 0, 0);
|
||||
}
|
||||
|
||||
//layer indicators
|
||||
|
||||
if(IS_LAYER_ON(NAVR)) {
|
||||
rgb_matrix_set_color(40, 0, 40, 50);
|
||||
|
||||
rgb_matrix_set_color(19, 0, 40, 50);
|
||||
rgb_matrix_set_color(20, 0, 40, 50);
|
||||
rgb_matrix_set_color(21, 0, 40, 50);
|
||||
rgb_matrix_set_color(22, 0, 40, 50);
|
||||
}
|
||||
|
||||
if(IS_LAYER_ON(MEDR)) {
|
||||
rgb_matrix_set_color(39, 50, 10, 20);
|
||||
|
||||
rgb_matrix_set_color(19, 50, 10, 20);
|
||||
|
||||
rgb_matrix_set_color(22, 50, 10, 20);
|
||||
|
||||
rgb_matrix_set_color(42, 50, 10, 20);
|
||||
}
|
||||
|
||||
if(IS_LAYER_ON(FUNL)) {
|
||||
rgb_matrix_set_color(43, 50, 0, 0);
|
||||
|
||||
rgb_matrix_set_color(1, 50, 0, 0);
|
||||
rgb_matrix_set_color(2, 50, 0, 0);
|
||||
rgb_matrix_set_color(3, 50, 0, 0);
|
||||
rgb_matrix_set_color(4, 50, 0, 0);
|
||||
|
||||
rgb_matrix_set_color(13, 50, 0, 0);
|
||||
rgb_matrix_set_color(14, 50, 0, 0);
|
||||
rgb_matrix_set_color(15, 50, 0, 0);
|
||||
rgb_matrix_set_color(16, 50, 0, 0);
|
||||
|
||||
rgb_matrix_set_color(25, 50, 0, 0);
|
||||
rgb_matrix_set_color(26, 50, 0, 0);
|
||||
rgb_matrix_set_color(27, 50, 0, 0);
|
||||
rgb_matrix_set_color(28, 50, 0, 0);
|
||||
}
|
||||
|
||||
if(IS_LAYER_ON(NSL)) {
|
||||
rgb_matrix_set_color(42, 10, 0, 50);
|
||||
|
||||
rgb_matrix_set_color(2, 10, 0, 50);
|
||||
rgb_matrix_set_color(3, 10, 0, 50);
|
||||
rgb_matrix_set_color(4, 10, 0, 50);
|
||||
|
||||
rgb_matrix_set_color(14, 10, 0, 50);
|
||||
rgb_matrix_set_color(15, 10, 0, 50);
|
||||
rgb_matrix_set_color(16, 10, 0, 50);
|
||||
|
||||
rgb_matrix_set_color(26, 10, 0, 50);
|
||||
rgb_matrix_set_color(27, 10, 0, 50);
|
||||
rgb_matrix_set_color(28, 10, 0, 50);
|
||||
|
||||
rgb_matrix_set_color(38, 10, 0, 50);
|
||||
rgb_matrix_set_color(39, 10, 0, 50);
|
||||
rgb_matrix_set_color(40, 10, 0, 50);
|
||||
}
|
||||
|
||||
if(IS_LAYER_ON(NSSL)) {
|
||||
rgb_matrix_set_color(41, 0, 50, 1.9);
|
||||
|
||||
rgb_matrix_set_color(1, 0, 50, 1.9);
|
||||
rgb_matrix_set_color(2, 0, 50, 1.9);
|
||||
rgb_matrix_set_color(3, 0, 50, 1.9);
|
||||
rgb_matrix_set_color(4, 0, 50, 1.9);
|
||||
rgb_matrix_set_color(5, 0, 50, 1.9);
|
||||
|
||||
rgb_matrix_set_color(13, 0, 50, 1.9);
|
||||
rgb_matrix_set_color(14, 0, 50, 1.9);
|
||||
rgb_matrix_set_color(15, 0, 50, 1.9);
|
||||
rgb_matrix_set_color(16, 0, 50, 1.9);
|
||||
rgb_matrix_set_color(17, 0, 50, 1.9);
|
||||
|
||||
rgb_matrix_set_color(25, 0, 50, 1.9);
|
||||
rgb_matrix_set_color(26, 0, 50, 1.9);
|
||||
rgb_matrix_set_color(27, 0, 50, 1.9);
|
||||
rgb_matrix_set_color(28, 0, 50, 1.9);
|
||||
rgb_matrix_set_color(29, 0, 50, 1.9);
|
||||
|
||||
}
|
||||
|
||||
//capslock leds
|
||||
|
||||
if (host_keyboard_leds() & (1<<USB_LED_CAPS_LOCK)) {
|
||||
rgb_matrix_set_color_all(50, 15.6, 0);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//tap dance declarations
|
||||
enum {
|
||||
TD_MEDIA, TD_SCREEN,
|
||||
};
|
||||
|
||||
//tap dance definitions
|
||||
qk_tap_dance_action_t tap_dance_actions[] = {
|
||||
[TD_MEDIA] = ACTION_TAP_DANCE_DOUBLE( KC_MPLY , KC_MNXT ),
|
||||
[TD_SCREEN] = ACTION_TAP_DANCE_DOUBLE( (G(S(KC_S))) , S(C(KC_4)) ),
|
||||
};
|
||||
|
||||
#define KC_TD(TD_VARIABLE) TD(TD_VARIABLE)
|
||||
|
||||
//--------------------------------------------------------------------------------------------------------
|
||||
|
||||
//base
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[BASE] = LAYOUT_planck_mit(
|
||||
KC_LALT, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LALT,
|
||||
KC_LSFT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, KC_LSFT,
|
||||
KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LCTL,
|
||||
G(KC_TAB), KC_TD(TD_SCREEN), KC_ESC, LT(MEDR, KC_TAB), LT(NAVR, KC_SPC), LT(NSSL, KC_ENT), LT(NSL, KC_BSPC), LT(FUNL, KC_DEL), KC_LGUI, KC_TD(TD_MEDIA), CMD_TAB
|
||||
),
|
||||
|
||||
//layers
|
||||
[NAVR] = LAYOUT_planck_mit(
|
||||
KC_LALT, KC_RST, KC_NO, KC_NO, KC_NO, KC_NO, C(S(KC_Z)), C(A(KC_LEFT)), C(KC_X), C(KC_C), C(A(KC_RGHT)), KC_LALT,
|
||||
KC_LSFT, G(S(C(KC_F1))), G(S(C(KC_F3))), G(S(C(KC_F4))), G(S(C(KC_F2))), KC_NO, KC_CLCK, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_LSFT,
|
||||
KC_LCTL, KC_NO, KC_ALGR, KC_NO, G(S(C(KC_F5))), KC_NO, KC_INS, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_LCTL,
|
||||
TG(GAME), KC_NO, KC_NO, KC_NO, KC_NO, KC_ENT, KC_BSPC, KC_DEL, KC_NO, C(G(KC_LEFT)), C(G(KC_RIGHT))
|
||||
),
|
||||
[MEDR] = LAYOUT_planck_mit(
|
||||
KC_LALT, KC_RST, KC_NO, KC_NO, KC_NO, KC_NO, KC_TOG, KC_MOD, KC_HUI, KC_SAI, KC_VAI, KC_LALT,
|
||||
KC_LSFT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT, KC_LSFT,
|
||||
KC_LCTL, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_F13, KC_F14, KC_F15, RGB_VAI, KC_LCTL,
|
||||
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MSTP, KC_MPLY, KC_MUTE, KC_NO, KC_NO, KC_NO
|
||||
),
|
||||
[FUNL] = LAYOUT_planck_mit(
|
||||
KC_LALT, KC_F12, KC_F7, KC_F8, KC_F9, KC_PSCR, KC_F15, KC_NO, KC_NO, KC_NO, KC_RST, KC_LALT,
|
||||
KC_LSFT, KC_F11, KC_F4, KC_F5, KC_F6, KC_SLCK, KC_F14, KC_NO, KC_NO, KC_NO, KC_NO, KC_LSFT,
|
||||
KC_LCTL, KC_F10, KC_F1, KC_F2, KC_F3, KC_PAUS, KC_F13, KC_NO, KC_NO, KC_NO, KC_NO, KC_LCTL,
|
||||
KC_NO, KC_NO, KC_TAB, KC_APP, KC_SPC, KC_UNDS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
|
||||
),
|
||||
[NSL] = LAYOUT_planck_mit(
|
||||
KC_LALT, KC_LPRN, KC_7, KC_8, KC_9, KC_RPRN, KC_LBRC, KC_AMPR, KC_ASTR, KC_LCBR, KC_RBRC, KC_BSPC,
|
||||
KC_LSFT, KC_COLN, KC_4, KC_5, KC_6, KC_EQL, KC_LCBR, KC_DLR, KC_PERC, KC_CIRC, KC_RCBR, KC_LSFT,
|
||||
KC_LCTL, KC_GRV, KC_1, KC_2, KC_3, KC_PLUS, KC_TILD, KC_EXLM, KC_COMM, KC_DOT, KC_SLSH, KC_LCTL,
|
||||
A(S(C(KC_N))), S(C(KC_5)), KC_NO, KC_UNDS, KC_0, KC_MINS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
|
||||
),
|
||||
[NSSL] = LAYOUT_planck_mit(
|
||||
KC_LALT, KC_LCBR, KC_AMPR, KC_ASTR, KC_LPRN, KC_RCBR, KC_NO, KC_NO, KC_NO, KC_NO, KC_RST, KC_BSPC,
|
||||
KC_LSFT, KC_SCLN, KC_DLR, KC_PERC, KC_CIRC, KC_PLUS, KC_NO, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_LSFT,
|
||||
KC_LCTL, KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_PIPE, KC_NO, KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R, KC_LCTL,
|
||||
KC_NO, KC_NO, KC_UNDS, KC_GT, KC_RPRN, KC_NO, KC_BTN1, KC_BTN3, KC_BTN2, KC_NO, KC_NO
|
||||
),
|
||||
[GAME] = LAYOUT_planck_mit(
|
||||
KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, TG(GAME),
|
||||
KC_LALT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, KC_LSFT,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LCTL,
|
||||
KC_LCTL, A(KC_TAB), MO(SECGAME), KC_TAB, KC_SPC, LT(SECGAME, KC_ENT), KC_BSPC, KC_DEL, KC_MPRV, KC_MPLY, KC_MNXT
|
||||
),
|
||||
[SECGAME] = LAYOUT_planck_mit(
|
||||
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_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
|
||||
KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_NO, KC_NO, KC_NO, KC_P1, KC_P2, KC_P3, KC_P4, KC_P5,
|
||||
KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_NO, KC_NO, KC_P6, KC_P7, KC_P8, KC_P9, KC_P0
|
||||
)
|
||||
};
|
117
keyboards/bm40hsrgb/keymaps/signynt/readme.md
Normal file
117
keyboards/bm40hsrgb/keymaps/signynt/readme.md
Normal file
@@ -0,0 +1,117 @@
|
||||
# Signynt's Keymap: 'Sigma-Squared'
|
||||
|
||||
Sigma Squared is an adaptation & modification of the Layout [Miryoku](https://github.com/manna-harbour/qmk_firmware/blob/miryoku/users/manna-harbour_miryoku/miryoku.org#miryoku-) by *manna-harbour*
|
||||
|
||||
*manna-harbour* lays out the general principles of the layout as follows:
|
||||
|
||||
- Use layers instead of reaching.
|
||||
- Use both hands instead of contortions.
|
||||
- Use the home positions as much as possible.
|
||||
- Make full use of the thumbs.
|
||||
- Avoid unnecessary complication.
|
||||
|
||||
|
||||
|
||||
Sigma Squared modifies on **Miryoku** in the following ways:
|
||||
|
||||
- Added the Mods to the outer most columns to be easily accessed while typing with the pinkies
|
||||
- Extended the **NUMBER** layer to include symbols on the right side to allow calcualtion to be typed more easily without haveing to move between layers
|
||||
- Added a **GAME** layer to be used for gaming that emulates a more standard keyboard that most games expect
|
||||
- moves *left shift* and *left ctrl* down
|
||||
- *esc* moved to top left
|
||||
- gives access to a **SECOND GAME** layer that contains an Fn row as well as number and arrow keys right under your left fingers
|
||||
- Added Shortcuts to the bottom row to reduce the amount of keycombos needed to use commonly needed features
|
||||
- Mission Control, Screenshot, Cycling Apps & Windows
|
||||
- Added LED indicators to display what layer is currently active (only active while RGB is turned on)
|
||||
|
||||
|
||||
|
||||
### Flashing
|
||||
|
||||
- to directly flash to board:
|
||||
|
||||
`qmk flash -kb bm40hsrgb -km signynt`
|
||||
|
||||
- to only compile:
|
||||
|
||||
`qmk compile -kb bm40hsrgb -km signynt`
|
||||
|
||||
|
||||
|
||||
# Layout
|
||||
|
||||
## BASE
|
||||
|
||||
Tap the layer keys to use the black legends, hold them to activate the corresponding layer.
|
||||
|
||||
The Shortcut keys can be modified to suit your needs, or change them in your OS to match the keys.
|
||||
|
||||
If you are using MacOS I recommend swapping your *Ctrl* and *Cmd* keys in system preferences
|
||||
|
||||
The Music Control key can be pressed once to pause and be pressed twice in rapid succession to skip to the next song.
|
||||
|
||||
The Screenshot Key takes a screenshot to the clipboard if pressed once, if double tapped it will take a screenshot to be saved to the desktop.
|
||||
|
||||

|
||||
|
||||
## NAVIGATION
|
||||
|
||||
Provides access to all essential navigation keys, comfortably under your home row. Modifiers remain identical to **BASE** layer to be used for navigating lines and words.
|
||||
|
||||
*Game Layer* key takes you to the **GAME** layer. *(duh)*
|
||||
|
||||
Bottom right keys are used to swap between Virtual Desktops. You might need to modify these to fit your OS.
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
## MEDIA
|
||||
|
||||
Provides access to all basic media keys, emulating the arrow keys on the home row.
|
||||
|
||||
Also gives access to RGB controls.
|
||||
|
||||

|
||||
|
||||
## NUMBER
|
||||
|
||||
Numbers are arranged in a numpad layout beneath home row, with 0 being positioned under the thumb resting position. Layer includes all most commonly needed symbols to reduce amount of layer switching needed to type longer calculations.
|
||||
|
||||
Top right key changed to *Back Space* so corrections can be made without leaving layer.
|
||||
|
||||

|
||||
|
||||
## SYMBOL
|
||||
|
||||
Symbols are positioned over respective numbers from the **NUMBER** layer.
|
||||
|
||||
Mouse keys are positioned similarly under the home row corresponding to the arrow keys.
|
||||
|
||||
Also includes *Back Space* key for corrections.
|
||||
|
||||

|
||||
|
||||
## Fn
|
||||
|
||||
Fn keys are arranged in the same layout as the numbers, with *F10* to *F12* added to the left
|
||||
|
||||

|
||||
|
||||
## GAME
|
||||
|
||||
Somewhat emulates a regular layout needed for gaming. Top right key LED will indicate that you are on the **GAME** layer, and can be pressed to exit it. Holding one of the *Second Game* keys will give you access to **SECOND GAME**
|
||||
|
||||

|
||||
|
||||
## SECOND GAME
|
||||
|
||||
Top right key will turn red to indicate you are in the layer
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
# Contact
|
||||
|
||||
If you have any issues or questions you can reach me through Reddit at u/Signynt or on the QMK Discord
|
7
keyboards/bm40hsrgb/keymaps/signynt/rules.mk
Normal file
7
keyboards/bm40hsrgb/keymaps/signynt/rules.mk
Normal file
@@ -0,0 +1,7 @@
|
||||
#rules
|
||||
|
||||
MOUSEKEY_ENABLE = yes # Mouse keys
|
||||
BOOTMAGIC_ENABLE = full
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||
TAP_DANCE_ENABLE = yes
|
||||
#RGB_MATRIX_ENABLE = no
|
80
keyboards/bm40hsrgb/keymaps/signynt_2_loud/config.h
Normal file
80
keyboards/bm40hsrgb/keymaps/signynt_2_loud/config.h
Normal file
@@ -0,0 +1,80 @@
|
||||
// qmk flash -kb bm40hsrgb -km signynt_2_loud
|
||||
|
||||
/* Copyright 2021 Vincenzo Mitchell Barroso
|
||||
*
|
||||
* 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
|
||||
|
||||
#define RGBLIGHT_LAYERS
|
||||
#define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF
|
||||
#define RGBLIGHT_ANIMATIONS
|
||||
|
||||
//#define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS
|
||||
#define RGBLIGHT_LIMIT_VAL 10
|
||||
|
||||
//bootmagic
|
||||
#define BOOTMAGIC_KEY_SALT KC_V
|
||||
#define BOOTMAGIC_KEY_EEPROM_CLEAR KC_Q
|
||||
|
||||
#ifdef RGB_MATRIX_ENABLE
|
||||
|
||||
#define TAPPING_TERM 200
|
||||
|
||||
//--------------------------------------------------------------------------------------------------------
|
||||
|
||||
//disable broken animations
|
||||
#define DISABLE_RGB_MATRIX_ALPHAS_MODS
|
||||
#define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN
|
||||
#define DISABLE_RGB_MATRIX_BREATHING
|
||||
#define DISABLE_RGB_MATRIX_BAND_SAT
|
||||
#define DISABLE_RGB_MATRIX_BAND_VAL
|
||||
#define DISABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
|
||||
#define DISABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
|
||||
#define DISABLE_RGB_MATRIX_BAND_SPIRAL_SAT
|
||||
#define DISABLE_RGB_MATRIX_BAND_SPIRAL_VAL
|
||||
#define DISABLE_RGB_MATRIX_CYCLE_ALL
|
||||
#define DISABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
|
||||
#define DISABLE_RGB_MATRIX_CYCLE_UP_DOWN
|
||||
#define DISABLE_RGB_MATRIX_CYCLE_OUT_IN
|
||||
#define DISABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
|
||||
//#define DISABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
|
||||
//#define DISABLE_RGB_MATRIX_DUAL_BEACON
|
||||
#define DISABLE_RGB_MATRIX_CYCLE_PINWHEEL
|
||||
#define DISABLE_RGB_MATRIX_CYCLE_SPIRAL
|
||||
//#define DISABLE_RGB_MATRIX_RAINBOW_BEACON
|
||||
//#define DISABLE_RGB_MATRIX_RAINBOW_PINWHEELS
|
||||
//#define DISABLE_RGB_MATRIX_RAINDROPS
|
||||
#define DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS // DO NOT ENABLE
|
||||
//#define DISABLE_RGB_MATRIX_TYPING_HEATMAP
|
||||
//#define DISABLE_RGB_MATRIX_DIGITAL_RAIN
|
||||
//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE
|
||||
//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
|
||||
//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
|
||||
//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
|
||||
//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
|
||||
//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
|
||||
//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
|
||||
//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
|
||||
//#define DISABLE_RGB_MATRIX_SPLASH
|
||||
//#define DISABLE_RGB_MATRIX_MULTISPLASH
|
||||
//#define DISABLE_RGB_MATRIX_SOLID_SPLASH
|
||||
//#define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH
|
||||
|
||||
#undef RGB_MATRIX_STARTUP_MODE
|
||||
|
||||
#define RGBLIGHT_HUE_STEP 20
|
||||
|
||||
#endif
|
214
keyboards/bm40hsrgb/keymaps/signynt_2_loud/keymap.c
Normal file
214
keyboards/bm40hsrgb/keymaps/signynt_2_loud/keymap.c
Normal file
@@ -0,0 +1,214 @@
|
||||
// qmk flash -kb bm40hsrgb -km signynt_2_loud
|
||||
|
||||
/* Copyright 2021 Vincenzo Mitchell Barroso
|
||||
*
|
||||
* 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
|
||||
|
||||
// non-KC_ keycodes
|
||||
#define KC_RST RESET
|
||||
#define KC_TOG RGB_TOG
|
||||
#define KC_MOD RGB_MOD
|
||||
#define KC_HUI RGB_HUI
|
||||
#define KC_SAI RGB_SAI
|
||||
#define KC_VAI RGB_VAI
|
||||
|
||||
//define layers
|
||||
enum layers {BASE, MEDR, NAVR, NSSL, NSL, FUNL, GAME, SECGAME};
|
||||
|
||||
enum custom_keycodes {
|
||||
CMD_TAB = SAFE_RANGE,
|
||||
};
|
||||
|
||||
//cmd tab
|
||||
|
||||
bool is_cmd_tab_active = false;
|
||||
uint16_t cmd_tab_timer = 0;
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
switch (keycode) {
|
||||
case CMD_TAB:
|
||||
if (record->event.pressed) {
|
||||
if (!is_cmd_tab_active) {
|
||||
is_cmd_tab_active = true;
|
||||
register_code(KC_LCTL);
|
||||
}
|
||||
cmd_tab_timer = timer_read();
|
||||
register_code(KC_TAB);
|
||||
} else {
|
||||
unregister_code(KC_TAB);
|
||||
}
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
void matrix_scan_user(void) {
|
||||
if (is_cmd_tab_active) {
|
||||
if (timer_elapsed(cmd_tab_timer) > 500) {
|
||||
unregister_code(KC_LCTL);
|
||||
is_cmd_tab_active = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//layer led colors
|
||||
|
||||
void rgb_matrix_indicators_user(void) {
|
||||
|
||||
for (uint8_t i = 0; i < DRIVER_LED_TOTAL; ++i) {
|
||||
if (HAS_ANY_FLAGS(g_led_config.flags[i], LED_FLAG_MODIFIER)) {
|
||||
rgb_matrix_set_color(i, 0, 0, 0);
|
||||
}
|
||||
if (HAS_ANY_FLAGS(g_led_config.flags[i], LED_FLAG_KEYLIGHT)) {
|
||||
rgb_matrix_set_color(i, 0, 0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
//capslock
|
||||
if (host_keyboard_led_state().caps_lock) {
|
||||
for (uint8_t i = 0; i < DRIVER_LED_TOTAL; ++i) {
|
||||
if (HAS_ANY_FLAGS(g_led_config.flags[i], LED_FLAG_UNDERGLOW)) {
|
||||
rgb_matrix_set_color(i, 255, 255, 255);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//nav layer
|
||||
if (IS_LAYER_ON(NAVR)) {
|
||||
for (uint8_t i = 0; i < DRIVER_LED_TOTAL; ++i) {
|
||||
if (HAS_ANY_FLAGS(g_led_config.flags[i], LED_FLAG_UNDERGLOW)) {
|
||||
rgb_matrix_set_color(i, 0, 204, 255);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//funl layer
|
||||
if (IS_LAYER_ON(FUNL)) {
|
||||
for (uint8_t i = 0; i < DRIVER_LED_TOTAL; ++i) {
|
||||
if (HAS_ANY_FLAGS(g_led_config.flags[i], LED_FLAG_UNDERGLOW)) {
|
||||
rgb_matrix_set_color(i, 255, 0, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//nsl layer
|
||||
if (IS_LAYER_ON(NSL)) {
|
||||
for (uint8_t i = 0; i < DRIVER_LED_TOTAL; ++i) {
|
||||
if (HAS_ANY_FLAGS(g_led_config.flags[i], LED_FLAG_UNDERGLOW)) {
|
||||
rgb_matrix_set_color(i, 51, 0, 255);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//nssl layer
|
||||
if (IS_LAYER_ON(NSSL)) {
|
||||
for (uint8_t i = 0; i < DRIVER_LED_TOTAL; ++i) {
|
||||
if (HAS_ANY_FLAGS(g_led_config.flags[i], LED_FLAG_UNDERGLOW)) {
|
||||
rgb_matrix_set_color(i, 0, 255, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//game layer
|
||||
if (IS_LAYER_ON(GAME)) {
|
||||
for (uint8_t i = 0; i < DRIVER_LED_TOTAL; ++i) {
|
||||
if (HAS_ANY_FLAGS(g_led_config.flags[i], LED_FLAG_UNDERGLOW)) {
|
||||
rgb_matrix_set_color(i, 0, 204, 255);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//secgame layer
|
||||
if (IS_LAYER_ON(SECGAME)) {
|
||||
for (uint8_t i = 0; i < DRIVER_LED_TOTAL; ++i) {
|
||||
if (HAS_ANY_FLAGS(g_led_config.flags[i], LED_FLAG_UNDERGLOW)) {
|
||||
rgb_matrix_set_color(i, 255, 0, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//tap dance declarations
|
||||
enum {
|
||||
TD_MEDIA, TD_SCREEN,
|
||||
};
|
||||
|
||||
//tap dance definitions
|
||||
qk_tap_dance_action_t tap_dance_actions[] = {
|
||||
[TD_MEDIA] = ACTION_TAP_DANCE_DOUBLE( KC_MPLY , KC_MNXT ),
|
||||
[TD_SCREEN] = ACTION_TAP_DANCE_DOUBLE( (G(S(KC_S))) , S(C(KC_4)) ),
|
||||
};
|
||||
|
||||
#define KC_TD(TD_VARIABLE) TD(TD_VARIABLE)
|
||||
|
||||
//--------------------------------------------------------------------------------------------------------
|
||||
|
||||
//base
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[BASE] = LAYOUT_planck_mit(
|
||||
KC_LALT, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LALT,
|
||||
KC_LSFT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, KC_LSFT,
|
||||
KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LCTL,
|
||||
G(KC_TAB), KC_TD(TD_SCREEN), KC_ESC, LT(MEDR, KC_TAB), LT(NAVR, KC_SPC), LT(NSSL, KC_ENT), LT(NSL, KC_BSPC), LT(FUNL, KC_DEL), KC_LGUI, KC_TD(TD_MEDIA), CMD_TAB
|
||||
),
|
||||
|
||||
//layers
|
||||
[NAVR] = LAYOUT_planck_mit(
|
||||
KC_LALT, KC_RST, KC_NO, KC_NO, KC_NO, KC_NO, C(S(KC_Z)), C(A(KC_LEFT)), C(KC_X), C(KC_C), C(A(KC_RGHT)), KC_LALT,
|
||||
KC_LSFT, G(S(C(KC_F1))), G(S(C(KC_F3))), G(S(C(KC_F4))), G(S(C(KC_F2))), KC_NO, KC_CLCK, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_LSFT,
|
||||
KC_LCTL, KC_NO, KC_ALGR, KC_NO, G(S(C(KC_F5))), KC_NO, KC_INS, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_LCTL,
|
||||
TG(GAME), KC_NO, KC_NO, KC_NO, KC_NO, KC_ENT, KC_BSPC, KC_DEL, KC_NO, C(G(KC_LEFT)), C(G(KC_RIGHT))
|
||||
),
|
||||
[MEDR] = LAYOUT_planck_mit(
|
||||
KC_LALT, KC_RST, KC_NO, KC_NO, KC_NO, KC_NO, KC_TOG, KC_MOD, KC_HUI, KC_SAI, KC_VAI, KC_LALT,
|
||||
KC_LSFT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT, KC_LSFT,
|
||||
KC_LCTL, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_F13, KC_F14, KC_F15, RGB_VAI, KC_LCTL,
|
||||
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MSTP, KC_MPLY, KC_MUTE, KC_NO, KC_NO, KC_NO
|
||||
),
|
||||
[FUNL] = LAYOUT_planck_mit(
|
||||
KC_LALT, KC_F12, KC_F7, KC_F8, KC_F9, KC_PSCR, KC_F15, KC_NO, KC_NO, KC_NO, KC_RST, KC_LALT,
|
||||
KC_LSFT, KC_F11, KC_F4, KC_F5, KC_F6, KC_SLCK, KC_F14, KC_NO, KC_NO, KC_NO, KC_NO, KC_LSFT,
|
||||
KC_LCTL, KC_F10, KC_F1, KC_F2, KC_F3, KC_PAUS, KC_F13, KC_NO, KC_NO, KC_NO, KC_NO, KC_LCTL,
|
||||
KC_NO, KC_NO, KC_TAB, KC_APP, KC_SPC, KC_UNDS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
|
||||
),
|
||||
[NSL] = LAYOUT_planck_mit(
|
||||
KC_LALT, KC_LPRN, KC_7, KC_8, KC_9, KC_RPRN, KC_LBRC, KC_AMPR, KC_ASTR, KC_LCBR, KC_RBRC, KC_BSPC,
|
||||
KC_LSFT, KC_COLN, KC_4, KC_5, KC_6, KC_EQL, KC_LCBR, KC_DLR, KC_PERC, KC_CIRC, KC_RCBR, KC_LSFT,
|
||||
KC_LCTL, KC_GRV, KC_1, KC_2, KC_3, KC_PLUS, KC_TILD, KC_EXLM, KC_COMM, KC_DOT, KC_SLSH, KC_LCTL,
|
||||
A(S(C(KC_N))), S(C(KC_5)), KC_NO, KC_UNDS, KC_0, KC_MINS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
|
||||
),
|
||||
[NSSL] = LAYOUT_planck_mit(
|
||||
KC_LALT, KC_LCBR, KC_AMPR, KC_ASTR, KC_LPRN, KC_RCBR, KC_NO, KC_NO, KC_NO, KC_NO, KC_RST, KC_BSPC,
|
||||
KC_LSFT, KC_SCLN, KC_DLR, KC_PERC, KC_CIRC, KC_PLUS, KC_NO, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_LSFT,
|
||||
KC_LCTL, KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_PIPE, KC_NO, KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R, KC_LCTL,
|
||||
KC_NO, KC_NO, KC_UNDS, KC_GT, KC_RPRN, KC_NO, KC_BTN1, KC_BTN3, KC_BTN2, KC_NO, KC_NO
|
||||
),
|
||||
[GAME] = LAYOUT_planck_mit(
|
||||
KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, TG(GAME),
|
||||
KC_LALT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, KC_LSFT,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LCTL,
|
||||
KC_LCTL, A(KC_TAB), MO(SECGAME), KC_TAB, KC_SPC, LT(SECGAME, KC_ENT), KC_BSPC, KC_DEL, KC_MPRV, KC_MPLY, KC_MNXT
|
||||
),
|
||||
[SECGAME] = LAYOUT_planck_mit(
|
||||
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_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
|
||||
KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_NO, KC_NO, KC_NO, KC_P1, KC_P2, KC_P3, KC_P4, KC_P5,
|
||||
KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_NO, KC_NO, KC_P6, KC_P7, KC_P8, KC_P9, KC_P0
|
||||
)
|
||||
};
|
117
keyboards/bm40hsrgb/keymaps/signynt_2_loud/readme.md
Normal file
117
keyboards/bm40hsrgb/keymaps/signynt_2_loud/readme.md
Normal file
@@ -0,0 +1,117 @@
|
||||
# Signynt's Keymap: 'Sigma-Squared'
|
||||
|
||||
Sigma Squared is an adaptation & modification of the Layout [Miryoku](https://github.com/manna-harbour/qmk_firmware/blob/miryoku/users/manna-harbour_miryoku/miryoku.org#miryoku-) by *manna-harbour*
|
||||
|
||||
*manna-harbour* lays out the general principles of the layout as follows:
|
||||
|
||||
- Use layers instead of reaching.
|
||||
- Use both hands instead of contortions.
|
||||
- Use the home positions as much as possible.
|
||||
- Make full use of the thumbs.
|
||||
- Avoid unnecessary complication.
|
||||
|
||||
|
||||
|
||||
Sigma Squared modifies on **Miryoku** in the following ways:
|
||||
|
||||
- Added the Mods to the outer most columns to be easily accessed while typing with the pinkies
|
||||
- Extended the **NUMBER** layer to include symbols on the right side to allow calcualtion to be typed more easily without haveing to move between layers
|
||||
- Added a **GAME** layer to be used for gaming that emulates a more standard keyboard that most games expect
|
||||
- moves *left shift* and *left ctrl* down
|
||||
- *esc* moved to top left
|
||||
- gives access to a **SECOND GAME** layer that contains an Fn row as well as number and arrow keys right under your left fingers
|
||||
- Added Shortcuts to the bottom row to reduce the amount of keycombos needed to use commonly needed features
|
||||
- Mission Control, Screenshot, Cycling Apps & Windows
|
||||
- Added LED indicators to display what layer is currently active (only active while RGB is turned on)
|
||||
|
||||
|
||||
|
||||
### Flashing
|
||||
|
||||
- to directly flash to board:
|
||||
|
||||
`qmk flash -kb bm40hsrgb -km signynt`
|
||||
|
||||
- to only compile:
|
||||
|
||||
`qmk compile -kb bm40hsrgb -km signynt`
|
||||
|
||||
|
||||
|
||||
# Layout
|
||||
|
||||
## BASE
|
||||
|
||||
Tap the layer keys to use the black legends, hold them to activate the corresponding layer.
|
||||
|
||||
The Shortcut keys can be modified to suit your needs, or change them in your OS to match the keys.
|
||||
|
||||
If you are using MacOS I recommend swapping your *Ctrl* and *Cmd* keys in system preferences
|
||||
|
||||
The Music Control key can be pressed once to pause and be pressed twice in rapid succession to skip to the next song.
|
||||
|
||||
The Screenshot Key takes a screenshot to the clipboard if pressed once, if double tapped it will take a screenshot to be saved to the desktop.
|
||||
|
||||

|
||||
|
||||
## NAVIGATION
|
||||
|
||||
Provides access to all essential navigation keys, comfortably under your home row. Modifiers remain identical to **BASE** layer to be used for navigating lines and words.
|
||||
|
||||
*Game Layer* key takes you to the **GAME** layer. *(duh)*
|
||||
|
||||
Bottom right keys are used to swap between Virtual Desktops. You might need to modify these to fit your OS.
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
## MEDIA
|
||||
|
||||
Provides access to all basic media keys, emulating the arrow keys on the home row.
|
||||
|
||||
Also gives access to RGB controls.
|
||||
|
||||

|
||||
|
||||
## NUMBER
|
||||
|
||||
Numbers are arranged in a numpad layout beneath home row, with 0 being positioned under the thumb resting position. Layer includes all most commonly needed symbols to reduce amount of layer switching needed to type longer calculations.
|
||||
|
||||
Top right key changed to *Back Space* so corrections can be made without leaving layer.
|
||||
|
||||

|
||||
|
||||
## SYMBOL
|
||||
|
||||
Symbols are positioned over respective numbers from the **NUMBER** layer.
|
||||
|
||||
Mouse keys are positioned similarly under the home row corresponding to the arrow keys.
|
||||
|
||||
Also includes *Back Space* key for corrections.
|
||||
|
||||

|
||||
|
||||
## Fn
|
||||
|
||||
Fn keys are arranged in the same layout as the numbers, with *F10* to *F12* added to the left
|
||||
|
||||

|
||||
|
||||
## GAME
|
||||
|
||||
Somewhat emulates a regular layout needed for gaming. Top right key LED will indicate that you are on the **GAME** layer, and can be pressed to exit it. Holding one of the *Second Game* keys will give you access to **SECOND GAME**
|
||||
|
||||

|
||||
|
||||
## SECOND GAME
|
||||
|
||||
Top right key will turn red to indicate you are in the layer
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
# Contact
|
||||
|
||||
If you have any issues or questions you can reach me through Reddit at u/Signynt or on the QMK Discord
|
7
keyboards/bm40hsrgb/keymaps/signynt_2_loud/rules.mk
Normal file
7
keyboards/bm40hsrgb/keymaps/signynt_2_loud/rules.mk
Normal file
@@ -0,0 +1,7 @@
|
||||
#rules
|
||||
|
||||
MOUSEKEY_ENABLE = yes # Mouse keys
|
||||
BOOTMAGIC_ENABLE = full
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||
TAP_DANCE_ENABLE = yes
|
||||
#RGB_MATRIX_ENABLE = no
|
80
keyboards/bm40hsrgb/keymaps/signynt_2_quiet/config.h
Normal file
80
keyboards/bm40hsrgb/keymaps/signynt_2_quiet/config.h
Normal file
@@ -0,0 +1,80 @@
|
||||
// qmk flash -kb bm40hsrgb -km signynt_2_quiet
|
||||
|
||||
/* Copyright 2021 Vincenzo Mitchell Barroso
|
||||
*
|
||||
* 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
|
||||
|
||||
#define RGBLIGHT_LAYERS
|
||||
#define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF
|
||||
#define RGBLIGHT_ANIMATIONS
|
||||
|
||||
//#define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS
|
||||
#define RGBLIGHT_LIMIT_VAL 10
|
||||
|
||||
//bootmagic
|
||||
#define BOOTMAGIC_KEY_SALT KC_V
|
||||
#define BOOTMAGIC_KEY_EEPROM_CLEAR KC_Q
|
||||
|
||||
#ifdef RGB_MATRIX_ENABLE
|
||||
|
||||
#define TAPPING_TERM 200
|
||||
|
||||
//--------------------------------------------------------------------------------------------------------
|
||||
|
||||
//disable broken animations
|
||||
#define DISABLE_RGB_MATRIX_ALPHAS_MODS
|
||||
#define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN
|
||||
#define DISABLE_RGB_MATRIX_BREATHING
|
||||
#define DISABLE_RGB_MATRIX_BAND_SAT
|
||||
#define DISABLE_RGB_MATRIX_BAND_VAL
|
||||
#define DISABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
|
||||
#define DISABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
|
||||
#define DISABLE_RGB_MATRIX_BAND_SPIRAL_SAT
|
||||
#define DISABLE_RGB_MATRIX_BAND_SPIRAL_VAL
|
||||
#define DISABLE_RGB_MATRIX_CYCLE_ALL
|
||||
#define DISABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
|
||||
#define DISABLE_RGB_MATRIX_CYCLE_UP_DOWN
|
||||
#define DISABLE_RGB_MATRIX_CYCLE_OUT_IN
|
||||
#define DISABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
|
||||
//#define DISABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
|
||||
//#define DISABLE_RGB_MATRIX_DUAL_BEACON
|
||||
#define DISABLE_RGB_MATRIX_CYCLE_PINWHEEL
|
||||
#define DISABLE_RGB_MATRIX_CYCLE_SPIRAL
|
||||
//#define DISABLE_RGB_MATRIX_RAINBOW_BEACON
|
||||
//#define DISABLE_RGB_MATRIX_RAINBOW_PINWHEELS
|
||||
//#define DISABLE_RGB_MATRIX_RAINDROPS
|
||||
#define DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS // DO NOT ENABLE
|
||||
//#define DISABLE_RGB_MATRIX_TYPING_HEATMAP
|
||||
//#define DISABLE_RGB_MATRIX_DIGITAL_RAIN
|
||||
//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE
|
||||
//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
|
||||
//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
|
||||
//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
|
||||
//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
|
||||
//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
|
||||
//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
|
||||
//#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
|
||||
//#define DISABLE_RGB_MATRIX_SPLASH
|
||||
//#define DISABLE_RGB_MATRIX_MULTISPLASH
|
||||
//#define DISABLE_RGB_MATRIX_SOLID_SPLASH
|
||||
//#define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH
|
||||
|
||||
#undef RGB_MATRIX_STARTUP_MODE
|
||||
|
||||
#define RGBLIGHT_HUE_STEP 20
|
||||
|
||||
#endif
|
178
keyboards/bm40hsrgb/keymaps/signynt_2_quiet/keymap.c
Normal file
178
keyboards/bm40hsrgb/keymaps/signynt_2_quiet/keymap.c
Normal file
@@ -0,0 +1,178 @@
|
||||
// qmk flash -kb bm40hsrgb -km signynt_2_quiet
|
||||
|
||||
/* Copyright 2021 Vincenzo Mitchell Barroso
|
||||
*
|
||||
* 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
|
||||
|
||||
// non-KC_ keycodes
|
||||
#define KC_RST RESET
|
||||
#define KC_TOG RGB_TOG
|
||||
#define KC_MOD RGB_MOD
|
||||
#define KC_HUI RGB_HUI
|
||||
#define KC_SAI RGB_SAI
|
||||
#define KC_VAI RGB_VAI
|
||||
|
||||
//define layers
|
||||
enum layers {BASE, MEDR, NAVR, NSSL, NSL, FUNL, GAME, SECGAME};
|
||||
|
||||
enum custom_keycodes {
|
||||
CMD_TAB = SAFE_RANGE,
|
||||
};
|
||||
|
||||
//cmd tab
|
||||
|
||||
bool is_cmd_tab_active = false;
|
||||
uint16_t cmd_tab_timer = 0;
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
switch (keycode) {
|
||||
case CMD_TAB:
|
||||
if (record->event.pressed) {
|
||||
if (!is_cmd_tab_active) {
|
||||
is_cmd_tab_active = true;
|
||||
register_code(KC_LCTL);
|
||||
}
|
||||
cmd_tab_timer = timer_read();
|
||||
register_code(KC_TAB);
|
||||
} else {
|
||||
unregister_code(KC_TAB);
|
||||
}
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
void matrix_scan_user(void) {
|
||||
if (is_cmd_tab_active) {
|
||||
if (timer_elapsed(cmd_tab_timer) > 500) {
|
||||
unregister_code(KC_LCTL);
|
||||
is_cmd_tab_active = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//layer led colors
|
||||
|
||||
void rgb_matrix_indicators_user(void) {
|
||||
|
||||
for (uint8_t i = 0; i < DRIVER_LED_TOTAL; ++i) {
|
||||
if (HAS_ANY_FLAGS(g_led_config.flags[i], LED_FLAG_MODIFIER)) {
|
||||
rgb_matrix_set_color(i, 0, 0, 0);
|
||||
}
|
||||
if (HAS_ANY_FLAGS(g_led_config.flags[i], LED_FLAG_KEYLIGHT)) {
|
||||
rgb_matrix_set_color(i, 0, 0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
//capslock
|
||||
if (host_keyboard_led_state().caps_lock) {
|
||||
for (uint8_t i = 0; i < DRIVER_LED_TOTAL; ++i) {
|
||||
if (HAS_ANY_FLAGS(g_led_config.flags[i], LED_FLAG_UNDERGLOW)) {
|
||||
rgb_matrix_set_color(i, 255, 255, 255);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//game layer
|
||||
if (IS_LAYER_ON(GAME)) {
|
||||
for (uint8_t i = 0; i < DRIVER_LED_TOTAL; ++i) {
|
||||
if (HAS_ANY_FLAGS(g_led_config.flags[i], LED_FLAG_UNDERGLOW)) {
|
||||
rgb_matrix_set_color(i, 0, 204, 255);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//secgame layer
|
||||
if (IS_LAYER_ON(SECGAME)) {
|
||||
for (uint8_t i = 0; i < DRIVER_LED_TOTAL; ++i) {
|
||||
if (HAS_ANY_FLAGS(g_led_config.flags[i], LED_FLAG_UNDERGLOW)) {
|
||||
rgb_matrix_set_color(i, 255, 0, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//tap dance declarations
|
||||
enum {
|
||||
TD_MEDIA, TD_SCREEN,
|
||||
};
|
||||
|
||||
//tap dance definitions
|
||||
qk_tap_dance_action_t tap_dance_actions[] = {
|
||||
[TD_MEDIA] = ACTION_TAP_DANCE_DOUBLE( KC_MPLY , KC_MNXT ),
|
||||
[TD_SCREEN] = ACTION_TAP_DANCE_DOUBLE( (G(S(KC_S))) , S(C(KC_4)) ),
|
||||
};
|
||||
|
||||
#define KC_TD(TD_VARIABLE) TD(TD_VARIABLE)
|
||||
|
||||
//--------------------------------------------------------------------------------------------------------
|
||||
|
||||
//base
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[BASE] = LAYOUT_planck_mit(
|
||||
KC_LALT, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LALT,
|
||||
KC_LSFT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, KC_LSFT,
|
||||
KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LCTL,
|
||||
G(KC_TAB), KC_TD(TD_SCREEN), KC_ESC, LT(MEDR, KC_TAB), LT(NAVR, KC_SPC), LT(NSSL, KC_ENT), LT(NSL, KC_BSPC), LT(FUNL, KC_DEL), KC_LGUI, KC_TD(TD_MEDIA), CMD_TAB
|
||||
),
|
||||
|
||||
//layers
|
||||
[NAVR] = LAYOUT_planck_mit(
|
||||
KC_LALT, KC_RST, KC_NO, KC_NO, KC_NO, KC_NO, C(S(KC_Z)), C(A(KC_LEFT)), C(KC_X), C(KC_C), C(A(KC_RGHT)), KC_LALT,
|
||||
KC_LSFT, G(S(C(KC_F1))), G(S(C(KC_F3))), G(S(C(KC_F4))), G(S(C(KC_F2))), KC_NO, KC_CLCK, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_LSFT,
|
||||
KC_LCTL, KC_NO, KC_ALGR, KC_NO, G(S(C(KC_F5))), KC_NO, KC_INS, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_LCTL,
|
||||
TG(GAME), KC_NO, KC_NO, KC_NO, KC_NO, KC_ENT, KC_BSPC, KC_DEL, KC_NO, C(G(KC_LEFT)), C(G(KC_RIGHT))
|
||||
),
|
||||
[MEDR] = LAYOUT_planck_mit(
|
||||
KC_LALT, KC_RST, KC_NO, KC_NO, KC_NO, KC_NO, KC_TOG, KC_MOD, KC_HUI, KC_SAI, KC_VAI, KC_LALT,
|
||||
KC_LSFT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT, KC_LSFT,
|
||||
KC_LCTL, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_F13, KC_F14, KC_F15, RGB_VAI, KC_LCTL,
|
||||
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MSTP, KC_MPLY, KC_MUTE, KC_NO, KC_NO, KC_NO
|
||||
),
|
||||
[FUNL] = LAYOUT_planck_mit(
|
||||
KC_LALT, KC_F12, KC_F7, KC_F8, KC_F9, KC_PSCR, KC_F15, KC_NO, KC_NO, KC_NO, KC_RST, KC_LALT,
|
||||
KC_LSFT, KC_F11, KC_F4, KC_F5, KC_F6, KC_SLCK, KC_F14, KC_NO, KC_NO, KC_NO, KC_NO, KC_LSFT,
|
||||
KC_LCTL, KC_F10, KC_F1, KC_F2, KC_F3, KC_PAUS, KC_F13, KC_NO, KC_NO, KC_NO, KC_NO, KC_LCTL,
|
||||
KC_NO, KC_NO, KC_TAB, KC_APP, KC_SPC, KC_UNDS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
|
||||
),
|
||||
[NSL] = LAYOUT_planck_mit(
|
||||
KC_LALT, KC_LPRN, KC_7, KC_8, KC_9, KC_RPRN, KC_LBRC, KC_AMPR, KC_ASTR, KC_LCBR, KC_RBRC, KC_BSPC,
|
||||
KC_LSFT, KC_COLN, KC_4, KC_5, KC_6, KC_EQL, KC_LCBR, KC_DLR, KC_PERC, KC_CIRC, KC_RCBR, KC_LSFT,
|
||||
KC_LCTL, KC_GRV, KC_1, KC_2, KC_3, KC_PLUS, KC_TILD, KC_EXLM, KC_COMM, KC_DOT, KC_SLSH, KC_LCTL,
|
||||
A(S(C(KC_N))), S(C(KC_5)), KC_NO, KC_UNDS, KC_0, KC_MINS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
|
||||
),
|
||||
[NSSL] = LAYOUT_planck_mit(
|
||||
KC_LALT, KC_LCBR, KC_AMPR, KC_ASTR, KC_LPRN, KC_RCBR, KC_NO, KC_NO, KC_NO, KC_NO, KC_RST, KC_BSPC,
|
||||
KC_LSFT, KC_SCLN, KC_DLR, KC_PERC, KC_CIRC, KC_PLUS, KC_NO, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_LSFT,
|
||||
KC_LCTL, KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_PIPE, KC_NO, KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R, KC_LCTL,
|
||||
KC_NO, KC_NO, KC_UNDS, KC_GT, KC_RPRN, KC_NO, KC_BTN1, KC_BTN3, KC_BTN2, KC_NO, KC_NO
|
||||
),
|
||||
[GAME] = LAYOUT_planck_mit(
|
||||
KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, TG(GAME),
|
||||
KC_LALT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, KC_LSFT,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LCTL,
|
||||
KC_LCTL, A(KC_TAB), MO(SECGAME), KC_TAB, KC_SPC, LT(SECGAME, KC_ENT), KC_BSPC, KC_DEL, KC_MPRV, KC_MPLY, KC_MNXT
|
||||
),
|
||||
[SECGAME] = LAYOUT_planck_mit(
|
||||
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_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
|
||||
KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_NO, KC_NO, KC_NO, KC_P1, KC_P2, KC_P3, KC_P4, KC_P5,
|
||||
KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_NO, KC_NO, KC_P6, KC_P7, KC_P8, KC_P9, KC_P0
|
||||
)
|
||||
};
|
117
keyboards/bm40hsrgb/keymaps/signynt_2_quiet/readme.md
Normal file
117
keyboards/bm40hsrgb/keymaps/signynt_2_quiet/readme.md
Normal file
@@ -0,0 +1,117 @@
|
||||
# Signynt's Keymap: 'Sigma-Squared'
|
||||
|
||||
Sigma Squared is an adaptation & modification of the Layout [Miryoku](https://github.com/manna-harbour/qmk_firmware/blob/miryoku/users/manna-harbour_miryoku/miryoku.org#miryoku-) by *manna-harbour*
|
||||
|
||||
*manna-harbour* lays out the general principles of the layout as follows:
|
||||
|
||||
- Use layers instead of reaching.
|
||||
- Use both hands instead of contortions.
|
||||
- Use the home positions as much as possible.
|
||||
- Make full use of the thumbs.
|
||||
- Avoid unnecessary complication.
|
||||
|
||||
|
||||
|
||||
Sigma Squared modifies on **Miryoku** in the following ways:
|
||||
|
||||
- Added the Mods to the outer most columns to be easily accessed while typing with the pinkies
|
||||
- Extended the **NUMBER** layer to include symbols on the right side to allow calcualtion to be typed more easily without haveing to move between layers
|
||||
- Added a **GAME** layer to be used for gaming that emulates a more standard keyboard that most games expect
|
||||
- moves *left shift* and *left ctrl* down
|
||||
- *esc* moved to top left
|
||||
- gives access to a **SECOND GAME** layer that contains an Fn row as well as number and arrow keys right under your left fingers
|
||||
- Added Shortcuts to the bottom row to reduce the amount of keycombos needed to use commonly needed features
|
||||
- Mission Control, Screenshot, Cycling Apps & Windows
|
||||
- Added LED indicators to display what layer is currently active (only active while RGB is turned on)
|
||||
|
||||
|
||||
|
||||
### Flashing
|
||||
|
||||
- to directly flash to board:
|
||||
|
||||
`qmk flash -kb bm40hsrgb -km signynt`
|
||||
|
||||
- to only compile:
|
||||
|
||||
`qmk compile -kb bm40hsrgb -km signynt`
|
||||
|
||||
|
||||
|
||||
# Layout
|
||||
|
||||
## BASE
|
||||
|
||||
Tap the layer keys to use the black legends, hold them to activate the corresponding layer.
|
||||
|
||||
The Shortcut keys can be modified to suit your needs, or change them in your OS to match the keys.
|
||||
|
||||
If you are using MacOS I recommend swapping your *Ctrl* and *Cmd* keys in system preferences
|
||||
|
||||
The Music Control key can be pressed once to pause and be pressed twice in rapid succession to skip to the next song.
|
||||
|
||||
The Screenshot Key takes a screenshot to the clipboard if pressed once, if double tapped it will take a screenshot to be saved to the desktop.
|
||||
|
||||

|
||||
|
||||
## NAVIGATION
|
||||
|
||||
Provides access to all essential navigation keys, comfortably under your home row. Modifiers remain identical to **BASE** layer to be used for navigating lines and words.
|
||||
|
||||
*Game Layer* key takes you to the **GAME** layer. *(duh)*
|
||||
|
||||
Bottom right keys are used to swap between Virtual Desktops. You might need to modify these to fit your OS.
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
## MEDIA
|
||||
|
||||
Provides access to all basic media keys, emulating the arrow keys on the home row.
|
||||
|
||||
Also gives access to RGB controls.
|
||||
|
||||

|
||||
|
||||
## NUMBER
|
||||
|
||||
Numbers are arranged in a numpad layout beneath home row, with 0 being positioned under the thumb resting position. Layer includes all most commonly needed symbols to reduce amount of layer switching needed to type longer calculations.
|
||||
|
||||
Top right key changed to *Back Space* so corrections can be made without leaving layer.
|
||||
|
||||

|
||||
|
||||
## SYMBOL
|
||||
|
||||
Symbols are positioned over respective numbers from the **NUMBER** layer.
|
||||
|
||||
Mouse keys are positioned similarly under the home row corresponding to the arrow keys.
|
||||
|
||||
Also includes *Back Space* key for corrections.
|
||||
|
||||

|
||||
|
||||
## Fn
|
||||
|
||||
Fn keys are arranged in the same layout as the numbers, with *F10* to *F12* added to the left
|
||||
|
||||

|
||||
|
||||
## GAME
|
||||
|
||||
Somewhat emulates a regular layout needed for gaming. Top right key LED will indicate that you are on the **GAME** layer, and can be pressed to exit it. Holding one of the *Second Game* keys will give you access to **SECOND GAME**
|
||||
|
||||

|
||||
|
||||
## SECOND GAME
|
||||
|
||||
Top right key will turn red to indicate you are in the layer
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
# Contact
|
||||
|
||||
If you have any issues or questions you can reach me through Reddit at u/Signynt or on the QMK Discord
|
7
keyboards/bm40hsrgb/keymaps/signynt_2_quiet/rules.mk
Normal file
7
keyboards/bm40hsrgb/keymaps/signynt_2_quiet/rules.mk
Normal file
@@ -0,0 +1,7 @@
|
||||
#rules
|
||||
|
||||
MOUSEKEY_ENABLE = yes # Mouse keys
|
||||
BOOTMAGIC_ENABLE = full
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||
TAP_DANCE_ENABLE = yes
|
||||
#RGB_MATRIX_ENABLE = no
|
@@ -58,9 +58,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
),
|
||||
|
||||
[_ADJUST] = LAYOUT( /* Shifted number/function layout, for per-key control. Only active when shift is held, and number is toggled or held */
|
||||
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, _______, _______, KC_UP, _______, _______, _______,
|
||||
KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______,
|
||||
KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, _______, _______, _______, _______, _______, _______,
|
||||
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, _______, KC_PGUP, KC_UP, KC_PGDN, _______, _______,
|
||||
KC_LGUI, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______,
|
||||
KC_LSFT, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
@@ -5,47 +5,47 @@
|
||||
"width": 11.5,
|
||||
"height": 5,
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"LAYOUT_default": {
|
||||
"layout": [
|
||||
{"label":"RE", "x":4.25, "y":0},
|
||||
{"label":"RE", "x":6.25, "y":0},
|
||||
{"label":"E", "x":2, "y":0.25},
|
||||
{"label":"I", "x":8.5, "y":0.25},
|
||||
{"label":"W", "x":1, "y":0.5},
|
||||
{"label":"O", "x":9.5, "y":0.5},
|
||||
{"label":"Q", "x":0, "y":0.75},
|
||||
{"label":"W", "x":1, "y":0.5},
|
||||
{"label":"E", "x":2, "y":0.25},
|
||||
{"label":"R", "x":3, "y":0.75},
|
||||
{"label":"U", "x":7.5, "y":0.75},
|
||||
{"label":"P", "x":10.5, "y":0.75},
|
||||
{"label":"T", "x":4, "y":1},
|
||||
{"label":"Delete", "x":5, "y":1, "w":1.5},
|
||||
{"label":"Y", "x":6.5, "y":1},
|
||||
{"label":"D", "x":2, "y":1.25},
|
||||
{"label":"K", "x":8.5, "y":1.25},
|
||||
{"label":"S", "x":1, "y":1.5},
|
||||
{"label":"L", "x":9.5, "y":1.5},
|
||||
{"label":"U", "x":7.5, "y":0.75},
|
||||
{"label":"I", "x":8.5, "y":0.25},
|
||||
{"label":"O", "x":9.5, "y":0.5},
|
||||
{"label":"P", "x":10.5, "y":0.75},
|
||||
{"label":"A", "x":0, "y":1.75},
|
||||
{"label":"S", "x":1, "y":1.5},
|
||||
{"label":"D", "x":2, "y":1.25},
|
||||
{"label":"F", "x":3, "y":1.75},
|
||||
{"label":"J", "x":7.5, "y":1.75},
|
||||
{"label":"\"", "x":10.5, "y":1.75},
|
||||
{"label":"G", "x":4, "y":2},
|
||||
{"label":"Tab", "x":5, "y":2, "w":1.5},
|
||||
{"label":"H", "x":6.5, "y":2},
|
||||
{"label":"C", "x":2, "y":2.25},
|
||||
{"label":"<", "x":8.5, "y":2.25},
|
||||
{"label":"X", "x":1, "y":2.5},
|
||||
{"label":">", "x":9.5, "y":2.5},
|
||||
{"label":"J", "x":7.5, "y":1.75},
|
||||
{"label":"K", "x":8.5, "y":1.25},
|
||||
{"label":"L", "x":9.5, "y":1.5},
|
||||
{"label":"\"", "x":10.5, "y":1.75},
|
||||
{"label":"Z", "x":0, "y":2.75},
|
||||
{"label":"X", "x":1, "y":2.5},
|
||||
{"label":"C", "x":2, "y":2.25},
|
||||
{"label":"V", "x":3, "y":2.75},
|
||||
{"label":"M", "x":7.5, "y":2.75},
|
||||
{"label":"?", "x":10.5, "y":2.75},
|
||||
{"label":"B", "x":4, "y":3},
|
||||
{"label":"Shift", "x":5, "y":3, "w":1.5},
|
||||
{"label":"Shift", "x":5, "y":3, "w":1.5},
|
||||
{"label":"N", "x":6.5, "y":3},
|
||||
{"label":"M", "x":7.5, "y":2.75},
|
||||
{"label":"<", "x":8.5, "y":2.25},
|
||||
{"label":">", "x":9.5, "y":2.5},
|
||||
{"label":"?", "x":10.5, "y":2.75},
|
||||
{"label":"Ctrl", "x":2.5, "y":4, "w":1.25},
|
||||
{"label":"Backspace", "x":3.75, "y":4, "w":2},
|
||||
{"label":"Space", "x":5.75, "y":4, "w":2},
|
||||
{"label":"Alt", "x":7.75, "y":4, "w":1.25}]
|
||||
{"label":"Alt", "x":7.75, "y":4, "w":1.25}]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -131,7 +131,7 @@ inline void ergodox_led_all_set(uint8_t n) {}
|
||||
{ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D }, \
|
||||
{ k20, k21, k22, k23, k24, k25, KC_NO, KC_NO, k28, k29, k2A, k2B, k2C, k2D }, \
|
||||
{ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D }, \
|
||||
{ k40, k41, k42, k43, k44, k45, k45, k47, k48, k49, k4A, k4B, k4C, k4D }, \
|
||||
{ k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4A, k4B, k4C, k4D }, \
|
||||
{ KC_NO, k51, k52, k53, k54, k55, k56, k57, k58, k59, k5A, k5B, k5C, KC_NO } \
|
||||
}
|
||||
|
||||
|
53
keyboards/genone/eclipse_65/keymaps/via/keymap.c
Normal file
53
keyboards/genone/eclipse_65/keymaps/via/keymap.c
Normal file
@@ -0,0 +1,53 @@
|
||||
/* Copyright 2020 GEN ONE LLC
|
||||
*
|
||||
* 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] = {
|
||||
|
||||
// Default layer
|
||||
[0] = LAYOUT_65_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_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_PGUP,
|
||||
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_PGDN,
|
||||
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_END,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
|
||||
|
||||
// Fn1 Layer
|
||||
[1] = LAYOUT_65_ansi(
|
||||
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_DEL, KC_TRNS,
|
||||
KC_CAPS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_INS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
|
||||
|
||||
// Fn2 Layer
|
||||
[2] = LAYOUT_65_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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
|
||||
|
||||
// Fn3 Layer
|
||||
[3] = LAYOUT_65_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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
|
||||
|
||||
};
|
2
keyboards/genone/eclipse_65/keymaps/via/rules.mk
Normal file
2
keyboards/genone/eclipse_65/keymaps/via/rules.mk
Normal file
@@ -0,0 +1,2 @@
|
||||
VIA_ENABLE = yes
|
||||
LTO_ENABLE = yes
|
@@ -1,145 +0,0 @@
|
||||
/* Copyright 2018 Jack Humbert
|
||||
* Copyright 2018 Yiancar
|
||||
*
|
||||
* 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/>.
|
||||
*/
|
||||
|
||||
/* This library is only valid for STM32 processors.
|
||||
* This library follows the convention of the AVR i2c_master library.
|
||||
* As a result addresses are expected to be already shifted (addr << 1).
|
||||
* I2CD1 is the default driver which corresponds to pins B6 and B7. This
|
||||
* can be changed.
|
||||
* Please ensure that HAL_USE_I2C is TRUE in the halconf.h file and that
|
||||
* STM32_I2C_USE_I2C1 is TRUE in the mcuconf.h file. Pins B6 and B7 are used
|
||||
* but using any other I2C pins should be trivial.
|
||||
*/
|
||||
#include "quantum.h"
|
||||
#include "i2c_master.h"
|
||||
#include "print.h"
|
||||
#include <string.h>
|
||||
#include <hal.h>
|
||||
|
||||
static uint8_t i2c_address;
|
||||
|
||||
I2CDriver *drivers[I2C_COUNT];
|
||||
|
||||
static const I2CConfig i2cconfig = {
|
||||
#if defined(USE_I2CV1_CONTRIB)
|
||||
I2C1_CLOCK_SPEED,
|
||||
#elif defined(USE_I2CV1)
|
||||
I2C1_OPMODE,
|
||||
I2C1_CLOCK_SPEED,
|
||||
I2C1_DUTY_CYCLE,
|
||||
#else
|
||||
// This configures the I2C clock to 400khz assuming a 72Mhz clock
|
||||
// For more info : https://www.st.com/en/embedded-software/stsw-stm32126.html
|
||||
STM32_TIMINGR_PRESC(I2C1_TIMINGR_PRESC) | STM32_TIMINGR_SCLDEL(I2C1_TIMINGR_SCLDEL) | STM32_TIMINGR_SDADEL(I2C1_TIMINGR_SDADEL) | STM32_TIMINGR_SCLH(I2C1_TIMINGR_SCLH) | STM32_TIMINGR_SCLL(I2C1_TIMINGR_SCLL), 0, 0
|
||||
#endif
|
||||
};
|
||||
|
||||
static i2c_status_t chibios_to_qmk(const msg_t* status) {
|
||||
switch (*status) {
|
||||
case I2C_NO_ERROR:
|
||||
return I2C_STATUS_SUCCESS;
|
||||
case I2C_TIMEOUT:
|
||||
return I2C_STATUS_TIMEOUT;
|
||||
// I2C_BUS_ERROR, I2C_ARBITRATION_LOST, I2C_ACK_FAILURE, I2C_OVERRUN, I2C_PEC_ERROR, I2C_SMB_ALERT
|
||||
default:
|
||||
return I2C_STATUS_ERROR;
|
||||
}
|
||||
}
|
||||
|
||||
__attribute__((weak)) void i2c_init(I2CDriver *driver, ioportid_t scl_port, ioportid_t sda_port, iopadid_t scl_pad, iopadid_t sda_pad) {
|
||||
static uint8_t index = 0;
|
||||
if (index < I2C_COUNT) {
|
||||
|
||||
// Try releasing special pins for a short time
|
||||
palSetPadMode(scl_port, scl_pad, PAL_MODE_INPUT);
|
||||
palSetPadMode(sda_port, sda_pad, PAL_MODE_INPUT);
|
||||
|
||||
chThdSleepMilliseconds(10);
|
||||
|
||||
#if defined(USE_GPIOV1)
|
||||
palSetPadMode(scl_port, scl_pad, I2C1_SCL_PAL_MODE);
|
||||
palSetPadMode(sda_port, sda_pad, I2C1_SDA_PAL_MODE);
|
||||
#else
|
||||
palSetPadMode(scl_port, scl_pad, PAL_MODE_ALTERNATE(I2C1_SCL_PAL_MODE) | PAL_STM32_OTYPE_OPENDRAIN);
|
||||
palSetPadMode(sda_port, sda_pad, PAL_MODE_ALTERNATE(I2C1_SDA_PAL_MODE) | PAL_STM32_OTYPE_OPENDRAIN);
|
||||
#endif
|
||||
|
||||
drivers[index++] = driver;
|
||||
}
|
||||
}
|
||||
|
||||
i2c_status_t i2c_start(uint8_t index, uint8_t address) {
|
||||
if(index >= I2C_COUNT) {
|
||||
return I2C_STATUS_ERROR;
|
||||
}
|
||||
i2c_address = address;
|
||||
i2cStart(drivers[index], &i2cconfig);
|
||||
return I2C_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
i2c_status_t i2c_transmit(uint8_t index, uint8_t address, const uint8_t* data, uint16_t length, uint16_t timeout) {
|
||||
if(index >= I2C_COUNT) {
|
||||
return I2C_STATUS_ERROR;
|
||||
}
|
||||
i2c_address = address;
|
||||
i2cStart(drivers[index], &i2cconfig);
|
||||
msg_t status = i2cMasterTransmitTimeout(drivers[index], (i2c_address >> 1), data, length, 0, 0, TIME_MS2I(timeout));
|
||||
return chibios_to_qmk(&status);
|
||||
}
|
||||
|
||||
i2c_status_t i2c_receive(uint8_t index, uint8_t address, uint8_t* data, uint16_t length, uint16_t timeout) {
|
||||
if(index >= I2C_COUNT) {
|
||||
return I2C_STATUS_ERROR;
|
||||
}
|
||||
i2c_address = address;
|
||||
i2cStart(drivers[index], &i2cconfig);
|
||||
msg_t status = i2cMasterReceiveTimeout(drivers[index], (i2c_address >> 1), data, length, TIME_MS2I(timeout));
|
||||
return chibios_to_qmk(&status);
|
||||
}
|
||||
|
||||
i2c_status_t i2c_writeReg(uint8_t index, uint8_t devaddr, uint8_t regaddr, const uint8_t* data, uint16_t length, uint16_t timeout) {
|
||||
if(index >= I2C_COUNT) {
|
||||
return I2C_STATUS_ERROR;
|
||||
}
|
||||
i2c_address = devaddr;
|
||||
i2cStart(drivers[index], &i2cconfig);
|
||||
|
||||
uint8_t complete_packet[length + 1];
|
||||
for (uint8_t i = 0; i < length; i++) {
|
||||
complete_packet[i + 1] = data[i];
|
||||
}
|
||||
complete_packet[0] = regaddr;
|
||||
|
||||
msg_t status = i2cMasterTransmitTimeout(drivers[index], (i2c_address >> 1), complete_packet, length + 1, 0, 0, TIME_MS2I(timeout));
|
||||
return chibios_to_qmk(&status);
|
||||
}
|
||||
|
||||
i2c_status_t i2c_readReg(uint8_t index, uint8_t devaddr, uint8_t regaddr, uint8_t* data, uint16_t length, uint16_t timeout) {
|
||||
if(index >= I2C_COUNT) {
|
||||
return I2C_STATUS_ERROR;
|
||||
}
|
||||
i2c_address = devaddr;
|
||||
i2cStart(drivers[index], &i2cconfig);
|
||||
msg_t status = i2cMasterTransmitTimeout(drivers[index], (i2c_address >> 1), ®addr, 1, data, length, TIME_MS2I(timeout));
|
||||
return chibios_to_qmk(&status);
|
||||
}
|
||||
|
||||
void i2c_stop(uint8_t index) {
|
||||
if(index < I2C_COUNT) {
|
||||
i2cStop(drivers[index]);
|
||||
}
|
||||
}
|
@@ -1,127 +0,0 @@
|
||||
/* Copyright 2018 Jack Humbert
|
||||
* Copyright 2018 Yiancar
|
||||
*
|
||||
* 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/>.
|
||||
*/
|
||||
|
||||
/* This library follows the convention of the AVR i2c_master library.
|
||||
* As a result addresses are expected to be already shifted (addr << 1).
|
||||
* I2CD1 is the default driver which corresponds to pins B6 and B7. This
|
||||
* can be changed.
|
||||
* Please ensure that HAL_USE_I2C is TRUE in the halconf.h file and that
|
||||
* STM32_I2C_USE_I2C1 is TRUE in the mcuconf.h file.
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include <ch.h>
|
||||
#include <hal.h>
|
||||
|
||||
#ifndef I2C_COUNT
|
||||
# define I2C_COUNT 1
|
||||
#endif
|
||||
|
||||
#ifdef I2C1_BANK
|
||||
# define I2C1_SCL_BANK I2C1_BANK
|
||||
# define I2C1_SDA_BANK I2C1_BANK
|
||||
#endif
|
||||
|
||||
#ifndef I2C1_SCL_BANK
|
||||
# define I2C1_SCL_BANK GPIOB
|
||||
#endif
|
||||
|
||||
#ifndef I2C1_SDA_BANK
|
||||
# define I2C1_SDA_BANK GPIOB
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef USE_I2C2
|
||||
# ifdef I2C2_BANK
|
||||
# define I2C2_SCL_BANK I2C2_BANK
|
||||
# define I2C2_SDA_BANK I2C2_BANK
|
||||
# endif
|
||||
# ifndef I2C2_SCL_BANK
|
||||
# define I2C2_SCL_BANK GPIOC
|
||||
# endif
|
||||
# ifndef I2C2_SDA_BANK
|
||||
# define I2C2_SDA_BANK GPIOC
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifndef I2C1_SCL
|
||||
# define I2C1_SCL 6
|
||||
#endif
|
||||
#ifndef I2C1_SDA
|
||||
# define I2C1_SDA 7
|
||||
#endif
|
||||
|
||||
#ifdef USE_I2CV1
|
||||
# ifndef I2C1_OPMODE
|
||||
# define I2C1_OPMODE OPMODE_I2C
|
||||
# endif
|
||||
# ifndef I2C1_CLOCK_SPEED
|
||||
# define I2C1_CLOCK_SPEED 100000 /* 400000 */
|
||||
# endif
|
||||
# ifndef I2C1_DUTY_CYCLE
|
||||
# define I2C1_DUTY_CYCLE STD_DUTY_CYCLE /* FAST_DUTY_CYCLE_2 */
|
||||
# endif
|
||||
#else
|
||||
// The default timing values below configures the I2C clock to 400khz assuming a 72Mhz clock
|
||||
// For more info : https://www.st.com/en/embedded-software/stsw-stm32126.html
|
||||
# ifndef I2C1_TIMINGR_PRESC
|
||||
# define I2C1_TIMINGR_PRESC 0U
|
||||
# endif
|
||||
# ifndef I2C1_TIMINGR_SCLDEL
|
||||
# define I2C1_TIMINGR_SCLDEL 7U
|
||||
# endif
|
||||
# ifndef I2C1_TIMINGR_SDADEL
|
||||
# define I2C1_TIMINGR_SDADEL 0U
|
||||
# endif
|
||||
# ifndef I2C1_TIMINGR_SCLH
|
||||
# define I2C1_TIMINGR_SCLH 38U
|
||||
# endif
|
||||
# ifndef I2C1_TIMINGR_SCLL
|
||||
# define I2C1_TIMINGR_SCLL 129U
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifdef USE_GPIOV1
|
||||
# ifndef I2C1_SCL_PAL_MODE
|
||||
# define I2C1_SCL_PAL_MODE PAL_MODE_STM32_ALTERNATE_OPENDRAIN
|
||||
# endif
|
||||
# ifndef I2C1_SDA_PAL_MODE
|
||||
# define I2C1_SDA_PAL_MODE PAL_MODE_STM32_ALTERNATE_OPENDRAIN
|
||||
# endif
|
||||
#else
|
||||
// The default PAL alternate modes are used to signal that the pins are used for I2C
|
||||
# ifndef I2C1_SCL_PAL_MODE
|
||||
# define I2C1_SCL_PAL_MODE 4
|
||||
# endif
|
||||
# ifndef I2C1_SDA_PAL_MODE
|
||||
# define I2C1_SDA_PAL_MODE 4
|
||||
# endif
|
||||
#endif
|
||||
|
||||
typedef int16_t i2c_status_t;
|
||||
|
||||
#define I2C_STATUS_SUCCESS (0)
|
||||
#define I2C_STATUS_ERROR (-1)
|
||||
#define I2C_STATUS_TIMEOUT (-2)
|
||||
|
||||
void i2c_init(I2CDriver *driver, ioportid_t scl_port, ioportid_t sda_port, iopadid_t scl_pad, iopadid_t sda_pad);
|
||||
i2c_status_t i2c_start(uint8_t index, uint8_t address);
|
||||
i2c_status_t i2c_transmit(uint8_t index, uint8_t address, const uint8_t* data, uint16_t length, uint16_t timeout);
|
||||
i2c_status_t i2c_receive(uint8_t index, uint8_t address, uint8_t* data, uint16_t length, uint16_t timeout);
|
||||
i2c_status_t i2c_writeReg(uint8_t index, uint8_t devaddr, uint8_t regaddr, const uint8_t* data, uint16_t length, uint16_t timeout);
|
||||
i2c_status_t i2c_readReg(uint8_t index, uint8_t devaddr, uint8_t regaddr, uint8_t* data, uint16_t length, uint16_t timeout);
|
||||
void i2c_stop(uint8_t index);
|
@@ -1,231 +0,0 @@
|
||||
/* Copyright 2017 Jason Williams
|
||||
* Copyright 2018 Jack Humbert
|
||||
* Copyright 2018 Yiancar
|
||||
*
|
||||
* 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 "is31fl3733.h"
|
||||
#include "i2c_master.h"
|
||||
#include "wait.h"
|
||||
|
||||
// This is a 7-bit address, that gets left-shifted and bit 0
|
||||
// set to 0 for write, 1 for read (as per I2C protocol)
|
||||
// The address will vary depending on your wiring:
|
||||
// 00 <-> GND
|
||||
// 01 <-> SCL
|
||||
// 10 <-> SDA
|
||||
// 11 <-> VCC
|
||||
// ADDR1 represents A1:A0 of the 7-bit address.
|
||||
// ADDR2 represents A3:A2 of the 7-bit address.
|
||||
// The result is: 0b101(ADDR2)(ADDR1)
|
||||
#define ISSI_ADDR_DEFAULT 0x50
|
||||
|
||||
#define ISSI_COMMANDREGISTER 0xFD
|
||||
#define ISSI_COMMANDREGISTER_WRITELOCK 0xFE
|
||||
#define ISSI_INTERRUPTMASKREGISTER 0xF0
|
||||
#define ISSI_INTERRUPTSTATUSREGISTER 0xF1
|
||||
|
||||
#define ISSI_PAGE_LEDCONTROL 0x00 // PG0
|
||||
#define ISSI_PAGE_PWM 0x01 // PG1
|
||||
#define ISSI_PAGE_AUTOBREATH 0x02 // PG2
|
||||
#define ISSI_PAGE_FUNCTION 0x03 // PG3
|
||||
|
||||
#define ISSI_REG_CONFIGURATION 0x00 // PG3
|
||||
#define ISSI_REG_GLOBALCURRENT 0x01 // PG3
|
||||
#define ISSI_REG_RESET 0x11 // PG3
|
||||
#define ISSI_REG_SWPULLUP 0x0F // PG3
|
||||
#define ISSI_REG_CSPULLUP 0x10 // PG3
|
||||
|
||||
#ifndef ISSI_TIMEOUT
|
||||
# define ISSI_TIMEOUT 100
|
||||
#endif
|
||||
|
||||
#ifndef ISSI_PERSISTENCE
|
||||
# define ISSI_PERSISTENCE 0
|
||||
#endif
|
||||
|
||||
// Transfer buffer for TWITransmitData()
|
||||
uint8_t g_twi_transfer_buffer[20];
|
||||
|
||||
// These buffers match the IS31FL3733 PWM registers.
|
||||
// The control buffers match the PG0 LED On/Off registers.
|
||||
// Storing them like this is optimal for I2C transfers to the registers.
|
||||
// We could optimize this and take out the unused registers from these
|
||||
// buffers and the transfers in IS31FL3733_write_pwm_buffer() but it's
|
||||
// probably not worth the extra complexity.
|
||||
uint8_t g_pwm_buffer[DRIVER_COUNT][192];
|
||||
bool g_pwm_buffer_update_required[DRIVER_COUNT] = {false};
|
||||
|
||||
uint8_t g_led_control_registers[DRIVER_COUNT][24] = {{0}, {0}};
|
||||
bool g_led_control_registers_update_required[DRIVER_COUNT] = {false};
|
||||
|
||||
bool IS31FL3733_write_register(uint8_t index, uint8_t addr, uint8_t reg, uint8_t data) {
|
||||
// If the transaction fails function returns false.
|
||||
g_twi_transfer_buffer[0] = reg;
|
||||
g_twi_transfer_buffer[1] = data;
|
||||
|
||||
#if ISSI_PERSISTENCE > 0
|
||||
for (uint8_t i = 0; i < ISSI_PERSISTENCE; i++) {
|
||||
if (i2c_transmit(index, addr << 1, g_twi_transfer_buffer, 2, ISSI_TIMEOUT) != 0) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
#else
|
||||
if (i2c_transmit(index, addr << 1, g_twi_transfer_buffer, 2, ISSI_TIMEOUT) != 0) {
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
return true;
|
||||
}
|
||||
|
||||
bool IS31FL3733_write_pwm_buffer(uint8_t index, uint8_t addr, uint8_t *pwm_buffer) {
|
||||
// Assumes PG1 is already selected.
|
||||
// If any of the transactions fails function returns false.
|
||||
// Transmit PWM registers in 12 transfers of 16 bytes.
|
||||
// g_twi_transfer_buffer[] is 20 bytes
|
||||
|
||||
// Iterate over the pwm_buffer contents at 16 byte intervals.
|
||||
for (int i = 0; i < 192; i += 16) {
|
||||
g_twi_transfer_buffer[0] = i;
|
||||
// Copy the data from i to i+15.
|
||||
// Device will auto-increment register for data after the first byte
|
||||
// Thus this sets registers 0x00-0x0F, 0x10-0x1F, etc. in one transfer.
|
||||
for (int j = 0; j < 16; j++) {
|
||||
g_twi_transfer_buffer[1 + j] = pwm_buffer[i + j];
|
||||
}
|
||||
|
||||
#if ISSI_PERSISTENCE > 0
|
||||
for (uint8_t i = 0; i < ISSI_PERSISTENCE; i++) {
|
||||
if (i2c_transmit(index, addr << 1, g_twi_transfer_buffer, 17, ISSI_TIMEOUT) != 0) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
#else
|
||||
if (i2c_transmit(index, addr << 1, g_twi_transfer_buffer, 17, ISSI_TIMEOUT) != 0) {
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
void IS31FL3733_init(uint8_t bus, uint8_t addr, uint8_t sync) {
|
||||
// In order to avoid the LEDs being driven with garbage data
|
||||
// in the LED driver's PWM registers, shutdown is enabled last.
|
||||
// Set up the mode and other settings, clear the PWM registers,
|
||||
// then disable software shutdown.
|
||||
// Sync is passed so set it according to the datasheet.
|
||||
|
||||
// Unlock the command register.
|
||||
IS31FL3733_write_register(bus, addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5);
|
||||
// Select PG0
|
||||
IS31FL3733_write_register(bus, addr, ISSI_COMMANDREGISTER, ISSI_PAGE_LEDCONTROL);
|
||||
// Turn off all LEDs.
|
||||
for (int i = 0x00; i <= 0x17; i++) {
|
||||
IS31FL3733_write_register(bus, addr, i, 0x00);
|
||||
}
|
||||
// Unlock the command register.
|
||||
IS31FL3733_write_register(bus, addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5);
|
||||
// Select PG1
|
||||
IS31FL3733_write_register(bus, addr, ISSI_COMMANDREGISTER, ISSI_PAGE_PWM);
|
||||
// Set PWM on all LEDs to 0
|
||||
// No need to setup Breath registers to PWM as that is the default.
|
||||
for (int i = 0x00; i <= 0xBF; i++) {
|
||||
IS31FL3733_write_register(bus, addr, i, 0x00);
|
||||
}
|
||||
// Unlock the command register.
|
||||
IS31FL3733_write_register(bus, addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5);
|
||||
// Select PG3
|
||||
IS31FL3733_write_register(bus, addr, ISSI_COMMANDREGISTER, ISSI_PAGE_FUNCTION);
|
||||
// Set global current to maximum.
|
||||
IS31FL3733_write_register(bus, addr, ISSI_REG_GLOBALCURRENT, 0xFF);
|
||||
// Disable software shutdown.
|
||||
IS31FL3733_write_register(bus, addr, ISSI_REG_CONFIGURATION, (sync << 6) | 0x01);
|
||||
// Wait 10ms to ensure the device has woken up.
|
||||
wait_ms(10);
|
||||
}
|
||||
|
||||
void IS31FL3733_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) {
|
||||
if (index >= 0 && index < DRIVER_LED_TOTAL) {
|
||||
is31_led led = g_is31_leds[index];
|
||||
|
||||
g_pwm_buffer[led.driver][led.r] = red;
|
||||
g_pwm_buffer[led.driver][led.g] = green;
|
||||
g_pwm_buffer[led.driver][led.b] = blue;
|
||||
g_pwm_buffer_update_required[led.driver] = true;
|
||||
}
|
||||
}
|
||||
|
||||
void IS31FL3733_set_color_all(uint8_t red, uint8_t green, uint8_t blue) {
|
||||
for (int i = 0; i < DRIVER_LED_TOTAL; i++) {
|
||||
IS31FL3733_set_color(i, red, green, blue);
|
||||
}
|
||||
}
|
||||
|
||||
void IS31FL3733_set_led_control_register(uint8_t index, bool red, bool green, bool blue) {
|
||||
is31_led led = g_is31_leds[index];
|
||||
|
||||
uint8_t control_register_r = led.r / 8;
|
||||
uint8_t control_register_g = led.g / 8;
|
||||
uint8_t control_register_b = led.b / 8;
|
||||
uint8_t bit_r = led.r % 8;
|
||||
uint8_t bit_g = led.g % 8;
|
||||
uint8_t bit_b = led.b % 8;
|
||||
|
||||
if (red) {
|
||||
g_led_control_registers[led.driver][control_register_r] |= (1 << bit_r);
|
||||
} else {
|
||||
g_led_control_registers[led.driver][control_register_r] &= ~(1 << bit_r);
|
||||
}
|
||||
if (green) {
|
||||
g_led_control_registers[led.driver][control_register_g] |= (1 << bit_g);
|
||||
} else {
|
||||
g_led_control_registers[led.driver][control_register_g] &= ~(1 << bit_g);
|
||||
}
|
||||
if (blue) {
|
||||
g_led_control_registers[led.driver][control_register_b] |= (1 << bit_b);
|
||||
} else {
|
||||
g_led_control_registers[led.driver][control_register_b] &= ~(1 << bit_b);
|
||||
}
|
||||
|
||||
g_led_control_registers_update_required[led.driver] = true;
|
||||
}
|
||||
|
||||
void IS31FL3733_update_pwm_buffers(uint8_t addr, uint8_t index) {
|
||||
if (g_pwm_buffer_update_required[index]) {
|
||||
// Firstly we need to unlock the command register and select PG1.
|
||||
IS31FL3733_write_register(index, addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5);
|
||||
IS31FL3733_write_register(index, addr, ISSI_COMMANDREGISTER, ISSI_PAGE_PWM);
|
||||
|
||||
// If any of the transactions fail we risk writing dirty PG0,
|
||||
// refresh page 0 just in case.
|
||||
if (!IS31FL3733_write_pwm_buffer(index, addr, g_pwm_buffer[index])) {
|
||||
g_led_control_registers_update_required[index] = true;
|
||||
}
|
||||
}
|
||||
g_pwm_buffer_update_required[index] = false;
|
||||
}
|
||||
|
||||
void IS31FL3733_update_led_control_registers(uint8_t addr, uint8_t index) {
|
||||
if (g_led_control_registers_update_required[index]) {
|
||||
// Firstly we need to unlock the command register and select PG0
|
||||
IS31FL3733_write_register(index, addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5);
|
||||
IS31FL3733_write_register(index, addr, ISSI_COMMANDREGISTER, ISSI_PAGE_LEDCONTROL);
|
||||
for (int i = 0; i < 24; i++) {
|
||||
IS31FL3733_write_register(index, addr, i, g_led_control_registers[index][i]);
|
||||
}
|
||||
}
|
||||
g_led_control_registers_update_required[index] = false;
|
||||
}
|
@@ -1,251 +0,0 @@
|
||||
/* Copyright 2017 Jason Williams
|
||||
* Copyright 2018 Jack Humbert
|
||||
* Copyright 2018 Yiancar
|
||||
*
|
||||
* 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
|
||||
|
||||
#include <stdint.h>
|
||||
#include <stdbool.h>
|
||||
|
||||
typedef struct is31_led {
|
||||
uint8_t driver : 2;
|
||||
uint8_t r;
|
||||
uint8_t g;
|
||||
uint8_t b;
|
||||
} __attribute__((packed)) is31_led;
|
||||
|
||||
extern const is31_led g_is31_leds[DRIVER_LED_TOTAL];
|
||||
|
||||
void IS31FL3733_init(uint8_t bus, uint8_t addr, uint8_t sync);
|
||||
bool IS31FL3733_write_register(uint8_t index, uint8_t addr, uint8_t reg, uint8_t data);
|
||||
bool IS31FL3733_write_pwm_buffer(uint8_t index, uint8_t addr, uint8_t *pwm_buffer);
|
||||
|
||||
void IS31FL3733_set_color(int index, uint8_t red, uint8_t green, uint8_t blue);
|
||||
void IS31FL3733_set_color_all(uint8_t red, uint8_t green, uint8_t blue);
|
||||
|
||||
void IS31FL3733_set_led_control_register(uint8_t index, bool red, bool green, bool blue);
|
||||
|
||||
// This should not be called from an interrupt
|
||||
// (eg. from a timer interrupt).
|
||||
// Call this while idle (in between matrix scans).
|
||||
// If the buffer is dirty, it will update the driver with the buffer.
|
||||
void IS31FL3733_update_pwm_buffers(uint8_t addr, uint8_t index); // index is the driver index
|
||||
void IS31FL3733_update_led_control_registers(uint8_t addr, uint8_t index);
|
||||
|
||||
#define A_1 0x00
|
||||
#define A_2 0x01
|
||||
#define A_3 0x02
|
||||
#define A_4 0x03
|
||||
#define A_5 0x04
|
||||
#define A_6 0x05
|
||||
#define A_7 0x06
|
||||
#define A_8 0x07
|
||||
#define A_9 0x08
|
||||
#define A_10 0x09
|
||||
#define A_11 0x0A
|
||||
#define A_12 0x0B
|
||||
#define A_13 0x0C
|
||||
#define A_14 0x0D
|
||||
#define A_15 0x0E
|
||||
#define A_16 0x0F
|
||||
|
||||
#define B_1 0x10
|
||||
#define B_2 0x11
|
||||
#define B_3 0x12
|
||||
#define B_4 0x13
|
||||
#define B_5 0x14
|
||||
#define B_6 0x15
|
||||
#define B_7 0x16
|
||||
#define B_8 0x17
|
||||
#define B_9 0x18
|
||||
#define B_10 0x19
|
||||
#define B_11 0x1A
|
||||
#define B_12 0x1B
|
||||
#define B_13 0x1C
|
||||
#define B_14 0x1D
|
||||
#define B_15 0x1E
|
||||
#define B_16 0x1F
|
||||
|
||||
#define C_1 0x20
|
||||
#define C_2 0x21
|
||||
#define C_3 0x22
|
||||
#define C_4 0x23
|
||||
#define C_5 0x24
|
||||
#define C_6 0x25
|
||||
#define C_7 0x26
|
||||
#define C_8 0x27
|
||||
#define C_9 0x28
|
||||
#define C_10 0x29
|
||||
#define C_11 0x2A
|
||||
#define C_12 0x2B
|
||||
#define C_13 0x2C
|
||||
#define C_14 0x2D
|
||||
#define C_15 0x2E
|
||||
#define C_16 0x2F
|
||||
|
||||
#define D_1 0x30
|
||||
#define D_2 0x31
|
||||
#define D_3 0x32
|
||||
#define D_4 0x33
|
||||
#define D_5 0x34
|
||||
#define D_6 0x35
|
||||
#define D_7 0x36
|
||||
#define D_8 0x37
|
||||
#define D_9 0x38
|
||||
#define D_10 0x39
|
||||
#define D_11 0x3A
|
||||
#define D_12 0x3B
|
||||
#define D_13 0x3C
|
||||
#define D_14 0x3D
|
||||
#define D_15 0x3E
|
||||
#define D_16 0x3F
|
||||
|
||||
#define E_1 0x40
|
||||
#define E_2 0x41
|
||||
#define E_3 0x42
|
||||
#define E_4 0x43
|
||||
#define E_5 0x44
|
||||
#define E_6 0x45
|
||||
#define E_7 0x46
|
||||
#define E_8 0x47
|
||||
#define E_9 0x48
|
||||
#define E_10 0x49
|
||||
#define E_11 0x4A
|
||||
#define E_12 0x4B
|
||||
#define E_13 0x4C
|
||||
#define E_14 0x4D
|
||||
#define E_15 0x4E
|
||||
#define E_16 0x4F
|
||||
|
||||
#define F_1 0x50
|
||||
#define F_2 0x51
|
||||
#define F_3 0x52
|
||||
#define F_4 0x53
|
||||
#define F_5 0x54
|
||||
#define F_6 0x55
|
||||
#define F_7 0x56
|
||||
#define F_8 0x57
|
||||
#define F_9 0x58
|
||||
#define F_10 0x59
|
||||
#define F_11 0x5A
|
||||
#define F_12 0x5B
|
||||
#define F_13 0x5C
|
||||
#define F_14 0x5D
|
||||
#define F_15 0x5E
|
||||
#define F_16 0x5F
|
||||
|
||||
#define G_1 0x60
|
||||
#define G_2 0x61
|
||||
#define G_3 0x62
|
||||
#define G_4 0x63
|
||||
#define G_5 0x64
|
||||
#define G_6 0x65
|
||||
#define G_7 0x66
|
||||
#define G_8 0x67
|
||||
#define G_9 0x68
|
||||
#define G_10 0x69
|
||||
#define G_11 0x6A
|
||||
#define G_12 0x6B
|
||||
#define G_13 0x6C
|
||||
#define G_14 0x6D
|
||||
#define G_15 0x6E
|
||||
#define G_16 0x6F
|
||||
|
||||
#define H_1 0x70
|
||||
#define H_2 0x71
|
||||
#define H_3 0x72
|
||||
#define H_4 0x73
|
||||
#define H_5 0x74
|
||||
#define H_6 0x75
|
||||
#define H_7 0x76
|
||||
#define H_8 0x77
|
||||
#define H_9 0x78
|
||||
#define H_10 0x79
|
||||
#define H_11 0x7A
|
||||
#define H_12 0x7B
|
||||
#define H_13 0x7C
|
||||
#define H_14 0x7D
|
||||
#define H_15 0x7E
|
||||
#define H_16 0x7F
|
||||
|
||||
#define I_1 0x80
|
||||
#define I_2 0x81
|
||||
#define I_3 0x82
|
||||
#define I_4 0x83
|
||||
#define I_5 0x84
|
||||
#define I_6 0x85
|
||||
#define I_7 0x86
|
||||
#define I_8 0x87
|
||||
#define I_9 0x88
|
||||
#define I_10 0x89
|
||||
#define I_11 0x8A
|
||||
#define I_12 0x8B
|
||||
#define I_13 0x8C
|
||||
#define I_14 0x8D
|
||||
#define I_15 0x8E
|
||||
#define I_16 0x8F
|
||||
|
||||
#define J_1 0x90
|
||||
#define J_2 0x91
|
||||
#define J_3 0x92
|
||||
#define J_4 0x93
|
||||
#define J_5 0x94
|
||||
#define J_6 0x95
|
||||
#define J_7 0x96
|
||||
#define J_8 0x97
|
||||
#define J_9 0x98
|
||||
#define J_10 0x99
|
||||
#define J_11 0x9A
|
||||
#define J_12 0x9B
|
||||
#define J_13 0x9C
|
||||
#define J_14 0x9D
|
||||
#define J_15 0x9E
|
||||
#define J_16 0x9F
|
||||
|
||||
#define K_1 0xA0
|
||||
#define K_2 0xA1
|
||||
#define K_3 0xA2
|
||||
#define K_4 0xA3
|
||||
#define K_5 0xA4
|
||||
#define K_6 0xA5
|
||||
#define K_7 0xA6
|
||||
#define K_8 0xA7
|
||||
#define K_9 0xA8
|
||||
#define K_10 0xA9
|
||||
#define K_11 0xAA
|
||||
#define K_12 0xAB
|
||||
#define K_13 0xAC
|
||||
#define K_14 0xAD
|
||||
#define K_15 0xAE
|
||||
#define K_16 0xAF
|
||||
|
||||
#define L_1 0xB0
|
||||
#define L_2 0xB1
|
||||
#define L_3 0xB2
|
||||
#define L_4 0xB3
|
||||
#define L_5 0xB4
|
||||
#define L_6 0xB5
|
||||
#define L_7 0xB6
|
||||
#define L_8 0xB7
|
||||
#define L_9 0xB8
|
||||
#define L_10 0xB9
|
||||
#define L_11 0xBA
|
||||
#define L_12 0xBB
|
||||
#define L_13 0xBC
|
||||
#define L_14 0xBD
|
||||
#define L_15 0xBE
|
||||
#define L_16 0xBF
|
@@ -17,8 +17,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
#include "k_type.h"
|
||||
|
||||
#include "is31fl3733.h"
|
||||
|
||||
#ifdef RGB_MATRIX_ENABLE
|
||||
const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
|
||||
{ 0, B_1, A_1, C_1 },
|
||||
@@ -47,11 +45,11 @@ const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
|
||||
{ 0, E_7, D_7, F_7 },
|
||||
{ 0, E_8, D_8, F_8 },
|
||||
{ 0, E_9, D_9, F_9 },
|
||||
{ 0, E_10, D_10, F_10 },
|
||||
{ 0, E_11, D_11, F_11 },
|
||||
{ 0, E_12, D_12, F_12 },
|
||||
{ 0, E_13, D_13, F_13 },
|
||||
{ 0, E_14, D_14, F_14 },
|
||||
{ 0, E_10, D_1, F_10 },
|
||||
{ 0, E_11, D_1, F_11 },
|
||||
{ 0, E_12, D_1, F_12 },
|
||||
{ 0, E_13, D_1, F_13 },
|
||||
{ 0, E_14, D_1, F_14 },
|
||||
{ 0, E_15, D_15, F_15 },
|
||||
{ 0, E_16, D_16, F_16 },
|
||||
|
||||
@@ -64,11 +62,11 @@ const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
|
||||
{ 0, H_7, G_7, I_7 },
|
||||
{ 0, H_8, G_8, I_8 },
|
||||
{ 0, H_9, G_9, I_9 },
|
||||
{ 0, H_10, G_10, I_10 },
|
||||
{ 0, H_11, G_11, I_11 },
|
||||
{ 0, H_12, G_12, I_12 },
|
||||
{ 0, H_13, G_13, I_13 },
|
||||
{ 0, H_14, G_14, I_14 },
|
||||
{ 0, H_10, G_1, I_10 },
|
||||
{ 0, H_11, G_1, I_11 },
|
||||
{ 0, H_12, G_1, I_12 },
|
||||
{ 0, H_13, G_1, I_13 },
|
||||
{ 0, H_14, G_1, I_14 },
|
||||
{ 0, H_15, G_15, I_15 },
|
||||
{ 0, H_16, G_16, I_16 },
|
||||
|
||||
@@ -81,123 +79,106 @@ const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
|
||||
{ 0, K_7, J_7, L_7 },
|
||||
{ 0, K_8, J_8, L_8 },
|
||||
{ 0, K_9, J_9, L_9 },
|
||||
{ 0, K_10, J_10, L_10 },
|
||||
{ 0, K_11, J_11, L_11 },
|
||||
{ 0, K_12, J_12, L_12 },
|
||||
{ 0, K_13, J_13, L_13 },
|
||||
{ 0, K_14, J_14, L_14 },
|
||||
{ 0, K_10, J_1, L_10 },
|
||||
{ 0, K_11, J_1, L_11 },
|
||||
{ 0, K_12, J_1, L_12 },
|
||||
{ 0, K_13, J_1, L_13 },
|
||||
{ 0, K_14, J_1, L_14 },
|
||||
{ 0, K_15, J_15, L_15 },
|
||||
{ 0, K_16, J_16, L_16 },
|
||||
|
||||
// Driver 2 is on I2C2 - currently not usable with i2c_master
|
||||
{ 1, B_1, A_1, C_1 },
|
||||
{ 1, B_2, A_2, C_2 },
|
||||
{ 1, B_3, A_3, C_3 },
|
||||
{ 1, B_4, A_4, C_4 },
|
||||
{ 1, B_5, A_5, C_5 },
|
||||
{ 1, B_6, A_6, C_6 },
|
||||
{ 1, B_7, A_7, C_7 },
|
||||
{ 1, B_8, A_8, C_8 },
|
||||
{ 1, B_9, A_9, C_9 },
|
||||
{ 1, B_10, A_10, C_10 },
|
||||
{ 1, B_11, A_11, C_11 },
|
||||
{ 1, B_12, A_12, C_12 },
|
||||
{ 1, B_13, A_13, C_13 },
|
||||
{ 1, B_14, A_14, C_14 },
|
||||
{ 1, B_15, A_15, C_15 },
|
||||
{ 1, B_16, A_16, C_16 },
|
||||
//{ 1, B_1, A_1, C_1 },
|
||||
//{ 1, B_2, A_2, C_2 },
|
||||
//{ 1, B_3, A_3, C_3 },
|
||||
//{ 1, B_4, A_4, C_4 },
|
||||
//{ 1, B_5, A_5, C_5 },
|
||||
//{ 1, B_6, A_6, C_6 },
|
||||
//{ 1, B_7, A_7, C_7 },
|
||||
//{ 1, B_8, A_8, C_8 },
|
||||
//{ 1, B_9, A_9, C_9 },
|
||||
//{ 1, B_10, A_10, C_10 },
|
||||
//{ 1, B_11, A_11, C_11 },
|
||||
//{ 1, B_12, A_12, C_12 },
|
||||
//{ 1, B_13, A_13, C_13 },
|
||||
//{ 1, B_14, A_14, C_14 },
|
||||
//{ 1, B_15, A_15, C_15 },
|
||||
//{ 1, B_16, A_16, C_16 },
|
||||
|
||||
{ 1, E_1, D_1, F_1 },
|
||||
{ 1, E_2, D_2, F_2 },
|
||||
{ 1, E_3, D_3, F_3 },
|
||||
{ 1, E_4, D_4, F_4 },
|
||||
{ 1, E_5, D_5, F_5 },
|
||||
{ 1, E_6, D_6, F_6 },
|
||||
{ 1, E_7, D_7, F_7 },
|
||||
{ 1, E_8, D_8, F_8 },
|
||||
{ 1, E_9, D_9, F_9 },
|
||||
{ 1, E_10, D_10, F_10 },
|
||||
{ 1, E_11, D_11, F_11 },
|
||||
{ 1, E_12, D_12, F_12 },
|
||||
{ 1, E_13, D_13, F_13 },
|
||||
{ 1, E_14, D_14, F_14 },
|
||||
{ 1, E_15, D_15, F_15 },
|
||||
{ 1, E_16, D_16, F_16 },
|
||||
//{ 1, E_1, D_1, F_1 },
|
||||
//{ 1, E_2, D_2, F_2 },
|
||||
//{ 1, E_3, D_3, F_3 },
|
||||
//{ 1, E_4, D_4, F_4 },
|
||||
//{ 1, E_5, D_5, F_5 },
|
||||
//{ 1, E_6, D_6, F_6 },
|
||||
//{ 1, E_7, D_7, F_7 },
|
||||
//{ 1, E_8, D_8, F_8 },
|
||||
//{ 1, E_9, D_9, F_9 },
|
||||
//{ 1, E_10, D_1, F_10 },
|
||||
//{ 1, E_11, D_1, F_11 },
|
||||
//{ 1, E_12, D_1, F_12 },
|
||||
//{ 1, E_13, D_1, F_13 },
|
||||
//{ 1, E_14, D_1, F_14 },
|
||||
//{ 1, E_15, D_15, F_15 },
|
||||
//{ 1, E_16, D_16, F_16 },
|
||||
|
||||
{ 1, H_1, G_1, I_1 },
|
||||
{ 1, H_2, G_2, I_2 },
|
||||
{ 1, H_3, G_3, I_3 },
|
||||
{ 1, H_4, G_4, I_4 },
|
||||
{ 1, H_5, G_5, I_5 },
|
||||
{ 1, H_6, G_6, I_6 },
|
||||
{ 1, H_7, G_7, I_7 },
|
||||
{ 1, H_8, G_8, I_8 },
|
||||
{ 1, H_9, G_9, I_9 },
|
||||
{ 1, H_10, G_10, I_10 },
|
||||
{ 1, H_11, G_11, I_11 },
|
||||
{ 1, H_12, G_12, I_12 },
|
||||
{ 1, H_13, G_13, I_13 },
|
||||
{ 1, H_14, G_14, I_14 },
|
||||
{ 1, H_15, G_15, I_15 },
|
||||
{ 1, H_16, G_16, I_16 },
|
||||
//{ 1, H_1, G_1, I_1 },
|
||||
//{ 1, H_2, G_2, I_2 },
|
||||
//{ 1, H_3, G_3, I_3 },
|
||||
//{ 1, H_4, G_4, I_4 },
|
||||
//{ 1, H_5, G_5, I_5 },
|
||||
//{ 1, H_6, G_6, I_6 },
|
||||
//{ 1, H_7, G_7, I_7 },
|
||||
//{ 1, H_8, G_8, I_8 },
|
||||
//{ 1, H_9, G_9, I_9 },
|
||||
//{ 1, H_10, G_1, I_10 },
|
||||
//{ 1, H_11, G_1, I_11 },
|
||||
//{ 1, H_12, G_1, I_12 },
|
||||
//{ 1, H_13, G_1, I_13 },
|
||||
//{ 1, H_14, G_1, I_14 },
|
||||
//{ 1, H_15, G_15, I_15 },
|
||||
//{ 1, H_16, G_16, I_16 },
|
||||
|
||||
{ 1, K_1, J_1, L_1 },
|
||||
{ 1, K_2, J_2, L_2 },
|
||||
{ 1, K_3, J_3, L_3 },
|
||||
{ 1, K_4, J_4, L_4 },
|
||||
{ 1, K_5, J_5, L_5 },
|
||||
{ 1, K_6, J_6, L_6 },
|
||||
{ 1, K_7, J_7, L_7 }
|
||||
//{ 1, K_1, J_1, L_1 },
|
||||
//{ 1, K_2, J_2, L_2 },
|
||||
//{ 1, K_3, J_3, L_3 },
|
||||
//{ 1, K_4, J_4, L_4 },
|
||||
//{ 1, K_5, J_5, L_5 },
|
||||
//{ 1, K_6, J_6, L_6 },
|
||||
//{ 1, K_7, J_7, L_7 }
|
||||
};
|
||||
|
||||
led_config_t g_led_config = {
|
||||
{
|
||||
// Key Matrix to LED Index
|
||||
{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 },
|
||||
{ 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 },
|
||||
{ 20, 21, 22, 23, 24, 25, 26, 27, 28, NO_LED },
|
||||
{ 29, NO_LED, 30, 31, 32, 33, 34, 35, 36, 37 },
|
||||
{ 38, 39, 40, 41, 42, 43, 44, 45, 46, NO_LED },
|
||||
{ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56 },
|
||||
{ 57, 58, 59, 60, 61, NO_LED, 62, NO_LED, 63, NO_LED },
|
||||
{ 64, 65, 66, 67, 68, 69, 70, 71, 72, 73 },
|
||||
{ NO_LED, 74, NO_LED, 75, 76, 77, 78, 79, 80, 81 },
|
||||
{ 82, 83, 84, 85, 86, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }
|
||||
{ 0, 10, 20, 29, 38, 47, 57, NO_LED, NO_LED, NO_LED },
|
||||
{ 1, 11, 21, NO_LED, 39, 48, 58, NO_LED, NO_LED, NO_LED },
|
||||
{ 2, 12, 22, 30, 40, 49, 59, NO_LED, NO_LED, NO_LED },
|
||||
{ 3, 13, 23, 31, 41, 50, 60, NO_LED, NO_LED, NO_LED },
|
||||
{ 4, 14, 24, 32, 42, 51, 61, NO_LED, NO_LED, NO_LED },
|
||||
{ 5, 15, 25, 33, 43, 52, NO_LED, NO_LED, NO_LED, NO_LED },
|
||||
{ 6, 16, 26, 34, 44, 53, 62, NO_LED, NO_LED, NO_LED },
|
||||
{ 7, 17, 27, 35, 45, 54, NO_LED, NO_LED, NO_LED, NO_LED },
|
||||
{ 8, 18, 28, 36, 46, 55, 63, NO_LED, NO_LED, NO_LED },
|
||||
{ 9, 19, NO_LED, 37, NO_LED, 56, NO_LED, NO_LED, NO_LED, NO_LED }
|
||||
}, {
|
||||
// LED Index to Physical Position
|
||||
// Key LED
|
||||
{ 0, 0 }, { 26.35, 0 }, { 39.53, 0 }, { 52.71, 0 }, { 65.88, 0 }, { 79.06, 0 }, { 92.24, 0 }, { 105.41, 0 }, { 118.59, 0 }, { 131.77, 0 }, { 144.94, 0 }, { 158.12, 0 }, { 171.29, 0 }, { 197.65, 0 }, { 210.82, 0 }, { 224, 0 },
|
||||
|
||||
{ 0, 21.33 }, { 13.18, 21.33 }, { 26.35, 21.33 }, { 39.53, 21.33 }, { 52.71, 21.33 }, { 65.88, 21.33 }, { 79.06, 21.33 }, { 92.24, 21.33 }, { 105.41, 21.33 }, { 118.59, 21.33 }, { 131.77, 21.33 }, { 144.94, 21.33 }, { 158.12, 21.33 }, { 171.29, 21.33 }, { 197.65, 21.33 }, { 210.82, 21.33 }, { 224, 21.33 },
|
||||
{ 0, 32 }, { 13.18, 32 }, { 26.35, 32 }, { 39.53, 32 }, { 52.71, 32 }, { 65.88, 32 }, { 79.06, 32 }, { 92.24, 32 }, { 105.41, 32 }, { 118.59, 32 }, { 131.77, 32 }, { 144.94, 32 }, { 158.12, 32 }, { 171.29, 32 }, { 197.65, 32 }, { 210.82, 32 }, { 224, 32 },
|
||||
{ 0, 42.67 }, { 13.18, 42.67 }, { 26.35, 42.67 }, { 39.53, 42.67 }, { 52.71, 42.67 }, { 65.88, 42.67 }, { 79.06, 42.67 }, { 92.24, 42.67 }, { 105.41, 42.67 }, { 118.59, 42.67 }, { 131.77, 42.67 }, { 144.94, 42.67 }, { 171.29, 42.67 },
|
||||
{ 0, 53.33 }, { 26.35, 53.33 }, { 39.53, 53.33 }, { 52.71, 53.33 }, { 65.88, 53.33 }, { 79.06, 53.33 }, { 92.24, 53.33 }, { 105.41, 53.33 }, { 118.59, 53.33 }, { 131.77, 53.33 }, { 144.94, 53.33 }, { 171.29, 53.33 }, { 210.82, 53.33 },
|
||||
{ 0, 64 }, { 13.18, 64 }, { 26.35, 64 }, { 79.06, 64 }, { 131.77, 64 }, { 144.94, 64 }, { 158.12, 64 }, { 171.29, 64 }, { 197.65, 64 }, { 210.82, 64 }, { 224, 64 },
|
||||
|
||||
// Underglow LED
|
||||
{ 224, 64 }, { 206.77, 64 }, { 189.54, 64 }, { 172.31, 64 }, { 155.08, 64 }, { 137.85, 64 }, { 120.61, 64 }, { 103.38, 64 }, { 86.15, 64 }, { 68.92, 64 }, { 51.69, 64 }, { 34.46, 64 }, { 17.23, 64 }, { 0, 64 },
|
||||
{ 0, 42.67 }, { 0, 21.33 },
|
||||
{ 0, 0 }, { 17.23, 0 }, { 34.46, 0 }, { 51.69, 0 }, { 68.92, 0 }, { 86.15, 0 }, { 103.38, 0 }, { 120.61, 0 }, { 137.85, 0 }, { 155.08, 0 }, { 172.31, 0 }, { 189.54, 0 }, { 206.77, 0 }, { 224, 0 },
|
||||
{ 224, 21.33 }, { 224, 42.67 }
|
||||
{ 0, 53.33 }, //{ 26.35, 53.33 }, { 39.53, 53.33 }, { 52.71, 53.33 }, { 65.88, 53.33 }, { 79.06, 53.33 }, { 92.24, 53.33 }, { 105.41, 53.33 }, { 118.59, 53.33 }, { 131.77, 53.33 }, { 144.94, 53.33 }, { 171.29, 53.33 }, { 210.82, 53.33 },
|
||||
//{ 0, 64 }, { 13.18, 64 }, { 26.35, 64 }, { 79.06, 64 }, { 131.77, 64 }, { 144.94, 64 }, { 158.12, 64 }, { 171.29, 64 }, { 197.65, 64 }, { 210.82, 64 }, { 224, 64 }
|
||||
}, {
|
||||
// LED Index to Flag
|
||||
//Key LED
|
||||
1, 4, 4, 4, 4, 1, 1, 1, 1, 4, 4, 4, 4, 1, 1, 1,
|
||||
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
|
||||
|
||||
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, 4,
|
||||
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
|
||||
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
|
||||
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
|
||||
1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1,
|
||||
|
||||
// Underglow LED
|
||||
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
||||
|
||||
2, 2,
|
||||
|
||||
2, 2,
|
||||
|
||||
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
||||
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, 1,
|
||||
1, //4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
|
||||
//1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1
|
||||
}
|
||||
};
|
||||
#endif
|
||||
|
@@ -1,52 +0,0 @@
|
||||
/* Copyright 2021 Andrew Fahmy
|
||||
*
|
||||
* 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
|
||||
|
||||
|
||||
#ifdef RGB_MATRIX_ENABLE
|
||||
// # define RGB_MATRIX_FRAMEBUFFER_EFFECTS
|
||||
// # define RGB_MATRIX_KEYPRESSES
|
||||
# define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_RAINDROPS
|
||||
|
||||
# define DEBUG_MATRIX_SCAN_RATE
|
||||
|
||||
# define RGB_MATRIX_LED_FLUSH_LIMIT 100
|
||||
// # define RGB_MATRIX_LED_PROCESS_LIMIT 2
|
||||
|
||||
// i2c_master defines
|
||||
# define I2C_COUNT 2
|
||||
|
||||
# define I2C1_BANK GPIOB
|
||||
# define I2C1_SCL 0 // A2 on pinout = B0
|
||||
# define I2C1_SDA 1 // A2 on pinout = B1
|
||||
# define I2C1_SCL_PAL_MODE PAL_MODE_ALTERNATIVE_2
|
||||
# define I2C1_SDA_PAL_MODE PAL_MODE_ALTERNATIVE_2
|
||||
|
||||
# define USE_I2C2
|
||||
# define I2C2_BANK GPIOC
|
||||
# define I2C2_SCL 10 // A2 on pinout = C10
|
||||
# define I2C2_SDA 11 // A2 on pinout = C11
|
||||
# define I2C2_SCL_PAL_MODE PAL_MODE_ALTERNATIVE_2
|
||||
# define I2C2_SDA_PAL_MODE PAL_MODE_ALTERNATIVE_2
|
||||
|
||||
# define DRIVER_ADDR_1 0b1010000
|
||||
# define DRIVER_ADDR_2 0b1010000
|
||||
# define DRIVER_COUNT 2
|
||||
# define DRIVER_1_LED_TOTAL 64
|
||||
# define DRIVER_2_LED_TOTAL 55
|
||||
# define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
|
||||
#endif
|
@@ -1,60 +0,0 @@
|
||||
/* Copyright 2021 Andrew Fahmy
|
||||
*
|
||||
* 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
|
||||
|
||||
enum layer_names {
|
||||
_MAIN,
|
||||
_L1
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[_MAIN] = LAYOUT_tkl_ansi(
|
||||
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,
|
||||
MO(_L1), 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_UP,
|
||||
KC_LCTL, _______, KC_LALT, KC_SPC, KC_RALT, MO(_L1), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||
),
|
||||
[_L1] = LAYOUT_tkl_ansi(
|
||||
EEP_RST, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, RGB_MOD, _______,
|
||||
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, RGB_HUI, RGB_SAI, RGB_VAI,
|
||||
_______, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, RGB_SAD, RGB_VAD,
|
||||
_______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, KC_LGUI, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
)
|
||||
};
|
||||
|
||||
void keyboard_post_init_user(void) {
|
||||
// Customise these values to desired behaviour
|
||||
// debug_enable=true;
|
||||
// debug_matrix=true;
|
||||
// debug_keyboard=true;
|
||||
// debug_mouse=true;
|
||||
}
|
||||
|
||||
#ifdef RGB_MATRIX_ENABLE
|
||||
// Turn off SDB
|
||||
void keyboard_pre_init_user() {
|
||||
palSetPadMode(GPIOB, 16, PAL_MODE_OUTPUT_PUSHPULL);
|
||||
palSetPad(GPIOB, 16);
|
||||
}
|
||||
|
||||
#endif
|
@@ -1 +0,0 @@
|
||||
RGB_MATRIX_ENABLE = yes
|
@@ -2,31 +2,22 @@
|
||||
|
||||
#ifdef RGB_MATRIX_ENABLE
|
||||
# define RGB_MATRIX_KEYPRESSES
|
||||
# define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_SOLID_COLOR
|
||||
|
||||
# define RGB_MATRIX_LED_FLUSH_LIMIT 100
|
||||
|
||||
# define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_ALL
|
||||
|
||||
// i2c_master defines
|
||||
# define I2C_COUNT 2
|
||||
|
||||
# define I2C1_BANK GPIOB
|
||||
# define I2C1_SCL 0 // A2 on pinout = B0
|
||||
# define I2C1_SDA 1 // A2 on pinout = B1
|
||||
# define I2C1_SCL_PAL_MODE PAL_MODE_ALTERNATIVE_2
|
||||
# define I2C1_SDA_PAL_MODE PAL_MODE_ALTERNATIVE_2
|
||||
|
||||
# define USE_I2C2
|
||||
# define I2C2_BANK GPIOC
|
||||
# define I2C2_SCL 10 // A2 on pinout = C10
|
||||
# define I2C2_SDA 11 // A2 on pinout = C11
|
||||
# define I2C2_SCL_PAL_MODE PAL_MODE_ALTERNATIVE_2
|
||||
# define I2C2_SDA_PAL_MODE PAL_MODE_ALTERNATIVE_2
|
||||
//# define I2C2_SCL 10 // A2 on pinout = C10
|
||||
//# define I2C2_SDA 11 // A2 on pinout = C11
|
||||
//# define I2C2_SCL_PAL_MODE PAL_MODE_ALTERNATIVE_2
|
||||
//# define I2C2_SDA_PAL_MODE PAL_MODE_ALTERNATIVE_2
|
||||
|
||||
# define DRIVER_ADDR_1 0b1010000
|
||||
# define DRIVER_ADDR_2 0b1010000
|
||||
# define DRIVER_ADDR_2 0b1010001
|
||||
# define DRIVER_COUNT 2
|
||||
# define DRIVER_1_LED_TOTAL 64
|
||||
# define DRIVER_2_LED_TOTAL 55
|
||||
# define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
|
||||
//# define DRIVER_2_LED_TOTAL 55
|
||||
# define DRIVER_LED_TOTAL DRIVER_1_LED_TOTAL
|
||||
#endif
|
||||
|
@@ -8,12 +8,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
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_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_UP,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||
),
|
||||
[1] = LAYOUT_tkl_ansi(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, RGB_MOD, _______,
|
||||
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, RGB_HUI, RGB_SAI, RGB_VAI,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, RGB_SAI, RGB_VAI,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, RGB_SAD, RGB_VAD,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
|
@@ -2,6 +2,4 @@
|
||||
|
||||
This is an experimental keymap adding support for RGB Matrix on the K-Type.
|
||||
|
||||
The keyboard should now support full RGB lightings. The lighting animations are running at 10 fps for performance reasons.
|
||||
You can configure this by changing the `RGB_MATRIX_LED_FLUSH_LIMIT` inside the `config.h` file to a lower value.
|
||||
For example `RGB_MATRIX_LED_FLUSH_LIMIT 16` would mean that the animations run every 16 ms or at 60 fps.
|
||||
The board has two IS31FL3733 LED controllers, but they are each on different I2C buses, which QMK's `i2c_master` implementation currently does not support. As a result, all the keys after the left shift will not be lit.
|
||||
|
@@ -1,53 +0,0 @@
|
||||
/* Copyright 2021 Andrew Fahmy
|
||||
*
|
||||
* 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 <rgb_matrix.h>
|
||||
#include "i2c_master.h"
|
||||
#include "is31fl3733.h"
|
||||
|
||||
|
||||
|
||||
static void init(void) {
|
||||
i2c_init(&I2CD1, I2C1_SCL_BANK, I2C1_SDA_BANK, I2C1_SCL, I2C1_SDA);
|
||||
IS31FL3733_init(0, DRIVER_ADDR_1, 0);
|
||||
# ifdef USE_I2C2
|
||||
i2c_init(&I2CD2, I2C2_SCL_BANK, I2C2_SDA_BANK, I2C2_SCL, I2C2_SDA);
|
||||
IS31FL3733_init(1, DRIVER_ADDR_2, 0);
|
||||
# endif
|
||||
for (int index = 0; index < DRIVER_LED_TOTAL; index++) {
|
||||
bool enabled = true;
|
||||
// This only caches it for later
|
||||
IS31FL3733_set_led_control_register(index, enabled, enabled, enabled);
|
||||
}
|
||||
IS31FL3733_update_led_control_registers(DRIVER_ADDR_1, 0);
|
||||
# ifdef USE_I2C2
|
||||
IS31FL3733_update_led_control_registers(DRIVER_ADDR_2, 1);
|
||||
# endif
|
||||
}
|
||||
|
||||
static void flush(void) {
|
||||
IS31FL3733_update_pwm_buffers(DRIVER_ADDR_1, 0);
|
||||
# ifdef USE_I2C2
|
||||
IS31FL3733_update_pwm_buffers(DRIVER_ADDR_2, 1);
|
||||
# endif
|
||||
}
|
||||
|
||||
const rgb_matrix_driver_t rgb_matrix_driver = {
|
||||
.init = init,
|
||||
.flush = flush,
|
||||
.set_color = IS31FL3733_set_color,
|
||||
.set_color_all = IS31FL3733_set_color_all,
|
||||
};
|
@@ -51,7 +51,4 @@
|
||||
#define KINETIS_I2C_USE_I2C0 TRUE
|
||||
#define KINETIS_I2C_I2C0_PRIORITY 4
|
||||
|
||||
#define KINETIS_I2C_USE_I2C1 TRUE
|
||||
#define KINETIS_I2C_I2C0_PRIORITY 4
|
||||
|
||||
#endif /* _MCUCONF_H_ */
|
||||
|
@@ -27,9 +27,7 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
||||
BLUETOOTH_ENABLE = no # Enable Bluetooth
|
||||
AUDIO_ENABLE = no # Audio output
|
||||
RGB_MATRIX_ENABLE = no
|
||||
RGB_MATRIX_DRIVER = custom
|
||||
|
||||
SRC += i2c_master.c is31fl3733.c led.c
|
||||
RGB_MATRIX_DRIVER = IS31FL3733
|
||||
|
||||
LAYOUTS = tkl_ansi
|
||||
|
||||
|
22
keyboards/keebio/iris/keymaps/ddone/config.h
Normal file
22
keyboards/keebio/iris/keymaps/ddone/config.h
Normal file
@@ -0,0 +1,22 @@
|
||||
/*
|
||||
Copyright 2021 Mykyta Poturai <ddone@aruko.org>
|
||||
|
||||
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
|
||||
|
||||
// #define USE_I2C
|
||||
#define EE_HANDS
|
||||
#define PERMISSIVE_HOLD_PER_KEY
|
156
keyboards/keebio/iris/keymaps/ddone/keymap.c
Normal file
156
keyboards/keebio/iris/keymaps/ddone/keymap.c
Normal file
@@ -0,0 +1,156 @@
|
||||
/* Copyright 2021 Mykyta Poturai <ddone@aruko.org>
|
||||
*
|
||||
* 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
|
||||
|
||||
enum custom_layers {
|
||||
_QWERTY,
|
||||
_LOWER,
|
||||
_RAISE,
|
||||
_ADJUST,
|
||||
};
|
||||
|
||||
#define SPCFN1 LT(_LOWER, KC_SPC)
|
||||
#define SFTESC LSFT_T(KC_ESC)
|
||||
|
||||
enum custom_keycodes {
|
||||
LOWER = SAFE_RANGE,
|
||||
RAISE,
|
||||
ADJUST,
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[_QWERTY] = LAYOUT(
|
||||
//┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, 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_DEL,
|
||||
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
||||
SFTESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_SFTENT,
|
||||
//├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
|
||||
KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, SPCFN1, KC_DEL, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RCTL,
|
||||
//└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
|
||||
LOWER , KC_LWIN,SPCFN1, RAISE, RAISE, KC_RALT
|
||||
// └────────┴────────┴────────┘ └────────┴────────┴────────┘
|
||||
),
|
||||
|
||||
[_LOWER] = LAYOUT(
|
||||
//┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
|
||||
KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_PGUP,
|
||||
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
||||
_______, KC_1, KC_2, KC_3, KC_4, KC_LT, KC_GT, KC_7, KC_8, KC_9, KC_0, KC_PIPE,
|
||||
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
||||
_______, _______, _______, _______,_______, KC_LBRC, KC_RBRC, KC_4, KC_5, KC_6, KC_PLUS, KC_MINS,
|
||||
//├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
|
||||
_______, _______, _______, _______, _______, KC_LPRN, LOWER, _______, KC_RPRN, KC_1, KC_2, KC_3, KC_PAST, KC_PSLS,
|
||||
//└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
|
||||
_______, _______, LOWER, _______, _______, KC_0
|
||||
// └────────┴────────┴────────┘ └────────┴────────┴────────┘
|
||||
),
|
||||
|
||||
[_RAISE] = LAYOUT(
|
||||
//┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
|
||||
KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
|
||||
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
||||
_______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______,
|
||||
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
||||
_______, _______, KC_BSLS, KC_EQUAL,KC_QUOTE,KC_UNDS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______,
|
||||
//├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
|
||||
_______, _______, _______, _______, _______, KC_MINS, LOWER, _______, KC_PLUS, _______, _______, _______, _______, _______,
|
||||
//└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
|
||||
_______, _______, LOWER, _______, _______, _______
|
||||
// └────────┴────────┴────────┘ └────────┴────────┴────────┘
|
||||
),
|
||||
|
||||
[_ADJUST] = LAYOUT(
|
||||
//┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET,
|
||||
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
||||
_______, _______, _______, RGB_VAD, RGB_VAI ,_______ , KC_PSCR, KC_BTN1, KC_BTN2, KC_BTN3, _______, _______,
|
||||
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
||||
_______, _______, _______, RGB_RMOD,RGB_MOD, RGB_TOG , KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, _______, _______,
|
||||
//├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
|
||||
_______, _______, _______, RGB_HUD, RGB_HUI, _______, LOWER, _______, _______, _______, _______, _______, _______, _______,
|
||||
//└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
|
||||
_______, _______, LOWER, _______, _______, _______
|
||||
// └────────┴────────┴────────┘ └────────┴────────┴────────┘
|
||||
)
|
||||
};
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
switch (keycode) {
|
||||
case LOWER:
|
||||
if (record->event.pressed) {
|
||||
layer_on(_LOWER);
|
||||
update_tri_layer(_LOWER, _RAISE, _ADJUST);
|
||||
} else {
|
||||
layer_off(_LOWER);
|
||||
update_tri_layer(_LOWER, _RAISE, _ADJUST);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case RAISE:
|
||||
if (record->event.pressed) {
|
||||
layer_on(_RAISE);
|
||||
update_tri_layer(_LOWER, _RAISE, _ADJUST);
|
||||
} else {
|
||||
layer_off(_RAISE);
|
||||
update_tri_layer(_LOWER, _RAISE, _ADJUST);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case ADJUST:
|
||||
if (record->event.pressed) {
|
||||
layer_on(_ADJUST);
|
||||
} else {
|
||||
layer_off(_ADJUST);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool get_permissive_hold(uint16_t keycode, keyrecord_t *record) {
|
||||
switch (keycode) {
|
||||
case SFTESC:
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
void encoder_update_user(uint8_t index, bool clockwise) {
|
||||
|
||||
switch (get_highest_layer(layer_state)) {
|
||||
case _LOWER:
|
||||
if (clockwise) {
|
||||
tap_code(KC_WH_D);
|
||||
} else {
|
||||
tap_code(KC_WH_U);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
if (clockwise) {
|
||||
tap_code(KC_PGDN);
|
||||
} else {
|
||||
tap_code(KC_PGUP);
|
||||
}
|
||||
}
|
||||
}
|
8
keyboards/keebio/iris/keymaps/ddone/readme.md
Normal file
8
keyboards/keebio/iris/keymaps/ddone/readme.md
Normal file
@@ -0,0 +1,8 @@
|
||||

|
||||
|
||||
# Dddone's Iris keymap
|
||||
|
||||
## Keymap
|
||||
|
||||

|
||||

|
4
keyboards/keebio/iris/keymaps/ddone/rules.mk
Normal file
4
keyboards/keebio/iris/keymaps/ddone/rules.mk
Normal file
@@ -0,0 +1,4 @@
|
||||
LTO_ENABLE = yes
|
||||
COMMAND_ENABLE = no
|
||||
MOUSEKEY_ENABLE = yes
|
||||
BOOTMAGIC_ENABLE = lite
|
155
keyboards/kindakeyboards/conone65/config.h
Normal file
155
keyboards/kindakeyboards/conone65/config.h
Normal file
@@ -0,0 +1,155 @@
|
||||
/*
|
||||
Copyright 2021 Kindakeyboards
|
||||
|
||||
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
|
||||
|
||||
#include "config_common.h"
|
||||
|
||||
/* USB Device descriptor parameter */
|
||||
#define VENDOR_ID 0x9133
|
||||
#define PRODUCT_ID 0x6AAB
|
||||
#define DEVICE_VER 0x0001
|
||||
#define MANUFACTURER Kindakeyboards
|
||||
#define PRODUCT Conone 65
|
||||
|
||||
/* key matrix size */
|
||||
#define MATRIX_ROWS 5
|
||||
#define MATRIX_COLS 16
|
||||
|
||||
/*
|
||||
* 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 {D5,D3,E6,D1,D2}
|
||||
#define MATRIX_COL_PINS {B7,F7,D4,D6,D7,B4,B5,B6,C6,C7,F6,F5,F4,F1,F0,D0}
|
||||
#define UNUSED_PINS
|
||||
|
||||
/* COL2ROW, ROW2COL */
|
||||
#define DIODE_DIRECTION COL2ROW
|
||||
|
||||
/*
|
||||
* Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN.
|
||||
*/
|
||||
#define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6
|
||||
|
||||
//#define LED_NUM_LOCK_PIN B0
|
||||
//#define LED_CAPS_LOCK_PIN B1
|
||||
//#define LED_SCROLL_LOCK_PIN B2
|
||||
//#define LED_COMPOSE_PIN B3
|
||||
//#define LED_KANA_PIN B4
|
||||
|
||||
//#define BACKLIGHT_PIN B7
|
||||
//#define BACKLIGHT_LEVELS 3
|
||||
//#define BACKLIGHT_BREATHING
|
||||
|
||||
//#define RGB_DI_PIN E2
|
||||
//#ifdef RGB_DI_PIN
|
||||
//# define RGBLED_NUM 16
|
||||
//# 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
|
||||
/*== customize breathing effect ==*/
|
||||
/*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/
|
||||
//# define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64
|
||||
/*==== use exp() and sin() ====*/
|
||||
//# define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7
|
||||
//# define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255
|
||||
//#endif
|
||||
|
||||
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
|
||||
#define DEBOUNCE 5
|
||||
|
||||
/* define if matrix has ghost (lacks anti-ghosting diodes) */
|
||||
//#define MATRIX_HAS_GHOST
|
||||
|
||||
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||
#define LOCKING_SUPPORT_ENABLE
|
||||
/* Locking resynchronize hack */
|
||||
#define LOCKING_RESYNC_ENABLE
|
||||
|
||||
/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
|
||||
* This is useful for the Windows task manager shortcut (ctrl+shift+esc).
|
||||
*/
|
||||
//#define GRAVE_ESC_CTRL_OVERRIDE
|
||||
|
||||
/*
|
||||
* Force NKRO
|
||||
*
|
||||
* Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
|
||||
* state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
|
||||
* makefile for this to work.)
|
||||
*
|
||||
* If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
|
||||
* until the next keyboard reset.
|
||||
*
|
||||
* NKRO may prevent your keystrokes from being detected in the BIOS, but it is
|
||||
* fully operational during normal computer usage.
|
||||
*
|
||||
* For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
|
||||
* or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
|
||||
* bootmagic, NKRO mode will always be enabled until it is toggled again during a
|
||||
* power-up.
|
||||
*
|
||||
*/
|
||||
//#define FORCE_NKRO
|
||||
|
||||
/*
|
||||
* Feature disable options
|
||||
* These options are also useful to firmware size reduction.
|
||||
*/
|
||||
|
||||
/* disable debug print */
|
||||
//#define NO_DEBUG
|
||||
|
||||
/* disable print */
|
||||
//#define NO_PRINT
|
||||
|
||||
/* disable action features */
|
||||
//#define NO_ACTION_LAYER
|
||||
//#define NO_ACTION_TAPPING
|
||||
//#define NO_ACTION_ONESHOT
|
||||
|
||||
/* 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
|
||||
|
||||
#define QMK_ESC_OUTPUT B7 // usually COL
|
||||
#define QMK_ESC_INPUT D5 // usually ROW
|
17
keyboards/kindakeyboards/conone65/conone65.c
Normal file
17
keyboards/kindakeyboards/conone65/conone65.c
Normal file
@@ -0,0 +1,17 @@
|
||||
/* Copyright 2021 Kindakeyboards
|
||||
*
|
||||
* 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 "conone65.h"
|
133
keyboards/kindakeyboards/conone65/conone65.h
Normal file
133
keyboards/kindakeyboards/conone65/conone65.h
Normal file
@@ -0,0 +1,133 @@
|
||||
/* Copyright 2021 Kindakeyboards
|
||||
*
|
||||
* 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
|
||||
|
||||
#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 ___ KC_NO
|
||||
#define LAYOUT_all( \
|
||||
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0f, k0d, k0e, \
|
||||
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, \
|
||||
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, \
|
||||
k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, \
|
||||
k40, k41, k42, k44, k46, k48, k49, k4a, k4b, k4c, k4d, k4e \
|
||||
) \
|
||||
{ \
|
||||
{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, k1d, k1e, ___}, \
|
||||
{k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, ___}, \
|
||||
{k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, ___}, \
|
||||
{k40, k41, k42, ___, k44, ___, k46, ___, k48, k49, k4a, k4b, k4c, k4d, k4e, ___} \
|
||||
}
|
||||
|
||||
#define LAYOUT_65_ansi( \
|
||||
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \
|
||||
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, \
|
||||
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2d, k2e, \
|
||||
k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, \
|
||||
k40, k41, k42, k46, k49, k4a, k4b, k4c, k4d, k4e \
|
||||
) \
|
||||
{ \
|
||||
{k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, ___}, \
|
||||
{k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, ___}, \
|
||||
{k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, ___, k2d, k2e, ___}, \
|
||||
{k30, ___, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, ___}, \
|
||||
{k40, k41, k42, ___, ___, ___, k46, ___, ___, k49, k4a, k4b, k4c, k4d, k4e, ___} \
|
||||
}
|
||||
|
||||
#define LAYOUT_65_ansi_split_bs( \
|
||||
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0f, k0d, k0e, \
|
||||
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, \
|
||||
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2d, k2e, \
|
||||
k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, \
|
||||
k40, k41, k42, k46, k49, k4a, k4b, k4c, k4d, k4e \
|
||||
) \
|
||||
{ \
|
||||
{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, k1d, k1e, ___}, \
|
||||
{k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, ___, k2d, k2e, ___}, \
|
||||
{k30, ___, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, ___}, \
|
||||
{k40, k41, k42, ___, ___, ___, k46, ___, ___, k49, k4a, k4b, k4c, k4d, k4e, ___} \
|
||||
}
|
||||
|
||||
#define LAYOUT_65_ansi_split_bs_space( \
|
||||
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0f, k0d, k0e, \
|
||||
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, \
|
||||
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2d, k2e, \
|
||||
k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, \
|
||||
k40, k41, k42, k44, k46, k48, k49, k4a, k4b, k4c, k4d, k4e \
|
||||
) \
|
||||
{ \
|
||||
{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, k1d, k1e, ___}, \
|
||||
{k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, ___, k2d, k2e, ___}, \
|
||||
{k30, ___, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, ___}, \
|
||||
{k40, k41, k42, ___, k44, ___, k46, ___, k48, k49, k4a, k4b, k4c, k4d, k4e, ___} \
|
||||
}
|
||||
|
||||
#define LAYOUT_65_iso( \
|
||||
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \
|
||||
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1e, \
|
||||
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, \
|
||||
k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, \
|
||||
k40, k41, k42, k46, k49, k4a, k4b, k4c, k4d, k4e \
|
||||
) \
|
||||
{ \
|
||||
{k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, ___}, \
|
||||
{k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, ___, k1e, ___}, \
|
||||
{k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, ___}, \
|
||||
{k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, ___}, \
|
||||
{k40, k41, k42, ___, ___, ___, k46, ___, ___, k49, k4a, k4b, k4c, k4d, k4e, ___} \
|
||||
}
|
||||
|
||||
#define LAYOUT_65_iso_split_bs( \
|
||||
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0f, k0d, k0e, \
|
||||
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1e, \
|
||||
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, \
|
||||
k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, \
|
||||
k40, k41, k42, k46, k49, k4a, k4b, k4c, k4d, k4e \
|
||||
) \
|
||||
{ \
|
||||
{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, ___}, \
|
||||
{k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, ___}, \
|
||||
{k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, ___}, \
|
||||
{k40, k41, k42, ___, ___, ___, k46, ___, ___, k49, k4a, k4b, k4c, k4d, k4e, ___} \
|
||||
}
|
||||
|
||||
#define LAYOUT_65_iso_split_bs_space( \
|
||||
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0f, k0d, k0e, \
|
||||
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1e, \
|
||||
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, \
|
||||
k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, \
|
||||
k40, k41, k42, k44, k46, k48, k49, k4a, k4b, k4c, k4d, k4e \
|
||||
) \
|
||||
{ \
|
||||
{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, ___}, \
|
||||
{k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, ___}, \
|
||||
{k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, ___}, \
|
||||
{k40, k41, k42, ___, k44, ___, k46, ___, k48, k49, k4a, k4b, k4c, k4d, k4e, ___} \
|
||||
}
|
529
keyboards/kindakeyboards/conone65/info.json
Normal file
529
keyboards/kindakeyboards/conone65/info.json
Normal file
@@ -0,0 +1,529 @@
|
||||
{
|
||||
"keyboard_name": "Conone 65",
|
||||
"url": "https://kindakeyboards.be/conone65",
|
||||
"maintainer": "evyd13",
|
||||
"width": 16,
|
||||
"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},
|
||||
{"x":14, "y":0},
|
||||
{"x":15, "y":0},
|
||||
{"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":15, "y":1},
|
||||
{"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":15, "y":2},
|
||||
{"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":15, "y":3},
|
||||
{"x":0, "y":4, "w":1.25},
|
||||
{"x":1.25, "y":4, "w":1.25},
|
||||
{"x":2.5, "y":4, "w":1.25},
|
||||
{"x":3.75, "y":4, "w":2.25},
|
||||
{"x":6, "y":4, "w":1.25},
|
||||
{"x":7.25, "y":4, "w":2.75},
|
||||
{"x":10, "y":4},
|
||||
{"x":11, "y":4},
|
||||
{"x":12, "y":4},
|
||||
{"x":13, "y":4},
|
||||
{"x":14, "y":4},
|
||||
{"x":15, "y":4}
|
||||
]
|
||||
},
|
||||
"LAYOUT_65_ansi": {
|
||||
"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":2},
|
||||
{"x":15, "y":0},
|
||||
{"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":15, "y":1},
|
||||
{"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, "w":2.25},
|
||||
{"x":15, "y":2},
|
||||
{"x":0, "y":3, "w":2.25},
|
||||
{"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":15, "y":3},
|
||||
{"x":0, "y":4, "w":1.25},
|
||||
{"x":1.25, "y":4, "w":1.25},
|
||||
{"x":2.5, "y":4, "w":1.25},
|
||||
{"x":3.75, "y":4, "w":6.25},
|
||||
{"x":10, "y":4},
|
||||
{"x":11, "y":4},
|
||||
{"x":12, "y":4},
|
||||
{"x":13, "y":4},
|
||||
{"x":14, "y":4},
|
||||
{"x":15, "y":4}
|
||||
]
|
||||
},
|
||||
"LAYOUT_65_ansi_split_bs": {
|
||||
"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},
|
||||
{"x":14, "y":0},
|
||||
{"x":15, "y":0},
|
||||
{"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":15, "y":1},
|
||||
{"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, "w":2.25},
|
||||
{"x":15, "y":2},
|
||||
{"x":0, "y":3, "w":2.25},
|
||||
{"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":15, "y":3},
|
||||
{"x":0, "y":4, "w":1.25},
|
||||
{"x":1.25, "y":4, "w":1.25},
|
||||
{"x":2.5, "y":4, "w":1.25},
|
||||
{"x":3.75, "y":4, "w":6.25},
|
||||
{"x":10, "y":4},
|
||||
{"x":11, "y":4},
|
||||
{"x":12, "y":4},
|
||||
{"x":13, "y":4},
|
||||
{"x":14, "y":4},
|
||||
{"x":15, "y":4}
|
||||
]
|
||||
},
|
||||
"LAYOUT_65_ansi_split_bs_space": {
|
||||
"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},
|
||||
{"x":14, "y":0},
|
||||
{"x":15, "y":0},
|
||||
{"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":15, "y":1},
|
||||
{"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, "w":2.25},
|
||||
{"x":15, "y":2},
|
||||
{"x":0, "y":3, "w":2.25},
|
||||
{"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":15, "y":3},
|
||||
{"x":0, "y":4, "w":1.25},
|
||||
{"x":1.25, "y":4, "w":1.25},
|
||||
{"x":2.5, "y":4, "w":1.25},
|
||||
{"x":3.75, "y":4, "w":2.25},
|
||||
{"x":6, "y":4, "w":1.25},
|
||||
{"x":7.25, "y":4, "w":2.75},
|
||||
{"x":10, "y":4},
|
||||
{"x":11, "y":4},
|
||||
{"x":12, "y":4},
|
||||
{"x":13, "y":4},
|
||||
{"x":14, "y":4},
|
||||
{"x":15, "y":4}
|
||||
]
|
||||
},
|
||||
"LAYOUT_65_iso": {
|
||||
"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":2},
|
||||
{"x":15, "y":0},
|
||||
{"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":15, "y":1},
|
||||
{"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":1, "w":1.25, "h":2},
|
||||
{"x":15, "y":2},
|
||||
{"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":15, "y":3},
|
||||
{"x":0, "y":4, "w":1.25},
|
||||
{"x":1.25, "y":4, "w":1.25},
|
||||
{"x":2.5, "y":4, "w":1.25},
|
||||
{"x":3.75, "y":4, "w":6.25},
|
||||
{"x":10, "y":4},
|
||||
{"x":11, "y":4},
|
||||
{"x":12, "y":4},
|
||||
{"x":13, "y":4},
|
||||
{"x":14, "y":4},
|
||||
{"x":15, "y":4}
|
||||
]
|
||||
},
|
||||
"LAYOUT_65_iso_split_bs": {
|
||||
"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},
|
||||
{"x":14, "y":0},
|
||||
{"x":15, "y":0},
|
||||
{"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":15, "y":1},
|
||||
{"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":1, "w":1.25, "h":2},
|
||||
{"x":15, "y":2},
|
||||
{"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":15, "y":3},
|
||||
{"x":0, "y":4, "w":1.25},
|
||||
{"x":1.25, "y":4, "w":1.25},
|
||||
{"x":2.5, "y":4, "w":1.25},
|
||||
{"x":3.75, "y":4, "w":6.25},
|
||||
{"x":10, "y":4},
|
||||
{"x":11, "y":4},
|
||||
{"x":12, "y":4},
|
||||
{"x":13, "y":4},
|
||||
{"x":14, "y":4},
|
||||
{"x":15, "y":4}
|
||||
]
|
||||
},
|
||||
"LAYOUT_65_iso_split_bs_space": {
|
||||
"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},
|
||||
{"x":14, "y":0},
|
||||
{"x":15, "y":0},
|
||||
{"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":15, "y":1},
|
||||
{"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":1, "w":1.25, "h":2},
|
||||
{"x":15, "y":2},
|
||||
{"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":15, "y":3},
|
||||
{"x":0, "y":4, "w":1.25},
|
||||
{"x":1.25, "y":4, "w":1.25},
|
||||
{"x":2.5, "y":4, "w":1.25},
|
||||
{"x":3.75, "y":4, "w":2.25},
|
||||
{"x":6, "y":4, "w":1.25},
|
||||
{"x":7.25, "y":4, "w":2.75},
|
||||
{"x":10, "y":4},
|
||||
{"x":11, "y":4},
|
||||
{"x":12, "y":4},
|
||||
{"x":13, "y":4},
|
||||
{"x":14, "y":4},
|
||||
{"x":15, "y":4}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
39
keyboards/kindakeyboards/conone65/keymaps/default/keymap.c
Normal file
39
keyboards/kindakeyboards/conone65/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,39 @@
|
||||
/* Copyright 2021 Kindakeyboards
|
||||
*
|
||||
* 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
|
||||
|
||||
// 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] = 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_BSLS, 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, KC_DEL,
|
||||
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_BSLS, KC_ENT, KC_PGUP,
|
||||
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_PGDN,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||
),
|
||||
[_FN] = 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, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
};
|
@@ -0,0 +1 @@
|
||||
# The default keymap for Conone 65
|
17
keyboards/kindakeyboards/conone65/readme.md
Normal file
17
keyboards/kindakeyboards/conone65/readme.md
Normal file
@@ -0,0 +1,17 @@
|
||||
# Conone 65
|
||||
|
||||
The Conone 65 is a custom keyboard designed and machined in Belgium.
|
||||
|
||||
* Keyboard Maintainer: [Evyd13](https://github.com/evyd13)
|
||||
* Hardware Supported: Conone 65 PCB
|
||||
* Hardware Availability: [Group buy](https://forms.gle/nEFTxzBxy4KDm3nG8)
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make kindakeyboards/conone65:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make kindakeyboards/conone65: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).
|
24
keyboards/kindakeyboards/conone65/rules.mk
Normal file
24
keyboards/kindakeyboards/conone65/rules.mk
Normal file
@@ -0,0 +1,24 @@
|
||||
# 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 = no # Enable keyboard RGB underglow
|
||||
BLUETOOTH_ENABLE = no # Enable Bluetooth
|
||||
AUDIO_ENABLE = no # Audio output
|
||||
|
||||
LAYOUTS = 65_ansi 65_ansi_split_bs 65_iso 65_iso_split_bs
|
@@ -20,18 +20,12 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
#pragma once
|
||||
|
||||
//#define USE_MATRIX_I2C
|
||||
|
||||
/* Select hand configuration */
|
||||
|
||||
#define MASTER_LEFT
|
||||
// #define MASTER_RIGHT
|
||||
// #define EE_HANDS
|
||||
|
||||
// #define SSD1306OLED
|
||||
|
||||
#define USE_SERIAL_PD2
|
||||
|
||||
#define TAPPING_FORCE_HOLD
|
||||
#define TAPPING_TERM 100
|
||||
|
||||
|
@@ -1,15 +1,5 @@
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
#ifdef PROTOCOL_LUFA
|
||||
#include "lufa.h"
|
||||
#include "split_util.h"
|
||||
#endif
|
||||
#ifdef SSD1306OLED
|
||||
#include "ssd1306.h"
|
||||
#endif
|
||||
|
||||
extern uint8_t is_master;
|
||||
|
||||
enum layer_number {
|
||||
_QWERTY = 0,
|
||||
_LOWER,
|
||||
@@ -107,13 +97,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
)
|
||||
};
|
||||
|
||||
// Setting ADJUST layer RGB back to default
|
||||
void update_tri_layer_RGB(uint8_t layer1, uint8_t layer2, uint8_t layer3) {
|
||||
if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) {
|
||||
layer_on(layer3);
|
||||
} else {
|
||||
layer_off(layer3);
|
||||
}
|
||||
layer_state_t layer_state_set_user(layer_state_t state) {
|
||||
return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
|
||||
}
|
||||
|
||||
//SSD1306 OLED update loop, make sure to enable OLED_DRIVER_ENABLE=yes in rules.mk
|
||||
|
52
keyboards/planck/keymaps/grant24/config.h
Normal file
52
keyboards/planck/keymaps/grant24/config.h
Normal file
@@ -0,0 +1,52 @@
|
||||
/* Copyright Greg Anto
|
||||
*
|
||||
* 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
|
||||
|
||||
#ifdef AUDIO_ENABLE
|
||||
#define STARTUP_SONG SONG(PLANCK_SOUND)
|
||||
// #define STARTUP_SONG SONG(NO_SOUND)
|
||||
|
||||
#define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \
|
||||
SONG(COLEMAK_SOUND), \
|
||||
SONG(DVORAK_SOUND) \
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
* MIDI options
|
||||
*/
|
||||
|
||||
/* enable basic MIDI features:
|
||||
- MIDI notes can be sent when in Music mode is on
|
||||
*/
|
||||
|
||||
#define MIDI_BASIC
|
||||
|
||||
/* enable advanced MIDI features:
|
||||
- MIDI notes can be added to the keymap
|
||||
- Octave shift and transpose
|
||||
- Virtual sustain, portamento, and modulation wheel
|
||||
- etc.
|
||||
*/
|
||||
//#define MIDI_ADVANCED
|
||||
|
||||
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
|
||||
//#define MIDI_TONE_KEYCODE_OCTAVES 2
|
||||
|
||||
// Most tactile encoders have detents every 4 stages
|
||||
#define ENCODER_RESOLUTION 4
|
374
keyboards/planck/keymaps/grant24/keymap.c
Normal file
374
keyboards/planck/keymaps/grant24/keymap.c
Normal file
@@ -0,0 +1,374 @@
|
||||
/* An 8-layer, 4x12, grid keymap for the Planck Rev 6.
|
||||
*
|
||||
*
|
||||
* Copyright 2015-2017 Greg Anto
|
||||
*
|
||||
* 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
|
||||
#include "muse.h"
|
||||
|
||||
|
||||
enum planck_layers {
|
||||
_QWERTY,
|
||||
_COLEMAK,
|
||||
_DVORAK,
|
||||
_LOWER,
|
||||
_RAISE,
|
||||
_PLOVER,
|
||||
_ADJUST,
|
||||
_FN
|
||||
};
|
||||
|
||||
enum planck_keycodes {
|
||||
QWERTY = SAFE_RANGE,
|
||||
COLEMAK,
|
||||
DVORAK,
|
||||
PLOVER,
|
||||
BACKLIT,
|
||||
EXT_PLV
|
||||
};
|
||||
|
||||
#define LOWER MO(_LOWER)
|
||||
#define RAISE MO(_RAISE)
|
||||
#define FN MO(_FN)
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
/* Qwerty
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | Tab | Q | W | E | R | T | Y | U | I | O | P | Del |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Esc | A | S | D | F | G | H | J | K | L | ; | " |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Ctrl | Fn | GUI | Alt |Lower | Spce | Bksp |Raise | Left | Down | Up |Right |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_QWERTY] = LAYOUT_planck_grid(
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL,
|
||||
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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, MT(MOD_RSFT, KC_ENT),
|
||||
KC_LCTL, OSL(FN), KC_LGUI, KC_LALT, LT(LOWER, KC_1), KC_SPC, KC_BSPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
|
||||
),
|
||||
|
||||
/* Colemak
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | Tab | Q | W | F | P | G | J | L | U | Y | ; | Del |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Esc | A | R | S | T | D | H | N | E | I | O | " |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Shift| Z | X | C | V | B | K | M | , | . | / |Enter |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Ctrl | Fn | Gui | Alt |Lower | Bksp | Spce |Raise | Left | Down | Up |Right |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_COLEMAK] = LAYOUT_planck_grid(
|
||||
KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_DEL,
|
||||
KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, RSFT_T(KC_ENT),
|
||||
KC_LCTL, OSL(FN), KC_LGUI, KC_LALT, LOWER, KC_BSPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
|
||||
),
|
||||
|
||||
/* Dvorak
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | Tab | " | , | . | P | Y | F | G | C | R | L | Del |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Esc | A | O | E | U | I | D | H | T | N | S | / |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Ctrl | Fn | Gui | Alt |Lower | Bksp | Spce |Raise | Left | Down | Up |Right |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_DVORAK] = LAYOUT_planck_grid(
|
||||
KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_DEL,
|
||||
KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH,
|
||||
KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, MT(MOD_RSFT, KC_ENT),
|
||||
KC_LCTL, OSL(FN), KC_LGUI, KC_LALT, LOWER, KC_BSPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
|
||||
),
|
||||
|
||||
/* Raise
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | |M Lft |M Dwn | M Up |M Rght| M UP | * | 4 | 5 | 6 | + | = |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | M5 | M4 | M3 | M2 | M1 | M DN | / | 1 | 2 | 3 | - | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | | 0 | , | . | |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_RAISE] = LAYOUT_planck_grid(
|
||||
KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS,
|
||||
KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_MS_WH_UP, KC_ASTR, KC_4, KC_5, KC_6, KC_PLUS, KC_EQL,
|
||||
KC_BTN5, KC_BTN4, KC_BTN3, KC_BTN2, KC_BTN1, KC_MS_WH_DOWN, KC_SLSH, KC_1, KC_2, KC_3, KC_MINS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_0, KC_COMM, KC_DOT, KC_NO
|
||||
),
|
||||
|
||||
/* Lower
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | | ! | @ | # | $ | % | ^ | & | * | ( | ) | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | ` | ~ | \ | [ | ] | - | _ | { | } | | | + | = |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | CTLA | CTLY | CTLZ | CTLX | CTLC | CTLV | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | |DelWrd| | | Home | PgDn | PgUp | End |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_LOWER] = LAYOUT_planck_grid(
|
||||
KC_TRNS, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_TRNS,
|
||||
KC_GRAVE, KC_TILD, KC_BSLS, KC_LBRC, KC_RBRC, KC_MINS, KC_UNDS, KC_LCBR, KC_RCBR, KC_PIPE, KC_PLUS, KC_EQL,
|
||||
KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, LCTL(KC_A), LCTL(KC_Y), LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, LCTL(KC_BSPC), KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_PGUP, KC_END
|
||||
),
|
||||
|
||||
/* Fn
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* |DelWrd| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | F11 | F12 | F13 | F14 | F15 | F16 | F17 | F18 | F19 | F20 | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Caps | F21 | F22 | F23 | F24 | Vol- | Mute | Vol+ | Prev | Play | Next | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | | | | | |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_FN] = LAYOUT_planck_grid(
|
||||
LCTL(KC_BSPC), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, XXXXXXX,
|
||||
XXXXXXX, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, XXXXXXX,
|
||||
KC_CAPS, KC_F21, KC_F22, KC_F23, KC_F24, KC_VOLD, KC_MUTE, KC_VOLU, KC_MRWD, KC_MPLY, KC_MFFD, XXXXXXX,
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
|
||||
),
|
||||
|
||||
/* Plover layer (http://opensteno.org)
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | # | # | # | # | # | # | # | # | # | # | # | # |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | S | T | P | H | * | * | F | P | L | T | D |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | S | K | W | R | * | * | R | B | G | S | Z |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Exit | | | A | O | | E | U | | | |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_PLOVER] = LAYOUT_planck_grid(
|
||||
KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1 ,
|
||||
XXXXXXX, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,
|
||||
XXXXXXX, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
|
||||
EXT_PLV, XXXXXXX, XXXXXXX, KC_C, KC_V, XXXXXXX, XXXXXXX, KC_N, KC_M, XXXXXXX, XXXXXXX, XXXXXXX
|
||||
),
|
||||
|
||||
/* Adjust (Lower + Raise)
|
||||
* v------------------------RGB CONTROL--------------------v
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | | Reset| | RGB |RGBMOD| HUE+ | HUE- | SAT+ | SAT- |BRGTH+|BRGTH-| |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | |Aud on|Audoff| | |Qwerty|Colemk|Dvorak|Plover| |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | |Mus on|Musoff| | | CAPS | | | | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | | | | | |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_ADJUST] = LAYOUT_planck_grid(
|
||||
_______, RESET, _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______,
|
||||
_______, _______, _______, AU_ON, AU_OFF, _______, _______, QWERTY, COLEMAK, DVORAK, PLOVER, _______,
|
||||
_______, _______, _______, MU_ON, MU_OFF, _______, _______, KC_CAPS, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
)
|
||||
|
||||
};
|
||||
|
||||
#ifdef AUDIO_ENABLE
|
||||
float plover_song[][2] = SONG(PLOVER_SOUND);
|
||||
float plover_gb_song[][2] = SONG(PLOVER_GOODBYE_SOUND);
|
||||
#endif
|
||||
|
||||
layer_state_t layer_state_set_user(layer_state_t state) {
|
||||
return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
|
||||
}
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
switch (keycode) {
|
||||
case QWERTY:
|
||||
if (record->event.pressed) {
|
||||
print("mode just switched to qwerty and this is a huge string\n");
|
||||
set_single_persistent_default_layer(_QWERTY);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case COLEMAK:
|
||||
if (record->event.pressed) {
|
||||
set_single_persistent_default_layer(_COLEMAK);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case DVORAK:
|
||||
if (record->event.pressed) {
|
||||
set_single_persistent_default_layer(_DVORAK);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case BACKLIT:
|
||||
if (record->event.pressed) {
|
||||
register_code(KC_RSFT);
|
||||
#ifdef BACKLIGHT_ENABLE
|
||||
backlight_step();
|
||||
#endif
|
||||
#ifdef KEYBOARD_planck_rev5
|
||||
writePinLow(E6);
|
||||
#endif
|
||||
} else {
|
||||
unregister_code(KC_RSFT);
|
||||
#ifdef KEYBOARD_planck_rev5
|
||||
writePinHigh(E6);
|
||||
#endif
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case PLOVER:
|
||||
if (record->event.pressed) {
|
||||
#ifdef AUDIO_ENABLE
|
||||
stop_all_notes();
|
||||
PLAY_SONG(plover_song);
|
||||
#endif
|
||||
layer_off(_RAISE);
|
||||
layer_off(_LOWER);
|
||||
layer_off(_ADJUST);
|
||||
layer_on(_PLOVER);
|
||||
if (!eeconfig_is_enabled()) {
|
||||
eeconfig_init();
|
||||
}
|
||||
keymap_config.raw = eeconfig_read_keymap();
|
||||
keymap_config.nkro = 1;
|
||||
eeconfig_update_keymap(keymap_config.raw);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case EXT_PLV:
|
||||
if (record->event.pressed) {
|
||||
#ifdef AUDIO_ENABLE
|
||||
PLAY_SONG(plover_gb_song);
|
||||
#endif
|
||||
layer_off(_PLOVER);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool muse_mode = false;
|
||||
uint8_t last_muse_note = 0;
|
||||
uint16_t muse_counter = 0;
|
||||
uint8_t muse_offset = 70;
|
||||
uint16_t muse_tempo = 50;
|
||||
|
||||
void encoder_update(bool clockwise) {
|
||||
if (muse_mode) {
|
||||
if (IS_LAYER_ON(_RAISE)) {
|
||||
if (clockwise) {
|
||||
muse_offset++;
|
||||
} else {
|
||||
muse_offset--;
|
||||
}
|
||||
} else {
|
||||
if (clockwise) {
|
||||
muse_tempo+=1;
|
||||
} else {
|
||||
muse_tempo-=1;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (clockwise) {
|
||||
#ifdef MOUSEKEY_ENABLE
|
||||
tap_code(KC_MS_WH_DOWN);
|
||||
#else
|
||||
tap_code(KC_PGDN);
|
||||
#endif
|
||||
} else {
|
||||
#ifdef MOUSEKEY_ENABLE
|
||||
tap_code(KC_MS_WH_UP);
|
||||
#else
|
||||
tap_code(KC_PGUP);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void dip_switch_update_user(uint8_t index, bool active) {
|
||||
switch (index) {
|
||||
case 0: {
|
||||
#ifdef AUDIO_ENABLE
|
||||
static bool play_sound = false;
|
||||
#endif
|
||||
if (active) {
|
||||
#ifdef AUDIO_ENABLE
|
||||
if (play_sound) { PLAY_SONG(plover_song); }
|
||||
#endif
|
||||
layer_on(_ADJUST);
|
||||
} else {
|
||||
#ifdef AUDIO_ENABLE
|
||||
if (play_sound) { PLAY_SONG(plover_gb_song); }
|
||||
#endif
|
||||
layer_off(_ADJUST);
|
||||
}
|
||||
#ifdef AUDIO_ENABLE
|
||||
play_sound = true;
|
||||
#endif
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
if (active) {
|
||||
muse_mode = true;
|
||||
} else {
|
||||
muse_mode = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void matrix_scan_user(void) {
|
||||
#ifdef AUDIO_ENABLE
|
||||
if (muse_mode) {
|
||||
if (muse_counter == 0) {
|
||||
uint8_t muse_note = muse_offset + SCALE[muse_clock_pulse()];
|
||||
if (muse_note != last_muse_note) {
|
||||
stop_note(compute_freq_for_midi_note(last_muse_note));
|
||||
play_note(compute_freq_for_midi_note(muse_note), 0xF);
|
||||
last_muse_note = muse_note;
|
||||
}
|
||||
}
|
||||
muse_counter = (muse_counter + 1) % muse_tempo;
|
||||
} else {
|
||||
if (muse_counter) {
|
||||
stop_all_notes();
|
||||
muse_counter = 0;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
bool music_mask_user(uint16_t keycode) {
|
||||
switch (keycode) {
|
||||
case RAISE:
|
||||
case LOWER:
|
||||
return false;
|
||||
default:
|
||||
return true;
|
||||
}
|
||||
}
|
108
keyboards/planck/keymaps/grant24/readme.md
Normal file
108
keyboards/planck/keymaps/grant24/readme.md
Normal file
@@ -0,0 +1,108 @@
|
||||
# grant24's Planck Rev 6 Layout
|
||||
|
||||
|
||||
## A layout centered around typing on Colemak, and gaming on Qwerty. Dvorak and Plover are also there just because.
|
||||
|
||||
#### Lower for symbols, easy coding symbols access on home row, standard num row symbols on top, right-hand use of common Ctrl shortcut keys.
|
||||
#### Raise for numbers, includes num row and num pad, as well as mouse keys.
|
||||
#### Adjust layer is a stripped down version of the default mapping.
|
||||
#### Code layer for Fn keys and media/volume control.
|
||||
|
||||
|
||||
|
||||
/* Qwerty
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | Tab | Q | W | E | R | T | Y | U | I | O | P | Del |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Esc | A | S | D | F | G | H | J | K | L | ; | " |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Ctrl | Fn | GUI | Alt |Lower | Spce | Bksp |Raise | Left | Down | Up |Right |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
|
||||
/* Colemak
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | Tab | Q | W | F | P | G | J | L | U | Y | ; | Del |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Esc | A | R | S | T | D | H | N | E | I | O | " |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Shift| Z | X | C | V | B | K | M | , | . | / |Enter |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Ctrl | Fn | Gui | Alt |Lower | Bksp | Spce |Raise | Left | Down | Up |Right |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
|
||||
/* Dvorak
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | Tab | " | , | . | P | Y | F | G | C | R | L | Del |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Esc | A | O | E | U | I | D | H | T | N | S | / |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Ctrl | Fn | Gui | Alt |Lower | Bksp | Spce |Raise | Left | Down | Up |Right |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
|
||||
/* Raise
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | |M Lft |M Dwn | M Up |M Rght| M UP | * | 4 | 5 | 6 | + | = |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | M5 | M4 | M3 | M2 | M1 | M DN | / | 1 | 2 | 3 | - | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | | 0 | , | . | |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
|
||||
/* Lower
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | | ! | @ | # | $ | % | ^ | & | * | ( | ) | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | ` | ~ | \ | [ | ] | - | _ | { | } | | | + | = |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | CTLA | CTLY | CTLZ | CTLX | CTLC | CTLV | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | |DelWrd| | | Home | PgDn | PgUp | End |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
|
||||
/* Fn
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* |DelWrd| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | F11 | F12 | F13 | F14 | F15 | F16 | F17 | F18 | F19 | F20 | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Caps | F21 | F22 | F23 | F24 | Vol- | Mute | Vol+ | Prev | Play | Next | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | | | | | |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
|
||||
/* Plover layer (http://opensteno.org)
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | # | # | # | # | # | # | # | # | # | # | # | # |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | S | T | P | H | * | * | F | P | L | T | D |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | S | K | W | R | * | * | R | B | G | S | Z |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Exit | | | A | O | | E | U | | | |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
|
||||
/* Adjust (Lower + Raise)
|
||||
* v------------------------RGB CONTROL--------------------v
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | | Reset| | RGB |RGBMOD| HUE+ | HUE- | SAT+ | SAT- |BRGTH+|BRGTH-| |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | |Aud on|Audoff| | |Qwerty|Colemk|Dvorak|Plover| |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | |Mus on|Musoff| | | CAPS | | | | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | | | | | |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
1
keyboards/planck/keymaps/grant24/rules.mk
Normal file
1
keyboards/planck/keymaps/grant24/rules.mk
Normal file
@@ -0,0 +1 @@
|
||||
SRC += muse.c
|
53
keyboards/rart/rartlite/config.h
Normal file
53
keyboards/rart/rartlite/config.h
Normal file
@@ -0,0 +1,53 @@
|
||||
/*
|
||||
Copyright 2021 Alabahuy
|
||||
|
||||
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
|
||||
|
||||
#include "config_common.h"
|
||||
|
||||
/* USB Device descriptor parameter */
|
||||
#define VENDOR_ID 0x414C
|
||||
#define PRODUCT_ID 0x4040
|
||||
#define DEVICE_VER 0x0001
|
||||
#define MANUFACTURER Alabahuy
|
||||
#define PRODUCT RARTLITE
|
||||
|
||||
/* key matrix size */
|
||||
#define MATRIX_ROWS 8
|
||||
#define MATRIX_COLS 7
|
||||
|
||||
/* key matrix pins */
|
||||
#define MATRIX_ROW_PINS { F4, D2, B2, B4, B6, B5, D0, D1 }
|
||||
#define MATRIX_COL_PINS { D4, C6, D7, E6, B3, F7, D3 }
|
||||
#define UNUSED_PINS
|
||||
|
||||
/* COL2ROW or ROW2COL */
|
||||
#define DIODE_DIRECTION COL2ROW
|
||||
|
||||
/* Set 0 if debouncing isn't needed */
|
||||
#define DEBOUNCE 5
|
||||
|
||||
#define LED_CAPS_LOCK_PIN F5
|
||||
#define LED_NUM_LOCK_PIN F6
|
||||
|
||||
#define LED_PIN_ON_STATE 0
|
||||
|
||||
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||
#define LOCKING_SUPPORT_ENABLE
|
||||
|
||||
/* Locking resynchronize hack */
|
||||
#define LOCKING_RESYNC_ENABLE
|
133
keyboards/rart/rartlite/info.json
Normal file
133
keyboards/rart/rartlite/info.json
Normal file
@@ -0,0 +1,133 @@
|
||||
{
|
||||
"keyboard_name": "RART4X4",
|
||||
"url": "",
|
||||
"maintainer": "Alabahuy",
|
||||
"width": 15.25,
|
||||
"height": 4.25,
|
||||
"layouts": {
|
||||
"LAYOUT_right_numpad": {
|
||||
"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.25, "y": 0},
|
||||
{"x": 13.25, "y": 0},
|
||||
{"x": 14.25, "y": 0},
|
||||
|
||||
{"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, "w":1.5},
|
||||
{"x": 12.25, "y": 1},
|
||||
{"x": 13.25, "y": 1},
|
||||
{"x": 14.25, "y": 1},
|
||||
|
||||
{"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": 11, "y": 2.25},
|
||||
{"x": 12.25, "y": 2},
|
||||
{"x": 13.25, "y": 2},
|
||||
{"x": 14.25, "y": 2},
|
||||
|
||||
{"x": 0, "y": 3, "w":1.25},
|
||||
{"x": 1.25, "y": 3},
|
||||
{"x": 2.25, "y": 3, "w":2.75},
|
||||
{"x": 5, "y": 3, "w":1.25},
|
||||
{"x": 6.25, "y": 3, "w":2.25},
|
||||
{"x": 8.5, "y": 3, "w":1.25},
|
||||
{"x": 10, "y": 3.25},
|
||||
{"x": 11, "y": 3.25},
|
||||
{"x": 12, "y": 3.25},
|
||||
{"x": 13.25, "y": 3},
|
||||
{"x": 14.25, "y": 3}
|
||||
]
|
||||
},
|
||||
|
||||
"LAYOUT_left_numpad": {
|
||||
"layout": [
|
||||
{"x": 0, "y": 0},
|
||||
{"x": 1, "y": 0},
|
||||
{"x": 2, "y": 0},
|
||||
{"x": 3.25, "y": 0},
|
||||
{"x": 4.25, "y": 0},
|
||||
{"x": 5.25, "y": 0},
|
||||
{"x": 6.25, "y": 0},
|
||||
{"x": 7.25, "y": 0},
|
||||
{"x": 8.25, "y": 0},
|
||||
{"x": 9.25, "y": 0},
|
||||
{"x": 10.25, "y": 0},
|
||||
{"x": 11.25, "y": 0},
|
||||
{"x": 12.25, "y": 0},
|
||||
{"x": 13.25, "y": 0},
|
||||
{"x": 14.25, "y": 0},
|
||||
|
||||
{"x": 0, "y": 1},
|
||||
{"x": 1, "y": 1},
|
||||
{"x": 2, "y": 1},
|
||||
{"x": 3.25, "y": 1, "w":1.5},
|
||||
{"x": 4.75, "y": 1},
|
||||
{"x": 5.75, "y": 1},
|
||||
{"x": 6.75, "y": 1},
|
||||
{"x": 7.75, "y": 1},
|
||||
{"x": 8.75, "y": 1},
|
||||
{"x": 9.75, "y": 1},
|
||||
{"x": 10.75, "y": 1},
|
||||
{"x": 11.75, "y": 1},
|
||||
{"x": 12.75, "y": 1},
|
||||
{"x": 13.75, "y": 1, "w":1.5},
|
||||
|
||||
{"x": 0, "y": 2},
|
||||
{"x": 1, "y": 2},
|
||||
{"x": 2, "y": 2},
|
||||
{"x": 3.25, "y": 2.25},
|
||||
{"x": 4.5, "y": 2},
|
||||
{"x": 5.5, "y": 2},
|
||||
{"x": 6.5, "y": 2},
|
||||
{"x": 7.5, "y": 2},
|
||||
{"x": 8.5, "y": 2},
|
||||
{"x": 9.5, "y": 2},
|
||||
{"x": 10.5, "y": 2},
|
||||
{"x": 11.5, "y": 2},
|
||||
{"x": 12.5, "y": 2},
|
||||
{"x": 13.5, "y": 2, "w":1.75},
|
||||
|
||||
{"x": 0, "y": 3},
|
||||
{"x": 1, "y": 3},
|
||||
{"x": 2.25, "y": 3.25},
|
||||
{"x": 3.25, "y": 3.25},
|
||||
{"x": 4.25, "y": 3.25},
|
||||
{"x": 5.5, "y": 3, "w":1.25},
|
||||
{"x": 6.75, "y": 3, "w":2.25},
|
||||
{"x": 9, "y": 3, "w":1.25},
|
||||
{"x": 10.25, "y": 3, "w":2.75},
|
||||
{"x": 13, "y": 3},
|
||||
{"x": 14, "y": 3, "w":1.25}
|
||||
]
|
||||
}
|
||||
|
||||
}
|
||||
}
|
37
keyboards/rart/rartlite/keymaps/default/keymap.c
Normal file
37
keyboards/rart/rartlite/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,37 @@
|
||||
/*
|
||||
Copyright 2021 Alabahuy
|
||||
|
||||
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] = {
|
||||
|
||||
[0] = LAYOUT_right_numpad(
|
||||
KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_P7, KC_P8, KC_P9,
|
||||
KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT, KC_P4, KC_P5, KC_P6,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_P1, KC_P2, KC_P3,
|
||||
KC_RCTL, KC_LALT, KC_SPC, KC_SPC, KC_SPC, MO(1), KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT
|
||||
),
|
||||
|
||||
[1] = LAYOUT_right_numpad(
|
||||
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_INS, RESET,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, KC_PGDN, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_END, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
};
|
||||
|
51
keyboards/rart/rartlite/keymaps/via/keymap.c
Normal file
51
keyboards/rart/rartlite/keymaps/via/keymap.c
Normal file
@@ -0,0 +1,51 @@
|
||||
/*
|
||||
Copyright 2021 Alabahuy
|
||||
|
||||
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] = {
|
||||
|
||||
[0] = LAYOUT_right_numpad(
|
||||
KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_P7, KC_P8, KC_P9,
|
||||
KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT, KC_P4, KC_P5, KC_P6,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_P1, KC_P2, KC_P3,
|
||||
KC_RCTL, KC_LALT, KC_SPC, KC_SPC, KC_SPC, MO(1), KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT
|
||||
),
|
||||
|
||||
[1] = LAYOUT_right_numpad(
|
||||
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_INS, RESET,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, KC_PGDN, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_END, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
[2] = LAYOUT_right_numpad(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
[3] = LAYOUT_right_numpad(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
)
|
||||
|
||||
};
|
||||
|
1
keyboards/rart/rartlite/keymaps/via/rules.mk
Normal file
1
keyboards/rart/rartlite/keymaps/via/rules.mk
Normal file
@@ -0,0 +1 @@
|
||||
VIA_ENABLE = yes
|
26
keyboards/rart/rartlite/rartlite.c
Normal file
26
keyboards/rart/rartlite/rartlite.c
Normal file
@@ -0,0 +1,26 @@
|
||||
/* Copyright 2021 Alabahuy
|
||||
* 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 "rartlite.h"
|
||||
|
||||
void keyboard_pre_init_kb(void) {
|
||||
setPinOutput(B1);
|
||||
|
||||
keyboard_pre_init_user();
|
||||
}
|
||||
|
||||
layer_state_t layer_state_set_kb(layer_state_t state) {
|
||||
writePin(B1, layer_state_cmp(state, 1));
|
||||
return layer_state_set_user(state);
|
||||
}
|
50
keyboards/rart/rartlite/rartlite.h
Normal file
50
keyboards/rart/rartlite/rartlite.h
Normal file
@@ -0,0 +1,50 @@
|
||||
/*
|
||||
Copyright 2021 Alabahuy
|
||||
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
|
||||
|
||||
#include "quantum.h"
|
||||
|
||||
#define LAYOUT_right_numpad( \
|
||||
K00, K10, K01, K11, K02, K12, K03, K13, K04, K14, K34, K05, K15, K06, K16, \
|
||||
K20, K30, K21, K31, K22, K32, K23, K33, K24, K54, K25, K35, K26, K36, \
|
||||
K40, K50, K41, K51, K42, K52, K43, K53, K44, K74, K45, K55, K46, K56, \
|
||||
K60, K70, K61, K62, K63, K73, K64, K65, K75, K66, K76 \
|
||||
) \
|
||||
{ \
|
||||
{ K00, K01, K02, K03, K04, K05, K06 }, \
|
||||
{ K10, K11, K12, K13, K14, K15, K16 }, \
|
||||
{ K20, K21, K22, K23, K24, K25, K26 }, \
|
||||
{ K30, K31, K32, K33, K34, K35, K36 }, \
|
||||
{ K40, K41, K42, K43, K44, K45, K46 }, \
|
||||
{ K50, K51, K52, K53, K54, K55, K56 }, \
|
||||
{ K60, K61, K62, K63, K64, K65, K66 }, \
|
||||
{ K70, KC_NO, KC_NO, K73, K74, K75, K76 }, \
|
||||
}
|
||||
|
||||
#define LAYOUT_left_numpad( \
|
||||
K16, K06, K15, K05, K34, K14, K04, K13, K03, K12, K02, K11, K01, K10, K00, \
|
||||
K36, K26, K35, K25, K54, K24, K33, K23, K32, K22, K31, K21, K30, K20, \
|
||||
K56, K46, K55, K45, K74, K44, K53, K43, K52, K42, K51, K41, K50, K40, \
|
||||
K76, K66, K75, K65, K64, K73, K63, K62, K61, K70, K60 \
|
||||
) \
|
||||
{ \
|
||||
{ K00, K01, K02, K03, K04, K05, K06 }, \
|
||||
{ K10, K11, K12, K13, K14, K15, K16 }, \
|
||||
{ K20, K21, K22, K23, K24, K25, K26 }, \
|
||||
{ K30, K31, K32, K33, K34, K35, K36 }, \
|
||||
{ K40, K41, K42, K43, K44, K45, K46 }, \
|
||||
{ K50, K51, K52, K53, K54, K55, K56 }, \
|
||||
{ K60, K61, K62, K63, K64, K65, K66 }, \
|
||||
{ K70, KC_NO, KC_NO, K73, K74, K75, K76 }, \
|
||||
}
|
22
keyboards/rart/rartlite/readme.md
Normal file
22
keyboards/rart/rartlite/readme.md
Normal file
@@ -0,0 +1,22 @@
|
||||
# [RARTLITE](https://github.com/alabahuy/RART/tree/master/RARTLITE)
|
||||
|
||||

|
||||
40% Layout mechanical keyboard with support left and right numpad. based on IMKG (Indonesia Mechanical Keyboard Group)
|
||||
|
||||
* Keyboard Maintainer: [Alabahuy](https://github.com/alabahuy)
|
||||
* Hardware Supported: RARTLITE PCB, Promicro, Mini USB
|
||||
* Hardware Availability: Private GB
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make rart/rartlite:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make rart/rartlite:default:flash
|
||||
|
||||
## Bootloader
|
||||
|
||||
To Enter the bootloader you can double click reset button on board when you flash the firmware
|
||||
|
||||
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).
|
22
keyboards/rart/rartlite/rules.mk
Normal file
22
keyboards/rart/rartlite/rules.mk
Normal file
@@ -0,0 +1,22 @@
|
||||
# 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 = 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
|
50
keyboards/studiokestra/nue/config.h
Normal file
50
keyboards/studiokestra/nue/config.h
Normal file
@@ -0,0 +1,50 @@
|
||||
/*
|
||||
Copyright 2021 Studio Kestra
|
||||
|
||||
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
|
||||
|
||||
#include "config_common.h"
|
||||
|
||||
/* USB Device descriptor parameter */
|
||||
#define VENDOR_ID 0x7C10
|
||||
#define PRODUCT_ID 0x0701
|
||||
#define DEVICE_VER 0x0001
|
||||
#define MANUFACTURER Studio Kestra
|
||||
#define PRODUCT Nue
|
||||
|
||||
#define MATRIX_ROWS 5
|
||||
#define MATRIX_COLS 14
|
||||
|
||||
#define MATRIX_COL_PINS { F0, F6, F7, D2, D3, D5, D4, D6, D7, B4, B5, B6, C6, C7 }
|
||||
#define MATRIX_ROW_PINS { B0, B7, F1, F5, F4}
|
||||
#define DIODE_DIRECTION COL2ROW
|
||||
|
||||
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
|
||||
#define DEBOUNCE 5
|
||||
|
||||
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||
#define LOCKING_SUPPORT_ENABLE
|
||||
/* Locking resynchronize hack */
|
||||
#define LOCKING_RESYNC_ENABLE
|
||||
|
||||
/* 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
|
80
keyboards/studiokestra/nue/info.json
Normal file
80
keyboards/studiokestra/nue/info.json
Normal file
@@ -0,0 +1,80 @@
|
||||
{
|
||||
"keyboard_name": "Nue",
|
||||
"url": "https://studiokestra.ca/nue",
|
||||
"maintainer": "Studio Kestra",
|
||||
"width": 15,
|
||||
"height": 5,
|
||||
"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},
|
||||
{"x":12, "y":0},
|
||||
{"x":13, "y":0},
|
||||
{"x":14, "y":0},
|
||||
|
||||
{"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, "w":2.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":0, "y":4, "w":1.25},
|
||||
{"x":1.25, "y":4, "w":1.25},
|
||||
{"x":2.5, "y":4, "w":1.25},
|
||||
{"x":3.75, "y":4, "w":6.25},
|
||||
{"x":10, "y":4, "w":1.25},
|
||||
{"x":11.25, "y":4, "w":1.25},
|
||||
{"x":12.5, "y":4, "w":1.25},
|
||||
{"x":13.75, "y":4, "w":1.25}]
|
||||
}
|
||||
}
|
||||
}
|
41
keyboards/studiokestra/nue/keymaps/default/keymap.c
Normal file
41
keyboards/studiokestra/nue/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,41 @@
|
||||
/* Copyright 2021 Studio Kestra
|
||||
*
|
||||
* 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
|
||||
|
||||
// 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] = 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_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_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_LSFT, 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(1),
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_MENU, KC_RCTL),
|
||||
|
||||
[_FN] = LAYOUT_all(
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_MPLY, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
|
||||
};
|
1
keyboards/studiokestra/nue/keymaps/default/readme.md
Normal file
1
keyboards/studiokestra/nue/keymaps/default/readme.md
Normal file
@@ -0,0 +1 @@
|
||||
# The default keymap for Nue
|
53
keyboards/studiokestra/nue/keymaps/via/keymap.c
Normal file
53
keyboards/studiokestra/nue/keymaps/via/keymap.c
Normal file
@@ -0,0 +1,53 @@
|
||||
/* Copyright 2021 Studio Kestra
|
||||
*
|
||||
* 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
|
||||
|
||||
// Defines names for use in layer keycodes and the keymap
|
||||
enum layer_names {
|
||||
_BASE,
|
||||
_FN1,
|
||||
_FN2,
|
||||
_FN3
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[_BASE] = 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_BSLS,
|
||||
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_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_LSFT, 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(1),
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_MENU, KC_RCTL),
|
||||
[_FN1] = LAYOUT_all(
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_MPLY, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
|
||||
[_FN2] = LAYOUT_all(
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
|
||||
[_FN3] = LAYOUT_all(
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
|
||||
};
|
1
keyboards/studiokestra/nue/keymaps/via/readme.md
Normal file
1
keyboards/studiokestra/nue/keymaps/via/readme.md
Normal file
@@ -0,0 +1 @@
|
||||
# Studio Kestra's Nue keymap for VIA
|
1
keyboards/studiokestra/nue/keymaps/via/rules.mk
Normal file
1
keyboards/studiokestra/nue/keymaps/via/rules.mk
Normal file
@@ -0,0 +1 @@
|
||||
VIA_ENABLE = yes
|
17
keyboards/studiokestra/nue/nue.c
Normal file
17
keyboards/studiokestra/nue/nue.c
Normal file
@@ -0,0 +1,17 @@
|
||||
/* Copyright 2021 Studio Kestra
|
||||
*
|
||||
* 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 "nue.h"
|
41
keyboards/studiokestra/nue/nue.h
Normal file
41
keyboards/studiokestra/nue/nue.h
Normal file
@@ -0,0 +1,41 @@
|
||||
/* Copyright 2021 Studio Kestra
|
||||
*
|
||||
* 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
|
||||
|
||||
#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_all(\
|
||||
k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k113, \
|
||||
k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k212, \
|
||||
k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k213, \
|
||||
k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, \
|
||||
k400, k401, k402, k406, k409, k410, k411, k412 \
|
||||
) { \
|
||||
{ k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013 }, \
|
||||
{ k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k113 }, \
|
||||
{ k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213 }, \
|
||||
{ k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313 }, \
|
||||
{ k400, k401, k402, KC_NO, KC_NO,KC_NO,k406, KC_NO,KC_NO, k409, k410, k411, k412, KC_NO} \
|
||||
}
|
23
keyboards/studiokestra/nue/readme.md
Normal file
23
keyboards/studiokestra/nue/readme.md
Normal file
@@ -0,0 +1,23 @@
|
||||
# Nue
|
||||
|
||||
60% PCB with gasket mounting tabs designed for the Nue keyboard.
|
||||
|
||||
* Keyboard Maintainer: [Studio Kestra](https://github.com/studiokestra/)
|
||||
* Hardware Supported: [studiokestra.ca/nue](https://studiokestra.ca/nue/)
|
||||
* Hardware Availability: Group-Buy (Q1 2021)
|
||||
|
||||
## Bootload Sequence
|
||||
|
||||
There are 3 ways to put the board in bootloader mode:
|
||||
|
||||
- Hold the top-left key (typically `Esc`) while plugging in the USB cable, OR
|
||||
- While the PCB is plugged into the PC, press the physical `RESET` button on the back of the board, OR
|
||||
- With the default layout, toggle Layer 1 and press the `R` key.
|
||||
|
||||
## Compiling Firmware
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make studiokestra/nue: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).
|
22
keyboards/studiokestra/nue/rules.mk
Normal file
22
keyboards/studiokestra/nue/rules.mk
Normal file
@@ -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 = no # Mouse keys
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||
CONSOLE_ENABLE = yes # 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 = no # 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
|
@@ -47,7 +47,7 @@ def c2json(cli):
|
||||
if cli.args.output:
|
||||
cli.args.output.parent.mkdir(parents=True, exist_ok=True)
|
||||
if cli.args.output.exists():
|
||||
cli.args.output.replace(cli.args.output.name + '.bak')
|
||||
cli.args.output.replace(cli.args.output.parent / (cli.args.output.name + '.bak'))
|
||||
cli.args.output.write_text(json.dumps(keymap_json, cls=InfoJSONEncoder))
|
||||
|
||||
if not cli.args.quiet:
|
||||
|
@@ -1,5 +1,6 @@
|
||||
from . import api
|
||||
from . import config_h
|
||||
from . import dfu_header
|
||||
from . import docs
|
||||
from . import info_json
|
||||
from . import layouts
|
||||
|
@@ -82,7 +82,7 @@ def generate_config_h(cli):
|
||||
"""
|
||||
# Determine our keyboard(s)
|
||||
if not cli.config.generate_config_h.keyboard:
|
||||
cli.log.error('Missing paramater: --keyboard')
|
||||
cli.log.error('Missing parameter: --keyboard')
|
||||
cli.subcommands['info'].print_help()
|
||||
return False
|
||||
|
||||
@@ -142,7 +142,7 @@ def generate_config_h(cli):
|
||||
if cli.args.output:
|
||||
cli.args.output.parent.mkdir(parents=True, exist_ok=True)
|
||||
if cli.args.output.exists():
|
||||
cli.args.output.replace(cli.args.output.name + '.bak')
|
||||
cli.args.output.replace(cli.args.output.parent / (cli.args.output.name + '.bak'))
|
||||
cli.args.output.write_text(config_h)
|
||||
|
||||
if not cli.args.quiet:
|
||||
|
59
lib/python/qmk/cli/generate/dfu_header.py
Normal file
59
lib/python/qmk/cli/generate/dfu_header.py
Normal file
@@ -0,0 +1,59 @@
|
||||
"""Used by the make system to generate LUFA Keyboard.h from info.json
|
||||
"""
|
||||
from dotty_dict import dotty
|
||||
from milc import cli
|
||||
|
||||
from qmk.decorators import automagic_keyboard
|
||||
from qmk.info import info_json
|
||||
from qmk.path import is_keyboard, normpath
|
||||
|
||||
|
||||
@cli.argument('-o', '--output', arg_only=True, type=normpath, help='File to write to')
|
||||
@cli.argument('-q', '--quiet', arg_only=True, action='store_true', help="Quiet mode, only output error messages")
|
||||
@cli.argument('-kb', '--keyboard', help='Keyboard to generate LUFA Keyboard.h for.')
|
||||
@cli.subcommand('Used by the make system to generate LUFA Keyboard.h from info.json', hidden=True)
|
||||
@automagic_keyboard
|
||||
def generate_dfu_header(cli):
|
||||
"""Generates the Keyboard.h file.
|
||||
"""
|
||||
# Determine our keyboard(s)
|
||||
if not cli.config.generate_dfu_header.keyboard:
|
||||
cli.log.error('Missing parameter: --keyboard')
|
||||
cli.subcommands['info'].print_help()
|
||||
return False
|
||||
|
||||
if not is_keyboard(cli.config.generate_dfu_header.keyboard):
|
||||
cli.log.error('Invalid keyboard: "%s"', cli.config.generate_dfu_header.keyboard)
|
||||
return False
|
||||
|
||||
# Build the Keyboard.h file.
|
||||
kb_info_json = dotty(info_json(cli.config.generate_dfu_header.keyboard))
|
||||
|
||||
keyboard_h_lines = ['/* This file was generated by `qmk generate-dfu-header`. Do not edit or copy.' ' */', '', '#pragma once']
|
||||
keyboard_h_lines.append(f'#define MANUFACTURER {kb_info_json["manufacturer"]}')
|
||||
keyboard_h_lines.append(f'#define PRODUCT {cli.config.generate_dfu_header.keyboard} Bootloader')
|
||||
|
||||
# Optional
|
||||
if 'qmk_lufa_bootloader.esc_output' in kb_info_json:
|
||||
keyboard_h_lines.append(f'#define QMK_ESC_OUTPUT {kb_info_json["qmk_lufa_bootloader.esc_output"]}')
|
||||
if 'qmk_lufa_bootloader.esc_input' in kb_info_json:
|
||||
keyboard_h_lines.append(f'#define QMK_ESC_INPUT {kb_info_json["qmk_lufa_bootloader.esc_input"]}')
|
||||
if 'qmk_lufa_bootloader.led' in kb_info_json:
|
||||
keyboard_h_lines.append(f'#define QMK_LED {kb_info_json["qmk_lufa_bootloader.led"]}')
|
||||
if 'qmk_lufa_bootloader.speaker' in kb_info_json:
|
||||
keyboard_h_lines.append(f'#define QMK_SPEAKER {kb_info_json["qmk_lufa_bootloader.speaker"]}')
|
||||
|
||||
# Show the results
|
||||
keyboard_h = '\n'.join(keyboard_h_lines)
|
||||
|
||||
if cli.args.output:
|
||||
cli.args.output.parent.mkdir(parents=True, exist_ok=True)
|
||||
if cli.args.output.exists():
|
||||
cli.args.output.replace(cli.args.output.parent / (cli.args.output.name + '.bak'))
|
||||
cli.args.output.write_text(keyboard_h)
|
||||
|
||||
if not cli.args.quiet:
|
||||
cli.log.info('Wrote Keyboard.h to %s.', cli.args.output)
|
||||
|
||||
else:
|
||||
print(keyboard_h)
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user