move keyhive exclusive boards into /keyhive (#16084)
Co-authored-by: Nick Brassel <nick@tzarc.org>
This commit is contained in:
17
keyboards/keyhive/absinthe/absinthe.c
Normal file
17
keyboards/keyhive/absinthe/absinthe.c
Normal file
@@ -0,0 +1,17 @@
|
||||
/* Copyright 2020 cfbender
|
||||
*
|
||||
* 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 "absinthe.h"
|
68
keyboards/keyhive/absinthe/absinthe.h
Normal file
68
keyboards/keyhive/absinthe/absinthe.h
Normal file
@@ -0,0 +1,68 @@
|
||||
/* Copyright 2020 cfbender
|
||||
*
|
||||
* 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 XXX KC_NO
|
||||
|
||||
#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_default( \
|
||||
K00, K10, K01, K11, K02, K12, K03, K13, K04, K14, K05, K15, K06, K16, K07, K17, K08, K18, \
|
||||
K20, K21, K31, K22, K32, K23, K33, K24, K34, K25, K35, K26, K36, K27, K37, K28, K38, \
|
||||
K40, K41, K51, K42, K52, K43, K53, K44, K54, K45, K55, K46, K56, \
|
||||
K60, K61, K71, K62, K72, K63, K73, K64, K74, K65, K75, K66, K67, K68, \
|
||||
K80, K81, K82, K83, K76, K86, K87, K77, K88, K78 \
|
||||
) \
|
||||
{ \
|
||||
{ K00, K01, K02, K03, K04, K05, K06, K07, K08 },\
|
||||
{ K10, K11, K12, K13, K14, K15, K16, K17, K18 },\
|
||||
{ K20, K21, K22, K23, K24, K25, K26, K27, K28 },\
|
||||
{ XXX, K31, K32, K33, K34, K35, K36, K37, K38 },\
|
||||
{ K40, K41, K42, K43, K44, K45, K46, XXX, XXX },\
|
||||
{ XXX, K51, K52, K53, K54, K55, K56, XXX, XXX },\
|
||||
{ K60, K61, K62, K63, K64, K65, K66, K67, K68 },\
|
||||
{ XXX, K71, K72, K73, K74, K75, K76, K77, K78 },\
|
||||
{ K80, K81, K82, K83, XXX, XXX, K86, K87, K88 } \
|
||||
}
|
||||
|
||||
#define LAYOUT_ansi( \
|
||||
K00, K10, K01, K11, K02, K12, K03, K13, K04, K14, K05, K15, K06, K16, K17, K08, K18, \
|
||||
K20, K21, K31, K22, K32, K23, K33, K24, K34, K25, K35, K26, K36, K27, K37, K28, K38, \
|
||||
K40, K41, K51, K42, K52, K43, K53, K44, K54, K45, K55, K46, K56, \
|
||||
K60, K61, K71, K62, K72, K63, K73, K64, K74, K65, K75, K66, K68, \
|
||||
K80, K81, K82, K83, K85, K76, K86, K87, K77, K88, K78 \
|
||||
) \
|
||||
{ \
|
||||
{ K00, K01, K02, K03, K04, K05, K06, XXX, K08 },\
|
||||
{ K10, K11, K12, K13, K14, K15, K16, K17, K18 },\
|
||||
{ K20, K21, K22, K23, K24, K25, K26, K27, K28 },\
|
||||
{ XXX, K31, K32, K33, K34, K35, K36, K37, K38 },\
|
||||
{ K40, K41, K42, K43, K44, K45, K46, XXX, XXX },\
|
||||
{ XXX, K51, K52, K53, K54, K55, K56, XXX, XXX },\
|
||||
{ K60, K61, K62, K63, K64, K65, K66, XXX, K68 },\
|
||||
{ XXX, K71, K72, K73, K74, K75, K76, K77, K78 },\
|
||||
{ K80, K81, K82, K83, XXX, K85, K86, K87, K88 } \
|
||||
}
|
||||
|
99
keyboards/keyhive/absinthe/config.h
Normal file
99
keyboards/keyhive/absinthe/config.h
Normal file
@@ -0,0 +1,99 @@
|
||||
/*
|
||||
Copyright 2020 cfbender
|
||||
|
||||
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 0xB00B
|
||||
#define PRODUCT_ID 0xFEED
|
||||
#define DEVICE_VER 0x0001
|
||||
#define MANUFACTURER cfbender
|
||||
#define PRODUCT absinthe
|
||||
|
||||
/* key matrix size */
|
||||
#define MATRIX_ROWS 9
|
||||
#define MATRIX_COLS 9
|
||||
|
||||
/*
|
||||
* 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 { D2, D1, B6, D4, C6, D7, E6, B4, B5 }
|
||||
#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B2, D3, D0 }
|
||||
#define UNUSED_PINS
|
||||
|
||||
#define ENCODERS_PAD_A { B7 }
|
||||
#define ENCODERS_PAD_B { D5 }
|
||||
|
||||
/* 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 BACKLIGHT_PIN B7
|
||||
// #define BACKLIGHT_BREATHING
|
||||
// #define BACKLIGHT_LEVELS 3
|
||||
|
||||
#define RGB_DI_PIN B0
|
||||
#ifdef RGB_DI_PIN
|
||||
#define RGBLED_NUM 32
|
||||
#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
|
148
keyboards/keyhive/absinthe/info.json
Normal file
148
keyboards/keyhive/absinthe/info.json
Normal file
@@ -0,0 +1,148 @@
|
||||
{
|
||||
"keyboard_name": "absinthe",
|
||||
"url": "https://github.com/cfbender/keyboards/tree/master/absinthe",
|
||||
"maintainer": "cfbender",
|
||||
"layouts": {
|
||||
"LAYOUT_default": {
|
||||
"layout": [
|
||||
{"label":"Esc", "x":0, "y":0},
|
||||
{"label":"!", "x":1, "y":0},
|
||||
{"label":"@", "x":2, "y":0},
|
||||
{"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0},
|
||||
{"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0},
|
||||
{"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0},
|
||||
{"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0},
|
||||
{"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0},
|
||||
{"label":"|", "x":13, "y":0}, {"label":"~", "x":14, "y":0},
|
||||
{"label":"Insert", "x":15.25, "y":0},
|
||||
{"label":"Home", "x":16.25, "y":0},
|
||||
{"label":"PgUp", "x":17.25, "y":0},
|
||||
{"label":"Tab", "x":0, "y":1, "w":1.5},
|
||||
{"label":"Q", "x":1.5, "y":1},
|
||||
{"label":"W", "x":2.5, "y":1},
|
||||
{"label":"E", "x":3.5, "y":1},
|
||||
{"label":"R", "x":4.5, "y":1},
|
||||
{"label":"T", "x":5.5, "y":1},
|
||||
{"label":"Y", "x":6.5, "y":1},
|
||||
{"label":"U", "x":7.5, "y":1},
|
||||
{"label":"I", "x":8.5, "y":1},
|
||||
{"label":"O", "x":9.5, "y":1},
|
||||
{"label":"P", "x":10.5, "y":1},
|
||||
{"label":"{", "x":11.5, "y":1},
|
||||
{"label":"}", "x":12.5, "y":1},
|
||||
{"label":"Backspace", "x":13.5, "y":1, "w":1.5},
|
||||
{"label":"Delete", "x":15.25, "y":1},
|
||||
{"label":"End", "x":16.25, "y":1},
|
||||
{"label":"PgDn", "x":17.25, "y":1},
|
||||
{"label":"Caps Lock", "x":0, "y":2, "w":1.75},
|
||||
{"label":"A", "x":1.75, "y":2},
|
||||
{"label":"S", "x":2.75, "y":2},
|
||||
{"label":"D", "x":3.75, "y":2},
|
||||
{"label":"F", "x":4.75, "y":2},
|
||||
{"label":"G", "x":5.75, "y":2},
|
||||
{"label":"H", "x":6.75, "y":2},
|
||||
{"label":"J", "x":7.75, "y":2},
|
||||
{"label":"K", "x":8.75, "y":2},
|
||||
{"label":"L", "x":9.75, "y":2},
|
||||
{"label":":", "x":10.75, "y":2},
|
||||
{"label":"\"", "x":11.75, "y":2},
|
||||
{"label":"Enter", "x":12.75, "y":2, "w":2.25},
|
||||
{"label":"Shift", "x":0, "y":3, "w":2.25},
|
||||
{"label":"Z", "x":2.25, "y":3},
|
||||
{"label":"X", "x":3.25, "y":3},
|
||||
{"label":"C", "x":4.25, "y":3},
|
||||
{"label":"V", "x":5.25, "y":3},
|
||||
{"label":"B", "x":6.25, "y":3},
|
||||
{"label":"N", "x":7.25, "y":3},
|
||||
{"label":"M", "x":8.25, "y":3},
|
||||
{"label":"<", "x":9.25, "y":3},
|
||||
{"label":">", "x":10.25, "y":3},
|
||||
{"label":"?", "x":11.25, "y":3},
|
||||
{"label":"Shift", "x":12.25, "y":3, "w":1.75},
|
||||
{"label":"MO(1)", "x":14, "y":3},
|
||||
{"label":"\u2191", "x":16.25, "y":3},
|
||||
{"label":"Ctrl", "x":0, "y":4, "w":1.5},
|
||||
{"label":"Win", "x":1.5, "y":4},
|
||||
{"label":"Alt", "x":2.5, "y":4, "w":1.5},
|
||||
{"x":4, "y":4, "w":7},
|
||||
{"label":"Alt", "x":11, "y":4, "w":1.5},
|
||||
{"label":"Win", "x":12.5, "y":4},
|
||||
{"label":"Ctrl", "x":13.5, "y":4, "w":1.5},
|
||||
{"label":"\u2190", "x":15.25, "y":4},
|
||||
{"label":"\u2193", "x":16.25, "y":4}, {"label":"\u2192", "x":17.25, "y":4}]
|
||||
},
|
||||
"LAYOUT_ansi": {
|
||||
"layout": [{"label":"Esc", "x":0, "y":0},
|
||||
{"label":"!", "x":1, "y":0},
|
||||
{"label":"@", "x":2, "y":0},
|
||||
{"label":"#", "x":3, "y":0},
|
||||
{"label":"$", "x":4, "y":0},
|
||||
{"label":"%", "x":5, "y":0},
|
||||
{"label":"^", "x":6, "y":0},
|
||||
{"label":"&", "x":7, "y":0},
|
||||
{"label":"*", "x":8, "y":0},
|
||||
{"label":"(", "x":9, "y":0},
|
||||
{"label":")", "x":10, "y":0},
|
||||
{"label":"_", "x":11, "y":0},
|
||||
{"label":"+", "x":12, "y":0},
|
||||
{"label":"Backspace", "x":13, "y":0, "w":2},
|
||||
{"label":"Insert", "x":15.25, "y":0},
|
||||
{"label":"Home", "x":16.25, "y":0},
|
||||
{"label":"PgUp", "x":17.25, "y":0},
|
||||
{"label":"Tab", "x":0, "y":1, "w":1.5},
|
||||
{"label":"Q", "x":1.5, "y":1},
|
||||
{"label":"W", "x":2.5, "y":1},
|
||||
{"label":"E", "x":3.5, "y":1},
|
||||
{"label":"R", "x":4.5, "y":1},
|
||||
{"label":"T", "x":5.5, "y":1},
|
||||
{"label":"Y", "x":6.5, "y":1},
|
||||
{"label":"U", "x":7.5, "y":1},
|
||||
{"label":"I", "x":8.5, "y":1},
|
||||
{"label":"O", "x":9.5, "y":1},
|
||||
{"label":"P", "x":10.5, "y":1},
|
||||
{"label":"{", "x":11.5, "y":1},
|
||||
{"label":"}", "x":12.5, "y":1},
|
||||
{"label":"|", "x":13.5, "y":1, "w":1.5},
|
||||
{"label":"Delete", "x":15.25, "y":1},
|
||||
{"label":"End", "x":16.25, "y":1},
|
||||
{"label":"PgDn", "x":17.25, "y":1},
|
||||
{"label":"Caps Lock", "x":0, "y":2, "w":1.75},
|
||||
{"label":"A", "x":1.75, "y":2},
|
||||
{"label":"S", "x":2.75, "y":2},
|
||||
{"label":"D", "x":3.75, "y":2},
|
||||
{"label":"F", "x":4.75, "y":2},
|
||||
{"label":"G", "x":5.75, "y":2},
|
||||
{"label":"H", "x":6.75, "y":2},
|
||||
{"label":"J", "x":7.75, "y":2},
|
||||
{"label":"K", "x":8.75, "y":2},
|
||||
{"label":"L", "x":9.75, "y":2},
|
||||
{"label":":", "x":10.75, "y":2},
|
||||
{"label":"\"", "x":11.75, "y":2},
|
||||
{"label":"Enter", "x":12.75, "y":2, "w":2.25},
|
||||
{"label":"Shift", "x":0, "y":3, "w":2.25},
|
||||
{"label":"Z", "x":2.25, "y":3},
|
||||
{"label":"X", "x":3.25, "y":3},
|
||||
{"label":"C", "x":4.25, "y":3},
|
||||
{"label":"V", "x":5.25, "y":3},
|
||||
{"label":"B", "x":6.25, "y":3},
|
||||
{"label":"N", "x":7.25, "y":3},
|
||||
{"label":"M", "x":8.25, "y":3},
|
||||
{"label":"<", "x":9.25, "y":3},
|
||||
{"label":">", "x":10.25, "y":3},
|
||||
{"label":"?", "x":11.25, "y":3},
|
||||
{"label":"Shift", "x":12.25, "y":3, "w":2.75},
|
||||
{"label":"\u2191", "x":16.25, "y":3},
|
||||
{"label":"Ctrl", "x":0, "y":4, "w":1.25},
|
||||
{"label":"Win", "x":1.25, "y":4, "w":1.25},
|
||||
{"label":"Alt", "x":2.5, "y":4, "w":1.25},
|
||||
{"x":3.75, "y":4, "w":6.25},
|
||||
{"label":"Alt", "x":10, "y":4, "w":1.25},
|
||||
{"label":"Win", "x":11.25, "y":4, "w":1.25},
|
||||
{"label":"Menu", "x":12.5, "y":4, "w":1.25},
|
||||
{"label":"Ctrl", "x":13.75, "y":4, "w":1.25},
|
||||
{"label":"\u2190", "x":15.25, "y":4},
|
||||
{"label":"\u2193", "x":16.25, "y":4},
|
||||
{"label":"\u2192", "x":17.25, "y":4}]
|
||||
}
|
||||
}
|
||||
}
|
32
keyboards/keyhive/absinthe/keymaps/ansi/keymap.c
Normal file
32
keyboards/keyhive/absinthe/keymaps/ansi/keymap.c
Normal file
@@ -0,0 +1,32 @@
|
||||
/* Copyright 2020 cfbender
|
||||
*
|
||||
* 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_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_INS, KC_HOME, KC_PGUP,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_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, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT),
|
||||
|
||||
[1] = LAYOUT_ansi(
|
||||
KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS,
|
||||
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, RGB_TOG, RGB_RMOD, RGB_MOD, RGB_HUD,RGB_HUI,RGB_SAD,RGB_SAI,RGB_VAD,RGB_VAI, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_TRNS)
|
||||
};
|
3
keyboards/keyhive/absinthe/keymaps/ansi/readme.md
Normal file
3
keyboards/keyhive/absinthe/keymaps/ansi/readme.md
Normal file
@@ -0,0 +1,3 @@
|
||||
# The all ANSI keymap for absinthe
|
||||
|
||||

|
43
keyboards/keyhive/absinthe/keymaps/default/keymap.c
Normal file
43
keyboards/keyhive/absinthe/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,43 @@
|
||||
/* Copyright 2020 cfbender
|
||||
*
|
||||
* 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_default(
|
||||
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_GRV, 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_BSPC, KC_DEL, KC_END, KC_PGDN,
|
||||
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||
KC_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_UP,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT),
|
||||
|
||||
[1] = LAYOUT_default(
|
||||
KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS,
|
||||
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, RGB_TOG, RGB_RMOD, RGB_MOD, RGB_HUD,RGB_HUI,RGB_SAD,RGB_SAI,RGB_VAD,RGB_VAI, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_TRNS)
|
||||
};
|
||||
|
||||
bool encoder_update_user(uint8_t index, bool clockwise) {
|
||||
if (index == 0) { /* First encoder */
|
||||
if (clockwise) {
|
||||
tap_code(KC_VOLU);
|
||||
} else {
|
||||
tap_code(KC_VOLD);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
6
keyboards/keyhive/absinthe/keymaps/default/readme.md
Normal file
6
keyboards/keyhive/absinthe/keymaps/default/readme.md
Normal file
@@ -0,0 +1,6 @@
|
||||
# The default keymap for absinthe
|
||||
|
||||
|
||||
Tsangan HHKB style with split backspace and split right shift.
|
||||
|
||||

|
70
keyboards/keyhive/absinthe/keymaps/via/keymap.c
Normal file
70
keyboards/keyhive/absinthe/keymaps/via/keymap.c
Normal file
@@ -0,0 +1,70 @@
|
||||
/* Copyright 2021 alittlepeace
|
||||
*
|
||||
* 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_default(
|
||||
KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, 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_BSPC, KC_DEL, KC_END, KC_PGDN,
|
||||
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||
KC_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_UP,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT),
|
||||
|
||||
[1] = LAYOUT_default(
|
||||
_______, 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,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
|
||||
|
||||
[2] = LAYOUT_default(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
|
||||
|
||||
[3] = LAYOUT_default(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______)
|
||||
|
||||
};
|
||||
|
||||
bool encoder_update_user(uint8_t index, bool clockwise) {
|
||||
if (index == 0) { /* First encoder */
|
||||
switch(get_highest_layer(layer_state)){
|
||||
case 1:
|
||||
if (clockwise){
|
||||
tap_code(KC_VOLU);
|
||||
} else{
|
||||
tap_code(KC_VOLD);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
if (clockwise) {
|
||||
tap_code(KC_WH_D);
|
||||
} else {
|
||||
tap_code(KC_WH_U);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
2
keyboards/keyhive/absinthe/keymaps/via/rules.mk
Normal file
2
keyboards/keyhive/absinthe/keymaps/via/rules.mk
Normal file
@@ -0,0 +1,2 @@
|
||||
VIA_ENABLE = yes
|
||||
MOUSEKEY_ENABLE = yes
|
15
keyboards/keyhive/absinthe/readme.md
Normal file
15
keyboards/keyhive/absinthe/readme.md
Normal file
@@ -0,0 +1,15 @@
|
||||
# absinthe
|
||||
|
||||

|
||||
|
||||
A budget-friendly F-rowless TKL with a rotary encoder
|
||||
|
||||
* Keyboard Maintainer: [cfbender](https://cfbender.design)
|
||||
* Hardware Supported: Absinthe PCB, Elite-C (for rotary encoder support - alternatively you can use a Pro Micro without an encoder)
|
||||
* Hardware Availability: [GitHub](https://github.com/cfbender/keyboards/tree/master/absinthe)
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make keyhive/absinthe: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).
|
20
keyboards/keyhive/absinthe/rules.mk
Normal file
20
keyboards/keyhive/absinthe/rules.mk
Normal file
@@ -0,0 +1,20 @@
|
||||
# MCU name
|
||||
MCU = atmega32u4
|
||||
|
||||
# Bootloader selection
|
||||
BOOTLOADER = atmel-dfu
|
||||
|
||||
# Build Options
|
||||
# change yes to no to disable
|
||||
#
|
||||
BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
|
||||
MOUSEKEY_ENABLE = no # Mouse keys
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||
CONSOLE_ENABLE = no # Console for debug
|
||||
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||
NKRO_ENABLE = no # Enable N-Key Rollover
|
||||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
||||
AUDIO_ENABLE = no # Audio output
|
||||
ENCODER_ENABLE = yes
|
||||
RGBLIGHT_ENABLE = yes
|
144
keyboards/keyhive/ergosaurus/config.h
Normal file
144
keyboards/keyhive/ergosaurus/config.h
Normal file
@@ -0,0 +1,144 @@
|
||||
/*
|
||||
Copyright 2019 cfbender
|
||||
|
||||
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 0x434B
|
||||
#define PRODUCT_ID 0xE590
|
||||
#define DEVICE_VER 0x0001
|
||||
#define MANUFACTURER reggalicious
|
||||
#define PRODUCT ergosaurus
|
||||
|
||||
/* key matrix size */
|
||||
#define MATRIX_ROWS 9
|
||||
#define MATRIX_COLS 8
|
||||
|
||||
/*
|
||||
* Keyboard Matrix Assignments
|
||||
*
|
||||
* Change this to how you wired your keyboard
|
||||
* COLS: AVR pins used for columns, left to right
|
||||
* ROWS: AVR pins used for rows, top to bottom
|
||||
* DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
|
||||
* ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
|
||||
*
|
||||
*/
|
||||
#define MATRIX_ROW_PINS \
|
||||
{ B5, B4, E6, D4, F6, D3, D2, F4, F5 }
|
||||
#define MATRIX_COL_PINS \
|
||||
{ D7, C6, D0, D1, F7, B1, B3, B2 }
|
||||
#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 BACKLIGHT_PIN B7
|
||||
// #define BACKLIGHT_BREATHING
|
||||
// #define BACKLIGHT_LEVELS 3
|
||||
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
# define RGB_DI_PIN B6
|
||||
#define RGBLED_NUM 32
|
||||
#define RGBLIGHT_HUE_STEP 8
|
||||
#define RGBLIGHT_SAT_STEP 8
|
||||
#define RGBLIGHT_VAL_STEP 8
|
||||
#define RGBLIGHT_LIMIT_VAL 200 /* 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 userful 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
|
||||
|
||||
/* Bootmagic Lite key configuration */
|
||||
#define BOOTMAGIC_LITE_ROW 0
|
||||
#define BOOTMAGIC_LITE_COLUMN 0
|
17
keyboards/keyhive/ergosaurus/ergosaurus.c
Normal file
17
keyboards/keyhive/ergosaurus/ergosaurus.c
Normal file
@@ -0,0 +1,17 @@
|
||||
|
||||
/* Copyright 2019 cfbender
|
||||
*
|
||||
* 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 "ergosaurus.h"
|
40
keyboards/keyhive/ergosaurus/ergosaurus.h
Normal file
40
keyboards/keyhive/ergosaurus/ergosaurus.h
Normal file
@@ -0,0 +1,40 @@
|
||||
/* Copyright 2019 cfbender
|
||||
*
|
||||
* 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 KNO KC_NO
|
||||
|
||||
#define LAYOUT_alice_split_bs( \
|
||||
K00, K10, K01, K11, K02, K12, K03, K13, K04, K14, K05, K15, K06, K16, K07, K17, \
|
||||
K20, K30, K21, K31, K22, K32, K23, K33, K24, K34, K25, K35, K26, K36, K27, \
|
||||
K40, K50, K41, K51, K42, K52, K43, K53, K44, K54, K45, K55, K46, K47, \
|
||||
K60, K61, K71, K62, K72, K63, K73, K64, K74, K65, K75, K66, K76, K67, \
|
||||
K80, K81, K82, K83, K84, K85, K87 \
|
||||
) { \
|
||||
{ K00, K01, K02, K03, K04, K05, K06, K07 }, \
|
||||
{ K10, K11, K12, K13, K14, K15, K16, K17 }, \
|
||||
{ K20, K21, K22, K23, K24, K25, K26, K27 }, \
|
||||
{ K30, K31, K32, K33, K34, K35, K36, KNO }, \
|
||||
{ K40, K41, K42, K43, K44, K45, K46, K47 }, \
|
||||
{ K50, K51, K52, K53, K54, K55, KNO, KNO }, \
|
||||
{ K60, K61, K62, K63, K64, K65, K66, K67 }, \
|
||||
{ KNO, K71, K72, K73, K74, K75, K76, KNO }, \
|
||||
{ K80, K81, K82, K83, K84, K85, KNO, K87 } \
|
||||
}
|
||||
|
||||
#define LAYOUT LAYOUT_alice_split_bs
|
80
keyboards/keyhive/ergosaurus/info.json
Normal file
80
keyboards/keyhive/ergosaurus/info.json
Normal file
@@ -0,0 +1,80 @@
|
||||
{
|
||||
"keyboard_name": "Ergosaurus",
|
||||
"maintainer": "cfbender",
|
||||
"layouts": {
|
||||
"LAYOUT_alice_split_bs": {
|
||||
"layout": [
|
||||
{"label":"`", "x":0.5, "y":0},
|
||||
{"label":"Esc", "x":1.75, "y":0.25},
|
||||
{"label":"1", "x":2.75, "y":0.25},
|
||||
{"label":"2", "x":3.75, "y":0},
|
||||
{"label":"3", "x":4.75, "y":0.25},
|
||||
{"label":"4", "x":5.75, "y":0.25},
|
||||
{"label":"5", "x":6.75, "y":0.25},
|
||||
{"label":"6", "x":7.75, "y":0.25},
|
||||
{"label":"7", "x":11, "y":0.25},
|
||||
{"label":"8", "x":12, "y":0.25},
|
||||
{"label":"9", "x":13, "y":0.25},
|
||||
{"label":"0", "x":14, "y":0.25},
|
||||
{"label":"-", "x":15, "y":0},
|
||||
{"label":"=", "x":16, "y":0.25},
|
||||
{"label":"|", "x":17, "y":0.25},
|
||||
{"label":"Del", "x":18, "y":0.25},
|
||||
|
||||
{"label":"PgUp", "x":0.25, "y":1},
|
||||
{"label":"Tab", "x":1.5, "y":1.25, "w":1.5},
|
||||
{"label":"Q", "x":3, "y":1.25},
|
||||
{"label":"W", "x":4.25, "y":1.25},
|
||||
{"label":"E", "x":5.25, "y":1.25},
|
||||
{"label":"R", "x":6.25, "y":1.25},
|
||||
{"label":"T", "x":7.25, "y":1.25},
|
||||
{"label":"Y", "x":10.5, "y":1.25},
|
||||
{"label":"U", "x":11.5, "y":1.25},
|
||||
{"label":"I", "x":12.5, "y":1.25},
|
||||
{"label":"O", "x":13.5, "y":1.25},
|
||||
{"label":"P", "x":14.75, "y":1.25},
|
||||
{"label":"{", "x":15.75, "y":1.25},
|
||||
{"label":"}", "x":16.75, "y":1.25},
|
||||
{"label":"Backspace", "x":17.75, "y":1.25, "w":1.5},
|
||||
|
||||
{"label":"PgDn", "x":0, "y":2},
|
||||
{"label":"Caps Lock", "x":1.5, "y":2.25, "w":1.75},
|
||||
{"label":"A", "x":3.25, "y":2.25},
|
||||
{"label":"S", "x":4.5, "y":2.25},
|
||||
{"label":"D", "x":5.5, "y":2.25},
|
||||
{"label":"F", "x":6.5, "y":2.25},
|
||||
{"label":"G", "x":7.5, "y":2.25},
|
||||
{"label":"H", "x":10.75, "y":2.25},
|
||||
{"label":"J", "x":11.75, "y":2.25},
|
||||
{"label":"K", "x":12.75, "y":2.25},
|
||||
{"label":"L", "x":13.75, "y":2.25},
|
||||
{"label":":", "x":15.25, "y":2.25},
|
||||
{"label":"\"", "x":16.25, "y":2.25},
|
||||
{"label":"Enter", "x":17.25, "y":2.25, "w":2.25},
|
||||
|
||||
{"label":"Shift", "x":1.5, "y":3.25, "w":2.25},
|
||||
{"label":"Z", "x":3.75, "y":3.25},
|
||||
{"label":"X", "x":5, "y":3.25},
|
||||
{"label":"C", "x":6, "y":3.25},
|
||||
{"label":"V", "x":7, "y":3.25},
|
||||
{"label":"B", "x":8, "y":3.25},
|
||||
{"label":"B", "x":10.25, "y":3.25},
|
||||
{"label":"N", "x":11.25, "y":3.25},
|
||||
{"label":"M", "x":12.25, "y":3.25},
|
||||
{"label":"<", "x":13.25, "y":3.25},
|
||||
{"label":">", "x":15, "y":3.25},
|
||||
{"label":"?", "x":16, "y":3.25},
|
||||
{"label":"Shift", "x":17, "y":3.25, "w":1.75},
|
||||
{"label":"Fn", "x":18.75, "y":3.25},
|
||||
|
||||
{"label":"Os", "x":1.5, "y":4.25, "w":1.5},
|
||||
{"label":"Alt", "x":5, "y":4.25, "w":1.5},
|
||||
{"label":"Enter", "x":6.5, "y":4.25, "w":2},
|
||||
{"label":"Fn", "x":8.5, "y":4.25},
|
||||
{"label":"Space", "x":10.25, "y":4.25, "w":2.25},
|
||||
{"label":"Alt", "x":12.5, "y":4.25, "w":1.5},
|
||||
{"label":"Ctrl", "x":18, "y":4.25, "w":1.5}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
47
keyboards/keyhive/ergosaurus/keymaps/default/keymap.c
Normal file
47
keyboards/keyhive/ergosaurus/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,47 @@
|
||||
/* Copyright 2019 cfbender
|
||||
*
|
||||
* 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
|
||||
|
||||
#define BASE 0
|
||||
#define LOWER 1
|
||||
#define RAISE 2
|
||||
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[BASE] = LAYOUT_alice_split_bs(
|
||||
KC_GRV, 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_DEL,
|
||||
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_BSPC,
|
||||
KC_PGDN, KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(LOWER),
|
||||
KC_LGUI, KC_LALT, KC_ENT, MO(RAISE), KC_SPC, KC_RALT, KC_RCTL
|
||||
),
|
||||
|
||||
[LOWER] = LAYOUT_alice_split_bs(
|
||||
_______, 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_UP, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_RIGHT, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DOWN, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
[RAISE] = LAYOUT_alice_split_bs(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, KC_UP, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, RESET
|
||||
)
|
||||
};
|
3
keyboards/keyhive/ergosaurus/keymaps/default/readme.md
Normal file
3
keyboards/keyhive/ergosaurus/keymaps/default/readme.md
Normal file
@@ -0,0 +1,3 @@
|
||||
# The default keymap for ergosaurus
|
||||
|
||||

|
51
keyboards/keyhive/ergosaurus/keymaps/via/keymap.c
Normal file
51
keyboards/keyhive/ergosaurus/keymaps/via/keymap.c
Normal file
@@ -0,0 +1,51 @@
|
||||
/* Copyright 2021 littleferris
|
||||
*
|
||||
* 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_alice_split_bs(
|
||||
KC_GRV, 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_DEL,
|
||||
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_BSPC,
|
||||
KC_PGDN, KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
|
||||
KC_LGUI, KC_LALT, KC_ENT, MO(2), KC_SPC, KC_RALT, KC_RCTL
|
||||
),
|
||||
|
||||
[1] = LAYOUT_alice_split_bs(
|
||||
_______, 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_UP, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_RIGHT, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DOWN, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
[2] = LAYOUT_alice_split_bs(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, KC_UP, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, RESET
|
||||
),
|
||||
|
||||
[3] = LAYOUT_alice_split_bs(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, RESET
|
||||
)
|
||||
};
|
2
keyboards/keyhive/ergosaurus/keymaps/via/rules.mk
Normal file
2
keyboards/keyhive/ergosaurus/keymaps/via/rules.mk
Normal file
@@ -0,0 +1,2 @@
|
||||
VIA_ENABLE = yes
|
||||
LTO_ENABLE = yes
|
15
keyboards/keyhive/ergosaurus/readme.md
Normal file
15
keyboards/keyhive/ergosaurus/readme.md
Normal file
@@ -0,0 +1,15 @@
|
||||
# Ergosaurus
|
||||
|
||||

|
||||
|
||||
An Arduino Pro Micro driven Alice-clone PCB. Supports all Alice-style cases, given the clearance for the Pro Micro. Ergosaurus specific acrylic case files available [here](https://github.com/cfbender/Lubrigante).
|
||||
|
||||
* Keyboard Maintainer: [cfbender](https://github.com/cfbender)
|
||||
* Hardware Supported: Ergosaurus PCB, Pro Micro
|
||||
* Hardware Availability: [KeyHive](https://keyhive.xyz)
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make keyhive/ergosaurus: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).
|
20
keyboards/keyhive/ergosaurus/rules.mk
Normal file
20
keyboards/keyhive/ergosaurus/rules.mk
Normal file
@@ -0,0 +1,20 @@
|
||||
# MCU name
|
||||
MCU = atmega32u4
|
||||
|
||||
# Bootloader selection
|
||||
BOOTLOADER = caterina
|
||||
|
||||
# Build Options
|
||||
# change yes to no to disable
|
||||
#
|
||||
BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
|
||||
MOUSEKEY_ENABLE = yes # Mouse keys
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||
CONSOLE_ENABLE = yes # Console for debug
|
||||
COMMAND_ENABLE = yes # Commands for debug and configuration
|
||||
NKRO_ENABLE = no # Enable N-Key Rollover
|
||||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
||||
AUDIO_ENABLE = no # Audio output
|
||||
|
||||
LAYOUTS = alice_split_bs
|
45
keyboards/keyhive/honeycomb/config.h
Executable file
45
keyboards/keyhive/honeycomb/config.h
Executable file
@@ -0,0 +1,45 @@
|
||||
/*
|
||||
Copyright 2019 @filoxo
|
||||
|
||||
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 0xFEED
|
||||
#define PRODUCT_ID 0xACC8
|
||||
#define DEVICE_VER 0x0001
|
||||
#define MANUFACTURER Keyhive
|
||||
#define PRODUCT Honeycomb Macropad
|
||||
|
||||
/* key matrix size */
|
||||
#define MATRIX_ROWS 1
|
||||
#define MATRIX_COLS 16
|
||||
|
||||
#define ONESHOT_TIMEOUT 500
|
||||
|
||||
/* 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
|
76
keyboards/keyhive/honeycomb/honeycomb.c
Executable file
76
keyboards/keyhive/honeycomb/honeycomb.c
Executable file
@@ -0,0 +1,76 @@
|
||||
#include "honeycomb.h"
|
||||
#include "pointing_device.h"
|
||||
#include "report.h"
|
||||
|
||||
void pointing_device_task(void){
|
||||
/*report_mouse_t currentReport = {};
|
||||
uint32_t timeout = 0;
|
||||
|
||||
//the m character requests the RF slave to send the mouse report
|
||||
uart_write('m');
|
||||
|
||||
//trust the external inputs completely, erase old data
|
||||
uint8_t uart_data[5] = {0};
|
||||
|
||||
//there are 10 bytes corresponding to 10 columns, and an end byte
|
||||
for (uint8_t i = 0; i < 5; i++) {
|
||||
//wait for the serial data, timeout if it's been too long
|
||||
//this only happened in testing with a loose wire, but does no
|
||||
//harm to leave it in here
|
||||
while(!uart_available()){
|
||||
timeout++;
|
||||
if (timeout > 10000){
|
||||
xprintf("\r\nTIMED OUT");
|
||||
break;
|
||||
}
|
||||
}
|
||||
xprintf("\r\nGOT DATA for %d",i);
|
||||
uart_data[i] = uart_read();
|
||||
}
|
||||
|
||||
//check for the end packet, bytes 1-4 are movement and scroll
|
||||
//but byte 5 has bits 0-3 for the scroll button state
|
||||
//(1000 if pressed, 0000 if not) and bits 4-7 are always 1
|
||||
//We can use this to verify the report sent properly.
|
||||
if (uart_data[4] == 0x0F || uart_data[4] == 0x8F)
|
||||
{
|
||||
xprintf("\r\nREQUESTED MOUSE, RECEIVED %i, %i, %i, %i, %i",uart_data[0],uart_data[1],uart_data[2],uart_data[3],uart_data[4]);
|
||||
currentReport = pointing_device_get_report();
|
||||
//shifting and transferring the info to the mouse report varaible
|
||||
//mouseReport.x = 127 max -127 min
|
||||
currentReport.x = (int8_t) uart_data[0];
|
||||
//mouseReport.y = 127 max -127 min
|
||||
currentReport.y = (int8_t) uart_data[1];
|
||||
//mouseReport.v = 127 max -127 min (scroll vertical)
|
||||
currentReport.v = (int8_t) uart_data[2];
|
||||
//mouseReport.h = 127 max -127 min (scroll horizontal)
|
||||
currentReport.h = (int8_t) uart_data[3];
|
||||
//mouseReport.buttons = 0x31 max (bitmask for mouse buttons 1-5) 0x00 min
|
||||
//mouse buttons 1 and 2 are handled by the keymap, but not 3
|
||||
if (uart_data[4] == 0x0F) { //then 3 is not pressed
|
||||
currentReport.buttons &= ~MOUSE_BTN3; //MOUSE_BTN3 is def in report.h
|
||||
} else { //3 must be pressed
|
||||
currentReport.buttons |= MOUSE_BTN3;
|
||||
}
|
||||
pointing_device_set_report(currentReport);
|
||||
} else {
|
||||
xprintf("\r\nRequested packet, data 4 was %d",uart_data[4]);
|
||||
}*/
|
||||
pointing_device_send();
|
||||
}
|
||||
|
||||
void led_init(void) {
|
||||
setPinOutput(D1);
|
||||
writePinHigh(D1);
|
||||
setPinOutput(F4);
|
||||
writePinHigh(F4);
|
||||
setPinOutput(F5);
|
||||
writePinHigh(F5);
|
||||
}
|
||||
|
||||
void matrix_init_kb(void) {
|
||||
// put your keyboard start-up code here
|
||||
// runs once when the firmware starts up
|
||||
matrix_init_user();
|
||||
led_init();
|
||||
}
|
32
keyboards/keyhive/honeycomb/honeycomb.h
Executable file
32
keyboards/keyhive/honeycomb/honeycomb.h
Executable file
@@ -0,0 +1,32 @@
|
||||
#pragma once
|
||||
|
||||
#include "quantum.h"
|
||||
|
||||
#define RED_LED_OFF() writePinHigh(F6)
|
||||
#define RED_LED_ON() writePinLow(F6)
|
||||
#define BLU_LED_OFF() writePinHigh(F5)
|
||||
#define BLU_LED_ON() writePinLow(F5)
|
||||
#define GRN_LED_OFF() writePinHigh(D1)
|
||||
#define GRN_LED_ON() writePinLow(D1)
|
||||
|
||||
#define SET_LED_OFF (RED_LED_OFF(); GRN_LED_OFF(); BLU_LED_OFF(); )
|
||||
#define SET_LED_RED (RED_LED_ON(); GRN_LED_OFF(); BLU_LED_OFF(); )
|
||||
#define SET_LED_BLUE (RED_LED_OFF(); GRN_LED_OFF(); BLU_LED_ON(); )
|
||||
#define SET_LED_GREEN (RED_LED_OFF(); GRN_LED_ON(); BLU_LED_OFF(); )
|
||||
#define SET_LED_YELLOW (RED_LED_ON(); GRN_LED_ON(); BLU_LED_OFF(); )
|
||||
#define SET_LED_MAGENTA (RED_LED_ON(); GRN_LED_OFF(); BLU_LED_ON(); )
|
||||
#define SET_LED_CYAN (RED_LED_OFF(); GRN_LED_ON(); BLU_LED_ON(); )
|
||||
#define SET_LED_WHITE (RED_LED_ON(); GRN_LED_ON(); BLU_LED_ON(); )
|
||||
|
||||
// This a shortcut to help you visually see your layout.
|
||||
// The first section contains all of the arguements
|
||||
// The second converts the arguments into a two-dimensional array
|
||||
#define LAYOUT( \
|
||||
k13, k14, k15, k16, \
|
||||
k09, k10, k11, k12, \
|
||||
k05, k06, k07, k08, \
|
||||
k01, k02, k03, k04 \
|
||||
) \
|
||||
{ \
|
||||
{ k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, k13, k14, k15, k16 } \
|
||||
}
|
30
keyboards/keyhive/honeycomb/info.json
Normal file
30
keyboards/keyhive/honeycomb/info.json
Normal file
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"keyboard_name": "Honeycomb",
|
||||
"url": "",
|
||||
"maintainer": "filoxo",
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
{"x":0, "y":0},
|
||||
{"x":1, "y":0},
|
||||
{"x":2, "y":0},
|
||||
{"x":3, "y":0},
|
||||
|
||||
{"x":0, "y":1},
|
||||
{"x":1, "y":1},
|
||||
{"x":2, "y":1},
|
||||
{"x":3, "y":1},
|
||||
|
||||
{"x":0, "y":2},
|
||||
{"x":1, "y":2},
|
||||
{"x":2, "y":2},
|
||||
{"x":3, "y":2},
|
||||
|
||||
{"x":0, "y":3},
|
||||
{"x":1, "y":3},
|
||||
{"x":2, "y":3},
|
||||
{"x":3, "y":3}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
91
keyboards/keyhive/honeycomb/keymaps/default/keymap.c
Executable file
91
keyboards/keyhive/honeycomb/keymaps/default/keymap.c
Executable file
@@ -0,0 +1,91 @@
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
// Each layer gets a name for readability, which is then used in the keymap matrix below.
|
||||
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
|
||||
// Layer names don't all need to be of the same length, obviously, and you can also skip them
|
||||
// entirely and just use numbers.
|
||||
enum honeycomb_layers {
|
||||
_BS,
|
||||
_EN
|
||||
};
|
||||
|
||||
// Macro definitions for readability
|
||||
enum honeycomb_keycodes {
|
||||
HW = SAFE_RANGE,
|
||||
COPY,
|
||||
PASTA
|
||||
};
|
||||
|
||||
extern int8_t encoderValue;
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[_BS] = LAYOUT( /* Base layout, put whatever defaults. */
|
||||
HW, COPY, PASTA, KC_MUTE,
|
||||
KC_4, KC_5, KC_6, KC_7,
|
||||
KC_8, KC_9, KC_A, KC_B,
|
||||
KC_C, KC_D, KC_E, KC_F
|
||||
),
|
||||
|
||||
[_EN] = LAYOUT( /* Alternate layer */
|
||||
_______, _______, _______, _______,
|
||||
_______, _______, _______, _______,
|
||||
_______, _______, _______, _______,
|
||||
_______, _______, _______, _______
|
||||
)
|
||||
};
|
||||
|
||||
report_mouse_t currentReport = {};
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
//uint8_t layer = biton32(layer_state); // get the current layer
|
||||
|
||||
// Basic example functions
|
||||
switch (keycode) {
|
||||
case HW:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING("Hello, world!");
|
||||
} else {
|
||||
SEND_STRING("Goodbye, cruel world!");
|
||||
}
|
||||
break;
|
||||
case COPY:
|
||||
if (record->event.pressed) {
|
||||
tap_code16(LCTL(KC_C)); // Replace with tap_code16(LCMD(KC_C)) to enable for Mac
|
||||
}
|
||||
break;
|
||||
case PASTA:
|
||||
if (record->event.pressed) {
|
||||
tap_code16(LCTL(KC_V)); // Replace with tap_code16(LCMD(KC_V)) to enable for Mac
|
||||
}
|
||||
break;
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
};
|
||||
|
||||
void matrix_scan_user(void) {
|
||||
/* Leaving some LED stuff in here in comment form so you can see how to use it.
|
||||
if (shiftLED || capsLED){
|
||||
red_led_on;
|
||||
} else {
|
||||
red_led_off;
|
||||
}
|
||||
if (numLED){
|
||||
grn_led_on;
|
||||
} else {
|
||||
grn_led_off;
|
||||
}
|
||||
if (mouseLED){
|
||||
blu_led_on;
|
||||
} else {
|
||||
blu_led_off;
|
||||
}*/
|
||||
while (encoderValue < 0){
|
||||
tap_code(KC_VOLD);
|
||||
encoderValue++;
|
||||
}
|
||||
while (encoderValue > 0){
|
||||
tap_code(KC_VOLU);
|
||||
encoderValue--;
|
||||
}
|
||||
};
|
190
keyboards/keyhive/honeycomb/matrix.c
Executable file
190
keyboards/keyhive/honeycomb/matrix.c
Executable file
@@ -0,0 +1,190 @@
|
||||
/*
|
||||
Copyright 2012 Jun Wako
|
||||
Copyright 2014 Jack Humbert
|
||||
Copyright 2019 @filoxo
|
||||
|
||||
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 <stdint.h>
|
||||
#include <stdbool.h>
|
||||
#if defined(__AVR__)
|
||||
#include <avr/io.h>
|
||||
#endif
|
||||
#include "wait.h"
|
||||
#include "print.h"
|
||||
#include "debug.h"
|
||||
#include "util.h"
|
||||
#include "matrix.h"
|
||||
#include "timer.h"
|
||||
#include "honeycomb.h"
|
||||
#include "pointing_device.h"
|
||||
#include "report.h"
|
||||
#include "uart.h"
|
||||
|
||||
#if (MATRIX_COLS <= 8)
|
||||
# define print_matrix_header() print("\nr/c 01234567\n")
|
||||
# define print_matrix_row(row) print_bin_reverse8(matrix_get_row(row))
|
||||
# define ROW_SHIFTER ((uint8_t)1)
|
||||
#elif (MATRIX_COLS <= 16)
|
||||
# define print_matrix_header() print("\nr/c 0123456789ABCDEF\n")
|
||||
# define print_matrix_row(row) print_bin_reverse16(matrix_get_row(row))
|
||||
# define ROW_SHIFTER ((uint16_t)1)
|
||||
#elif (MATRIX_COLS <= 32)
|
||||
# define print_matrix_header() print("\nr/c 0123456789ABCDEF0123456789ABCDEF\n")
|
||||
# define print_matrix_row(row) print_bin_reverse32(matrix_get_row(row))
|
||||
# define ROW_SHIFTER ((uint32_t)1)
|
||||
#endif
|
||||
|
||||
/* matrix state(1:on, 0:off) */
|
||||
static matrix_row_t matrix[MATRIX_ROWS];
|
||||
//extern int8_t encoderValue;
|
||||
int8_t encoderValue = 0;
|
||||
|
||||
__attribute__ ((weak))
|
||||
void matrix_init_quantum(void) {
|
||||
matrix_init_kb();
|
||||
}
|
||||
|
||||
__attribute__ ((weak))
|
||||
void matrix_scan_quantum(void) {
|
||||
matrix_scan_kb();
|
||||
}
|
||||
|
||||
__attribute__ ((weak))
|
||||
void matrix_init_kb(void) {
|
||||
matrix_init_user();
|
||||
}
|
||||
|
||||
__attribute__ ((weak))
|
||||
void matrix_scan_kb(void) {
|
||||
matrix_scan_user();
|
||||
}
|
||||
|
||||
__attribute__ ((weak))
|
||||
void matrix_init_user(void) {
|
||||
}
|
||||
|
||||
__attribute__ ((weak))
|
||||
void matrix_scan_user(void) {
|
||||
}
|
||||
|
||||
inline
|
||||
uint8_t matrix_rows(void) {
|
||||
return MATRIX_ROWS;
|
||||
}
|
||||
|
||||
inline
|
||||
uint8_t matrix_cols(void) {
|
||||
return MATRIX_COLS;
|
||||
}
|
||||
|
||||
void matrix_init(void) {
|
||||
|
||||
matrix_init_quantum();
|
||||
uart_init(1000000);
|
||||
}
|
||||
|
||||
uint8_t matrix_scan(void)
|
||||
{
|
||||
uint32_t timeout = 0;
|
||||
|
||||
// The 's' character requests the RF slave to send the matrix
|
||||
uart_write('s');
|
||||
|
||||
// Trust the external keystates entirely, erase the last data
|
||||
uint8_t uart_data[4] = {0};
|
||||
|
||||
// There are 3 bytes corresponding to the data, and a checksum
|
||||
for (uint8_t i = 0; i < 4; i++) {
|
||||
// Wait for the serial data, timeout if it's been too long
|
||||
// This only happened in testing with a loose wire, but does no
|
||||
// harm to leave it in here
|
||||
while(!uart_available()){
|
||||
timeout++;
|
||||
if (timeout > 10000){
|
||||
xprintf("\r\nTime out in keyboard.");
|
||||
break;
|
||||
}
|
||||
}
|
||||
uart_data[i] = uart_read();
|
||||
}
|
||||
|
||||
// Check for the end packet, it's our checksum.
|
||||
// Will only be a match if the correct bytes were recieved
|
||||
if (uart_data[3] == (uart_data[0] ^ uart_data[1] ^ uart_data[2])) { // This is an arbitrary checksum calculated by XORing all the data.
|
||||
// Transferring the keystates to the QMK matrix variable
|
||||
/* ASSUMING MSB FIRST */
|
||||
matrix[0] = ((uint16_t) uart_data[0] << 8) | ((uint16_t) uart_data[1]);
|
||||
encoderValue += (int8_t) uart_data[2];
|
||||
if ((uart_data[0] | uart_data[1] | uart_data[2])!=0){
|
||||
xprintf("\r\n0x%0X%02X%02X",uart_data[0],uart_data[1], uart_data[2]);
|
||||
}
|
||||
/* OK, TURNS OUT THAT WAS A BAD ASSUMPTION */
|
||||
for (uint8_t i = 0; i < MATRIX_ROWS; i++) {
|
||||
// I've unpacked these into the mirror image of what QMK expects them to be, so...
|
||||
matrix[i] = bitrev16(matrix[i]);
|
||||
// So I'll reverse it, and this should be fine now.
|
||||
}
|
||||
|
||||
// A mouse report for scrolling would go here, but I don't plan on doing scrolling with the encoder. So.
|
||||
|
||||
report_mouse_t currentReport = {};
|
||||
/*
|
||||
currentReport = pointing_device_get_report();
|
||||
//mouseReport.x = 127 max -127 min
|
||||
currentReport.x = (int8_t) uart_data[6];
|
||||
//mouseReport.y = 127 max -127 min
|
||||
currentReport.y = (int8_t) uart_data[7];
|
||||
//mouseReport.v = 127 max -127 min (scroll vertical)
|
||||
currentReport.v = (int8_t) uart_data[8];
|
||||
//mouseReport.h = 127 max -127 min (scroll horizontal)
|
||||
currentReport.h = (int8_t) uart_data[9];
|
||||
*/
|
||||
/*
|
||||
currentReport.x = 0;
|
||||
currentReport.y = 0;
|
||||
currentReport.v = 0;
|
||||
currentReport.h = 0;*/
|
||||
|
||||
pointing_device_set_report(currentReport);
|
||||
} else {
|
||||
xprintf("\r\nRequested packet, data 3 was %d",uart_data[3]);
|
||||
}
|
||||
|
||||
matrix_scan_quantum();
|
||||
return 1;
|
||||
}
|
||||
|
||||
inline
|
||||
bool matrix_is_on(uint8_t row, uint8_t col)
|
||||
{
|
||||
return (matrix[row] & ((matrix_row_t)1<col));
|
||||
}
|
||||
|
||||
inline
|
||||
matrix_row_t matrix_get_row(uint8_t row)
|
||||
{
|
||||
return matrix[row];
|
||||
}
|
||||
|
||||
void matrix_print(void)
|
||||
{
|
||||
print_matrix_header();
|
||||
|
||||
for (uint8_t row = 0; row < MATRIX_ROWS; row++) {
|
||||
print_hex8(row); print(": ");
|
||||
print_matrix_row(row);
|
||||
print("\n");
|
||||
}
|
||||
}
|
20
keyboards/keyhive/honeycomb/readme.md
Executable file
20
keyboards/keyhive/honeycomb/readme.md
Executable file
@@ -0,0 +1,20 @@
|
||||
Honeycomb Keyboard Firmware
|
||||
======================
|
||||
|
||||
These configuration files use a completely different 'matrix scan' system than other keyboards, it relies on an external nRF51822 microcontroller maintaining a matrix of keystates received from the macropad - it also receives rotary encoder information from the macropad. The matrix.c file contains the code to poll the external microcontroller for the key matrix, and the keymap.c file contains example code for encoder use. As long as the relevant functions in these files are not changed, all other QMK features are supported.
|
||||
|
||||
## Building
|
||||
|
||||
Run the following command in your terminal:
|
||||
|
||||
```
|
||||
make keyhive/honeycomb:default
|
||||
# or use this to automatically flash the controller
|
||||
make keyhive/honeycomb:default:avrdude
|
||||
```
|
||||
|
||||
Follow the QMK guide for this or ask in Discord.
|
||||
|
||||
### Other Keymaps
|
||||
|
||||
Because this is a totally custom macropad, it is recommended that you copy the `default/` folder, rename it as desired, and modify the `keymap.c` to your liking.
|
23
keyboards/keyhive/honeycomb/rules.mk
Executable file
23
keyboards/keyhive/honeycomb/rules.mk
Executable file
@@ -0,0 +1,23 @@
|
||||
# MCU name
|
||||
MCU = atmega32u4
|
||||
|
||||
# Bootloader selection
|
||||
BOOTLOADER = caterina
|
||||
|
||||
# Build Options
|
||||
# change yes to no to disable
|
||||
#
|
||||
BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
|
||||
#MOUSEKEY_ENABLE = yes # Mouse keys
|
||||
POINTING_DEVICE_ENABLE = yes # Generic Pointer, not as big as mouse keys hopefully.
|
||||
POINTING_DEVICE_DRIVER = custom
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||
CONSOLE_ENABLE = yes # Console for debug
|
||||
COMMAND_ENABLE = yes # Commands for debug and configuration
|
||||
CUSTOM_MATRIX = yes # Remote matrix from the wireless bridge
|
||||
NKRO_ENABLE = yes # Enable N-Key Rollover
|
||||
# BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
|
||||
|
||||
# # project specific files
|
||||
SRC += matrix.c
|
||||
QUANTUM_LIB_SRC += uart.c
|
98
keyboards/keyhive/lattice60/config.h
Normal file
98
keyboards/keyhive/lattice60/config.h
Normal file
@@ -0,0 +1,98 @@
|
||||
/*
|
||||
Copyright 2019 Ethan Durrant (emdarcher)
|
||||
|
||||
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 0x16C0
|
||||
#define PRODUCT_ID 0x27DB
|
||||
#define DEVICE_VER 0x0001
|
||||
#define MANUFACTURER emdarcher
|
||||
#define PRODUCT LATTICE60
|
||||
|
||||
/* key matrix size */
|
||||
#define MATRIX_ROWS 8
|
||||
#define MATRIX_COLS 8
|
||||
|
||||
/*
|
||||
* Keyboard Matrix Assignments
|
||||
*
|
||||
* Change this to how you wired your keyboard
|
||||
* COLS: AVR pins used for columns, left to right
|
||||
* ROWS: AVR pins used for rows, top to bottom
|
||||
* DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
|
||||
* ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
|
||||
*
|
||||
*/
|
||||
#define MATRIX_ROW_PINS { B2, B3, B4, B5, C0, C1, C2, C3 }
|
||||
#define MATRIX_COL_PINS { D7, D6, B0, D5, D1, D4, D0, B1 }
|
||||
#define UNUSED_PINS
|
||||
|
||||
/* COL2ROW, ROW2COL*/
|
||||
#define DIODE_DIRECTION ROW2COL
|
||||
|
||||
/* 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
|
||||
|
||||
/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
|
||||
* This is userful 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
|
17
keyboards/keyhive/lattice60/info.json
Normal file
17
keyboards/keyhive/lattice60/info.json
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"keyboard_name": "lattice60",
|
||||
"url": "",
|
||||
"maintainer": "emdarcher",
|
||||
"layouts": {
|
||||
"LAYOUT_all": {
|
||||
"layout": [
|
||||
{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"|", "x":13, "y":0}, {"label":"~", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"Backspace", "x":13.5, "y":1, "w":1.5}, {"label":"Control", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"", "x":14, "y":3}, {"label":"Alt", "x":1.5, "y":4}, {"label":"Win", "x":2.5, "y":4, "w":1.5}, {"x":4, "y":4}, {"x":5, "y":4, "w":2.25}, {"x":7.25, "y":4, "w":2.75}, {"x":10, "y":4}, {"label":"Win", "x":11, "y":4, "w":1.5}, {"label":"Alt", "x":12.5, "y":4}
|
||||
]
|
||||
},
|
||||
"LAYOUT_60_hhkb": {
|
||||
"layout": [
|
||||
{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"|", "x":13, "y":0}, {"label":"~", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"Backspace", "x":13.5, "y":1, "w":1.5}, {"label":"Control", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"", "x":14, "y":3}, {"label":"Alt", "x":1.5, "y":4}, {"label":"Win", "x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":7}, {"label":"Win", "x":11, "y":4, "w":1.5}, {"label":"Alt", "x":12.5, "y":4}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
20
keyboards/keyhive/lattice60/keymaps/default/config.h
Normal file
20
keyboards/keyhive/lattice60/keymaps/default/config.h
Normal file
@@ -0,0 +1,20 @@
|
||||
/* Copyright 2019 Ethan Durrant (emdarcher)
|
||||
*
|
||||
* 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
|
||||
|
||||
// place overrides here
|
||||
#define GRAVE_ESC_ALT_OVERRIDE
|
40
keyboards/keyhive/lattice60/keymaps/default/keymap.c
Normal file
40
keyboards/keyhive/lattice60/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,40 @@
|
||||
/* Copyright 2019 Ethan Durrant (emdarcher)
|
||||
*
|
||||
* 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 */
|
||||
[_BASE] = LAYOUT_all(
|
||||
KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_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_BSPC,
|
||||
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN),
|
||||
KC_LALT, KC_LGUI, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RGUI, KC_RALT
|
||||
),
|
||||
[_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, KC_INS, KC_DEL,
|
||||
KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, KC_TRNS, KC_BSPC,
|
||||
KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_PENT,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
)
|
||||
};
|
5
keyboards/keyhive/lattice60/keymaps/default/readme.md
Normal file
5
keyboards/keyhive/lattice60/keymaps/default/readme.md
Normal file
@@ -0,0 +1,5 @@
|
||||
# The default keymap for lattice60
|
||||
|
||||

|
||||
|
||||
This keymap uses a default HHKB layout, with support for a split spacebar and the addition of GESC on the ESC key.
|
20
keyboards/keyhive/lattice60/keymaps/default_hhkb/config.h
Normal file
20
keyboards/keyhive/lattice60/keymaps/default_hhkb/config.h
Normal file
@@ -0,0 +1,20 @@
|
||||
/* Copyright 2019 Ethan Durrant (emdarcher)
|
||||
*
|
||||
* 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
|
||||
|
||||
// place overrides here
|
||||
#define GRAVE_ESC_ALT_OVERRIDE
|
40
keyboards/keyhive/lattice60/keymaps/default_hhkb/keymap.c
Normal file
40
keyboards/keyhive/lattice60/keymaps/default_hhkb/keymap.c
Normal file
@@ -0,0 +1,40 @@
|
||||
/* Copyright 2019 Ethan Durrant (emdarcher)
|
||||
*
|
||||
* 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 */
|
||||
[_BASE] = LAYOUT_60_hhkb(
|
||||
KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_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_BSPC,
|
||||
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN),
|
||||
KC_LALT, KC_LGUI, /* */ KC_SPC, KC_RGUI, KC_RALT
|
||||
),
|
||||
[_FN] = LAYOUT_60_hhkb(
|
||||
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_INS, KC_DEL,
|
||||
KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, KC_TRNS, KC_BSPC,
|
||||
KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_PENT,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
)
|
||||
};
|
@@ -0,0 +1,5 @@
|
||||
# The default HHKB keymap for lattice60
|
||||
|
||||

|
||||
|
||||
This keymap uses a default HHKB layout, with the addition of GESC on the ESC key.
|
20
keyboards/keyhive/lattice60/keymaps/emdarcher/config.h
Normal file
20
keyboards/keyhive/lattice60/keymaps/emdarcher/config.h
Normal file
@@ -0,0 +1,20 @@
|
||||
/* Copyright 2019 Ethan Durrant (emdarcher)
|
||||
*
|
||||
* 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
|
||||
|
||||
// place overrides here
|
||||
#define GRAVE_ESC_ALT_OVERRIDE
|
48
keyboards/keyhive/lattice60/keymaps/emdarcher/keymap.c
Normal file
48
keyboards/keyhive/lattice60/keymaps/emdarcher/keymap.c
Normal file
@@ -0,0 +1,48 @@
|
||||
/* Copyright 2019 Ethan Durrant (emdarcher)
|
||||
*
|
||||
* 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,
|
||||
_FN0,
|
||||
_FN1
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/* Base */
|
||||
[_BASE] = LAYOUT_60_hhkb(
|
||||
KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_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_BSPC,
|
||||
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN0),
|
||||
KC_LALT, KC_LGUI, /* */ KC_SPC, MO(_FN1), KC_RALT
|
||||
),
|
||||
[_FN0] = LAYOUT_60_hhkb(
|
||||
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_INS, KC_DEL,
|
||||
KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, KC_TRNS, KC_BSPC,
|
||||
KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_PENT,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_VOLD, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
[_FN1] = LAYOUT_60_hhkb(
|
||||
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_INS, KC_DEL,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_BSPC,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MRWD, KC_MFFD, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
)
|
||||
};
|
5
keyboards/keyhive/lattice60/keymaps/emdarcher/readme.md
Normal file
5
keyboards/keyhive/lattice60/keymaps/emdarcher/readme.md
Normal file
@@ -0,0 +1,5 @@
|
||||
# emdarcher's keymap for lattice60
|
||||
|
||||

|
||||
|
||||
Modified function layer from the default HHKB functions, and added an extra layer for media controls.
|
37
keyboards/keyhive/lattice60/lattice60.c
Normal file
37
keyboards/keyhive/lattice60/lattice60.c
Normal file
@@ -0,0 +1,37 @@
|
||||
/* Copyright 2019 Ethan Durrant (emdarcher)
|
||||
*
|
||||
* 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 "lattice60.h"
|
||||
|
||||
#define LED1_PIN C4
|
||||
#define LED2_PIN C5
|
||||
|
||||
void keyboard_pre_init_kb(void){
|
||||
//init the LED pins as outputs
|
||||
setPinOutput(LED1_PIN);
|
||||
setPinOutput(LED2_PIN);
|
||||
//call any user initialization code
|
||||
keyboard_pre_init_user();
|
||||
}
|
||||
|
||||
bool led_update_kb(led_t led_state) {
|
||||
bool res = led_update_user(led_state);
|
||||
if(res){
|
||||
//write the CAPS LOCK state on LED1
|
||||
writePin(LED1_PIN, led_state.caps_lock);
|
||||
}
|
||||
return res;
|
||||
}
|
64
keyboards/keyhive/lattice60/lattice60.h
Normal file
64
keyboards/keyhive/lattice60/lattice60.h
Normal file
@@ -0,0 +1,64 @@
|
||||
/* Copyright 2019 Ethan Durrant (emdarcher)
|
||||
*
|
||||
* 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( \
|
||||
k00, k04, k10, k14, k20, k24, k30, k34, k40, k44, k50, k54, k60, k64, k65, \
|
||||
k01, k05, k11, k15, k21, k25, k31, k35, k41, k45, k51, k55, k61, k66, \
|
||||
k02, k06, k12, k16, k22, k26, k32, k36, k42, k46, k52, k56, k62, \
|
||||
k03, k07, k13, k17, k23, k27, k37, k43, k47, k53, k57, k63, k67, \
|
||||
k70, k71, k72, k33, k74, k75, k76, k77 \
|
||||
) \
|
||||
{ \
|
||||
{ k00, k10, k20, k30, k40, k50, k60, k70 }, \
|
||||
{ k01, k11, k21, k31, k41, k51, k61, k71 }, \
|
||||
{ k02, k12, k22, k32, k42, k52, k62, k72 }, \
|
||||
{ k03, k13, k23, k33, k43, k53, k63, KC_NO }, \
|
||||
{ k04, k14, k24, k34, k44, k54, k64, k74 }, \
|
||||
{ k05, k15, k25, k35, k45, k55, k65, k75 }, \
|
||||
{ k06, k16, k26, k36, k46, k56, k66, k76 }, \
|
||||
{ k07, k17, k27, k37, k47, k57, k67, k77 } \
|
||||
}
|
||||
|
||||
|
||||
#define LAYOUT_60_hhkb( \
|
||||
k00, k04, k10, k14, k20, k24, k30, k34, k40, k44, k50, k54, k60, k64, k65, \
|
||||
k01, k05, k11, k15, k21, k25, k31, k35, k41, k45, k51, k55, k61, k66, \
|
||||
k02, k06, k12, k16, k22, k26, k32, k36, k42, k46, k52, k56, k62, \
|
||||
k03, k07, k13, k17, k23, k27, k37, k43, k47, k53, k57, k63, k67, \
|
||||
k70, k71, k33, k76, k77 \
|
||||
) \
|
||||
{ \
|
||||
{ k00, k10, k20, k30, k40, k50, k60, k70 }, \
|
||||
{ k01, k11, k21, k31, k41, k51, k61, k71 }, \
|
||||
{ k02, k12, k22, k32, k42, k52, k62, KC_NO }, \
|
||||
{ k03, k13, k23, k33, k43, k53, k63, KC_NO }, \
|
||||
{ k04, k14, k24, k34, k44, k54, k64, KC_NO }, \
|
||||
{ k05, k15, k25, k35, k45, k55, k65, KC_NO }, \
|
||||
{ k06, k16, k26, k36, k46, k56, k66, k76 }, \
|
||||
{ k07, k17, k27, k37, k47, k57, k67, k77 } \
|
||||
}
|
21
keyboards/keyhive/lattice60/readme.md
Normal file
21
keyboards/keyhive/lattice60/readme.md
Normal file
@@ -0,0 +1,21 @@
|
||||
# lattice60
|
||||
|
||||

|
||||
|
||||
A HHKB layout keyboard using only through-hole components.
|
||||
|
||||
* Keyboard Maintainer: [emdarcher](https://github.com/emdarcher)
|
||||
* Hardware Supported: LATTICE60 PCB
|
||||
* Hardware Availability: [KeyHive](https://keyhive.xyz/)
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make keyhive/lattice60:default
|
||||
|
||||
To activate the USBasploader bootloader, hold the BOOT button down during power on or reset. LED2 should light up to indicate that the bootloader is active.
|
||||
|
||||
Flash the firmware using the `make` command with the `flash` parameter, example below:
|
||||
|
||||
make keyhive/lattice60: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).
|
23
keyboards/keyhive/lattice60/rules.mk
Normal file
23
keyboards/keyhive/lattice60/rules.mk
Normal file
@@ -0,0 +1,23 @@
|
||||
# MCU name
|
||||
MCU = atmega328p
|
||||
|
||||
# Bootloader selection
|
||||
BOOTLOADER = usbasploader
|
||||
|
||||
# Processor frequency
|
||||
F_CPU = 12000000
|
||||
|
||||
# Build Options
|
||||
# change yes to no to disable
|
||||
#
|
||||
BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
|
||||
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
|
||||
NKRO_ENABLE = no # Enable N-Key Rollover
|
||||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
||||
AUDIO_ENABLE = no # Audio output
|
||||
|
||||
LAYOUTS = 60_hhkb
|
0
keyboards/keyhive/navi10/.noci
Normal file
0
keyboards/keyhive/navi10/.noci
Normal file
10
keyboards/keyhive/navi10/info.json
Normal file
10
keyboards/keyhive/navi10/info.json
Normal file
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"keyboard_name": "Navi10",
|
||||
"url": "",
|
||||
"maintainer": "emdarcher",
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [{"label":"Fn", "x":0, "y":0}, {"label":"Home", "x":1, "y":0}, {"label":"PgUp", "x":2, "y":0}, {"label":"Del", "x":0, "y":1}, {"label":"End", "x":1, "y":1}, {"label":"PgDn", "x":2, "y":1}, {"label":"Up", "x":1, "y":3}, {"label":"Left", "x":0, "y":4}, {"label":"Down", "x":1, "y":4}, {"label":"Right", "x":2, "y":4}]
|
||||
}
|
||||
}
|
||||
}
|
131
keyboards/keyhive/navi10/keymaps/default/keymap.c
Normal file
131
keyboards/keyhive/navi10/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,131 @@
|
||||
/* Copyright 2019 Ethan Durrant (emdarcher)
|
||||
*
|
||||
* 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
|
||||
|
||||
//create the tap type
|
||||
typedef struct {
|
||||
bool is_press_action;
|
||||
int state;
|
||||
} tap;
|
||||
|
||||
//tap dance states
|
||||
enum {
|
||||
SINGLE_TAP = 1,
|
||||
SINGLE_HOLD = 2,
|
||||
};
|
||||
|
||||
//tap dance keys
|
||||
enum {
|
||||
TAPPY_KEY = 0
|
||||
};
|
||||
|
||||
//function to handle all the tap dances
|
||||
int cur_dance(qk_tap_dance_state_t *state);
|
||||
|
||||
//functions for each tap dance
|
||||
void tk_finished(qk_tap_dance_state_t *state, void *user_data);
|
||||
void tk_reset(qk_tap_dance_state_t *state, void *user_data);
|
||||
|
||||
#define INDICATOR_LED B5
|
||||
|
||||
#define _FN0 1
|
||||
#define _ML1 2
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = LAYOUT(/* Base */
|
||||
TD(TAPPY_KEY),KC_HOME, KC_PGUP,
|
||||
KC_DEL, KC_END, KC_PGDN,
|
||||
|
||||
KC_UP,
|
||||
KC_LEFT, KC_DOWN, KC_RIGHT),
|
||||
[_FN0] = LAYOUT(/* function layer */
|
||||
KC_TRNS, KC_PAUS, KC_VOLU,
|
||||
KC_ENTER, KC_SLCK, KC_VOLD,
|
||||
|
||||
KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS),
|
||||
[_ML1] = LAYOUT(/* media function layer, toggled on a single tap */
|
||||
KC_TRNS, KC_TRNS, KC_VOLU,
|
||||
KC_MUTE, KC_TRNS, KC_VOLD,
|
||||
|
||||
KC_SPC,
|
||||
KC_MRWD, KC_MPLY, KC_MFFD),
|
||||
};
|
||||
|
||||
//determine the current tap dance state
|
||||
int cur_dance (qk_tap_dance_state_t *state){
|
||||
if(state->count == 1){
|
||||
//if a tap was registered
|
||||
if(!state->pressed){
|
||||
//if not still pressed, then was a single tap
|
||||
return SINGLE_TAP;
|
||||
} else {
|
||||
//if still pressed/held down, then it's a single hold
|
||||
return SINGLE_HOLD;
|
||||
}
|
||||
} else {
|
||||
return 8;
|
||||
}
|
||||
}
|
||||
|
||||
//initialize the tap structure for the tap key
|
||||
static tap tk_tap_state = {
|
||||
.is_press_action = true,
|
||||
.state = 0
|
||||
};
|
||||
|
||||
//functions that control what our tap dance key does
|
||||
void tk_finished(qk_tap_dance_state_t *state, void *user_data){
|
||||
tk_tap_state.state = cur_dance(state);
|
||||
switch(tk_tap_state.state){
|
||||
case SINGLE_TAP:
|
||||
//send desired key when tapped:
|
||||
//setting to the media layer
|
||||
if(layer_state_is(_ML1)){
|
||||
//if already active, toggle it to off
|
||||
layer_off(_ML1);
|
||||
//turn off the indicator LED
|
||||
//set LED HI to turn it off
|
||||
writePinHigh(INDICATOR_LED);
|
||||
} else {
|
||||
//turn on the media layer
|
||||
layer_on(_ML1);
|
||||
//turn on the indicator LED
|
||||
//set LED pin to LOW to turn it on
|
||||
writePinLow(INDICATOR_LED);
|
||||
}
|
||||
break;
|
||||
case SINGLE_HOLD:
|
||||
//set to desired layer when held:
|
||||
//setting to the function layer
|
||||
layer_on(_FN0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void tk_reset(qk_tap_dance_state_t *state, void *user_data){
|
||||
//if held and released, leave the layer
|
||||
if(tk_tap_state.state == SINGLE_HOLD){
|
||||
layer_off(_FN0);
|
||||
}
|
||||
//reset the state
|
||||
tk_tap_state.state = 0;
|
||||
}
|
||||
|
||||
//associate the tap dance key with its functionality
|
||||
qk_tap_dance_action_t tap_dance_actions[] = {
|
||||
[TAPPY_KEY] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(NULL, tk_finished, tk_reset, 275)
|
||||
};
|
11
keyboards/keyhive/navi10/keymaps/default/readme.md
Normal file
11
keyboards/keyhive/navi10/keymaps/default/readme.md
Normal file
@@ -0,0 +1,11 @@
|
||||
# The default keymap for the Navi10
|
||||
|
||||
This keymap keeps a basic Navigation Cluster layout, but utilizes the Insert key as a FN/Tap key to access 2 layers.
|
||||
|
||||
- Base Layer:
|
||||
* Navigation Cluster (sans Insert Key)
|
||||
- Hold Insert -> Function Layer:
|
||||
* Maps Volume Control on PgUp/PgDN, Pause/Scroll-Lock on Home/End (MacOS brightness), and Delete to Enter.
|
||||
- Tap Insert Once -> Media Layer (Tap again to leave):
|
||||
* Has mappings for Audio control on MacOS using the arrow keys, PgUp/PgDn, and Delete.
|
||||
* Lights up the Central 3mm indicator LED.
|
1
keyboards/keyhive/navi10/keymaps/default/rules.mk
Normal file
1
keyboards/keyhive/navi10/keymaps/default/rules.mk
Normal file
@@ -0,0 +1 @@
|
||||
TAP_DANCE_ENABLE = yes
|
35
keyboards/keyhive/navi10/keymaps/devdev/config.h
Normal file
35
keyboards/keyhive/navi10/keymaps/devdev/config.h
Normal file
@@ -0,0 +1,35 @@
|
||||
/*
|
||||
Copyright 2019 Ethan Durrant (emdarcher)
|
||||
|
||||
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
|
||||
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
|
||||
#undef DEBOUNCE
|
||||
#define DEBOUNCE 1
|
||||
|
||||
#define TAPPING_TERM 220
|
||||
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
#define RGB_DI_PIN D3
|
||||
#define RGBLED_NUM 3
|
||||
|
||||
#define RGBLIGHT_LIMIT_VAL 120
|
||||
#define RGBLIGHT_HUE_STEP 10
|
||||
#define RGBLIGHT_SAT_STEP 17
|
||||
#define RGBLIGHT_VAL_STEP 17
|
||||
|
||||
|
||||
#endif
|
263
keyboards/keyhive/navi10/keymaps/devdev/keymap.c
Normal file
263
keyboards/keyhive/navi10/keymaps/devdev/keymap.c
Normal file
@@ -0,0 +1,263 @@
|
||||
/* Copyright 2019 Ethan Durrant (emdarcher)
|
||||
*
|
||||
* 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/>.
|
||||
*/
|
||||
|
||||
// NAVI 10
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
#define INDICATOR_LED B5
|
||||
|
||||
|
||||
#define _ML1 2
|
||||
#define _FN2 3
|
||||
#define _PR3 4
|
||||
#define _GI4 4
|
||||
|
||||
|
||||
#define HS_RED 0,255
|
||||
#define HS_WHITE 0, 0
|
||||
#define HS_ORANGE 28, 255
|
||||
#define HS_GREEN 85, 255
|
||||
#define HS_TURQUOISE 123, 90
|
||||
#define HS_CYAN 128, 255
|
||||
#define HS_AZURE 132, 102
|
||||
#define HS_BLUE 170, 255
|
||||
#define HS_PURPLE 191, 255
|
||||
#define HS_MAGENTA 213, 255
|
||||
|
||||
|
||||
//create the tap type
|
||||
typedef struct {
|
||||
bool is_press_action;
|
||||
int state;
|
||||
} tap;
|
||||
|
||||
//tap dance states
|
||||
enum {
|
||||
// uses https://beta.docs.qmk.fm/using-qmk/software-features/feature_tap_dance
|
||||
SINGLE_TAP = 1,
|
||||
SINGLE_HOLD = 2,
|
||||
DOUBLE_TAP = 3,
|
||||
TRIPLE_TAP = 4,
|
||||
};
|
||||
|
||||
//tap dance keys
|
||||
enum {
|
||||
TAPPY_KEY = 0
|
||||
};
|
||||
|
||||
enum custom_keycodes { // git macros
|
||||
M_G_HERE = SAFE_RANGE,
|
||||
M_G_PUSH,
|
||||
M_G_PULL,
|
||||
M_G_ADD,
|
||||
M_G_COMM
|
||||
};
|
||||
|
||||
//function to handle all the tap dances
|
||||
int cur_dance(qk_tap_dance_state_t *state);
|
||||
|
||||
//functions for each tap dance
|
||||
void tk_finished(qk_tap_dance_state_t *state, void *user_data);
|
||||
void tk_reset(qk_tap_dance_state_t *state, void *user_data);
|
||||
|
||||
// define the macros in here
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
switch (keycode) {
|
||||
// open git bash here
|
||||
case M_G_HERE:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING(SS_TAP(X_APP)"s");
|
||||
} else {
|
||||
// when keycode M_G_HERE is released
|
||||
}
|
||||
break;
|
||||
|
||||
//git push
|
||||
case M_G_PUSH:
|
||||
if (record->event.pressed) {
|
||||
// when keycode M_G_PUSH is pressed
|
||||
SEND_STRING("git push"SS_TAP(X_ENTER));
|
||||
} else {
|
||||
// when keycode M_G_PUSH is released
|
||||
}
|
||||
break;
|
||||
|
||||
// git pull
|
||||
case M_G_PULL:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING("git pull"SS_TAP(X_ENTER));
|
||||
}
|
||||
break;
|
||||
|
||||
// git add
|
||||
case M_G_ADD:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING("git add ");
|
||||
}
|
||||
break;
|
||||
|
||||
// git commit
|
||||
case M_G_COMM: // git commit
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING("git commit -m ' ");
|
||||
}
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
};
|
||||
|
||||
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
// Base
|
||||
[0] = LAYOUT(
|
||||
TD(TAPPY_KEY),KC_HOME, KC_PGUP,
|
||||
KC_DEL, KC_END, KC_PGDN,
|
||||
|
||||
KC_UP,
|
||||
KC_LEFT, KC_DOWN, KC_RIGHT),
|
||||
|
||||
// media function layer, toggled on a single tap
|
||||
[_ML1] = LAYOUT(
|
||||
KC_TRNS, KC_BSPC, KC_VOLU,
|
||||
KC_MUTE, KC_ENTER, KC_VOLD,
|
||||
|
||||
KC_SPC,
|
||||
KC_MRWD, KC_MPLY, KC_MFFD),
|
||||
|
||||
// F keys, double tap to get here
|
||||
[_FN2] = LAYOUT(
|
||||
TO(0), KC_F3, KC_F5,
|
||||
KC_F2, KC_F4, KC_F6,
|
||||
|
||||
KC_F7,
|
||||
KC_F9, KC_F8, KC_F10),
|
||||
|
||||
// programming, triple tap to get here
|
||||
[_PR3] = LAYOUT(
|
||||
TO(0), A(KC_F7), S(KC_F10), //atmel, segger, pycharm
|
||||
KC_F2, KC_F4, S(KC_F9),
|
||||
|
||||
KC_UP,
|
||||
KC_LEFT, KC_DOWN, KC_RIGHT),
|
||||
|
||||
// git function layer, hold to get here
|
||||
[_GI4] = LAYOUT(
|
||||
KC_TRNS, M_G_PUSH, M_G_ADD,
|
||||
M_G_HERE, M_G_PULL, M_G_COMM,
|
||||
|
||||
RGB_VAI,
|
||||
RGB_TOG, RGB_VAD, RGB_MOD),
|
||||
|
||||
|
||||
|
||||
};
|
||||
|
||||
//determine the current tap dance state
|
||||
int cur_dance (qk_tap_dance_state_t *state){
|
||||
if(state->count == 1)
|
||||
{
|
||||
//if a tap was registered
|
||||
if(!state->pressed)
|
||||
{
|
||||
//if not still pressed, then was a single tap
|
||||
return SINGLE_TAP;
|
||||
} else
|
||||
{
|
||||
//if still pressed/held down, then it's a single hold
|
||||
return SINGLE_HOLD;
|
||||
}
|
||||
}
|
||||
else if (state->count == 2)
|
||||
{
|
||||
return DOUBLE_TAP;
|
||||
}
|
||||
|
||||
else if (state->count == 3)
|
||||
{
|
||||
return TRIPLE_TAP;
|
||||
}
|
||||
else
|
||||
{
|
||||
return 8;
|
||||
}
|
||||
}
|
||||
|
||||
//initialize the tap structure for the tap key
|
||||
static tap tk_tap_state = {
|
||||
.is_press_action = true,
|
||||
.state = 0
|
||||
};
|
||||
|
||||
//functions that control what our tap dance key does
|
||||
void tk_finished(qk_tap_dance_state_t *state, void *user_data){
|
||||
tk_tap_state.state = cur_dance(state);
|
||||
uint8_t val = rgblight_get_val();
|
||||
switch(tk_tap_state.state){
|
||||
case SINGLE_TAP:
|
||||
//send desired key when tapped:
|
||||
//setting to the media layer
|
||||
if(layer_state_is(_ML1)){
|
||||
//if already active, toggle it to off
|
||||
layer_off(_ML1);
|
||||
rgblight_sethsv(HS_PURPLE, val);
|
||||
} else {
|
||||
//turn on the media layer
|
||||
layer_on(_ML1);
|
||||
rgblight_sethsv_at(HS_RED, 0, 0);
|
||||
rgblight_sethsv_at(HS_GREEN, 0, 1);
|
||||
rgblight_sethsv_at(HS_BLUE, val, 2);
|
||||
}
|
||||
break;
|
||||
|
||||
case DOUBLE_TAP:
|
||||
layer_on(_FN2);
|
||||
rgblight_sethsv_at(HS_RED, 0, 0);
|
||||
rgblight_sethsv_at(HS_GREEN, val, 1);
|
||||
rgblight_sethsv_at(HS_BLUE, 0, 2);
|
||||
break;
|
||||
case TRIPLE_TAP:
|
||||
layer_on(_PR3);
|
||||
rgblight_sethsv_at(HS_RED, 0, 0);
|
||||
rgblight_sethsv_at(HS_GREEN, val, 1);
|
||||
rgblight_sethsv_at(HS_BLUE, val, 2);
|
||||
break;
|
||||
case SINGLE_HOLD:
|
||||
//set to desired layer when held:
|
||||
//setting to the function layer
|
||||
layer_on(_GI4);
|
||||
rgblight_sethsv_at(HS_RED, val, 0);
|
||||
rgblight_sethsv_at(HS_GREEN, val, 1);
|
||||
rgblight_sethsv_at(HS_BLUE, val, 2);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void tk_reset(qk_tap_dance_state_t *state, void *user_data){
|
||||
//if held and released, leave the layer
|
||||
if(tk_tap_state.state == SINGLE_HOLD){
|
||||
layer_off(_GI4);
|
||||
uint8_t val = rgblight_get_val();
|
||||
rgblight_sethsv(HS_PURPLE, val);
|
||||
}
|
||||
//reset the state
|
||||
tk_tap_state.state = 0;
|
||||
}
|
||||
|
||||
//associate the tap dance key with its functionality
|
||||
qk_tap_dance_action_t tap_dance_actions[] = {
|
||||
[TAPPY_KEY] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(NULL, tk_finished, tk_reset, TAPPING_TERM)
|
||||
};
|
2
keyboards/keyhive/navi10/keymaps/devdev/rules.mk
Normal file
2
keyboards/keyhive/navi10/keymaps/devdev/rules.mk
Normal file
@@ -0,0 +1,2 @@
|
||||
RGBLIGHT_ENABLE = yes
|
||||
TAP_DANCE_ENABLE = yes
|
182
keyboards/keyhive/navi10/keymaps/emdarcher/keymap.c
Normal file
182
keyboards/keyhive/navi10/keymaps/emdarcher/keymap.c
Normal file
@@ -0,0 +1,182 @@
|
||||
/* Copyright 2019 Ethan Durrant (emdarcher)
|
||||
*
|
||||
* 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
|
||||
|
||||
typedef struct {
|
||||
bool is_press_action;
|
||||
int state;
|
||||
} tap;
|
||||
|
||||
//tap dance states
|
||||
enum {
|
||||
SINGLE_TAP = 1,
|
||||
SINGLE_HOLD = 2,
|
||||
DOUBLE_TAP = 3,
|
||||
TRIPLE_TAP = 4
|
||||
};
|
||||
|
||||
//tap dance keys
|
||||
enum {
|
||||
TAPPY_KEY = 0
|
||||
};
|
||||
|
||||
//function to handle all the tap dances
|
||||
int cur_dance(qk_tap_dance_state_t *state);
|
||||
|
||||
//functions for each tap dance
|
||||
void tk_finished(qk_tap_dance_state_t *state, void *user_data);
|
||||
void tk_reset(qk_tap_dance_state_t *state, void *user_data);
|
||||
|
||||
#define INDICATOR_LED B5
|
||||
#define TX_LED D5
|
||||
#define RX_LED B0
|
||||
|
||||
#define _FN0 1
|
||||
#define _ML1 2
|
||||
#define _CL0 3
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = LAYOUT(/* Base */
|
||||
TD(TAPPY_KEY),KC_HOME, KC_PGUP,
|
||||
KC_DEL, KC_END, KC_PGDN,
|
||||
|
||||
KC_UP,
|
||||
KC_LEFT, KC_DOWN, KC_RIGHT),
|
||||
[_FN0] = LAYOUT(/* function layer */
|
||||
KC_TRNS, KC_PAUS, KC_VOLU,
|
||||
KC_ENTER, KC_SLCK, KC_VOLD,
|
||||
|
||||
KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS),
|
||||
[_ML1] = LAYOUT(/* media function layer on double tap */
|
||||
KC_TRNS, KC_TRNS, KC_VOLU,
|
||||
KC_MUTE, KC_TRNS, KC_VOLD,
|
||||
|
||||
KC_SPC,
|
||||
KC_MRWD, KC_MPLY, KC_MFFD),
|
||||
[_CL0] = LAYOUT(/* control layer on single tap */
|
||||
KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
|
||||
LCTL(KC_UP),
|
||||
LCTL(KC_LEFT), LCTL(KC_DOWN), LCTL(KC_RIGHT) ),
|
||||
};
|
||||
|
||||
void matrix_init_user(void) {
|
||||
//init the Pro Micro on-board LEDs
|
||||
setPinOutput(TX_LED);
|
||||
setPinOutput(RX_LED);
|
||||
//set to off
|
||||
writePinHigh(TX_LED);
|
||||
writePinHigh(RX_LED);
|
||||
}
|
||||
|
||||
//determine the current tap dance state
|
||||
int cur_dance (qk_tap_dance_state_t *state){
|
||||
if(state->count == 1){
|
||||
//if a tap was registered
|
||||
if(!state->pressed){
|
||||
//if not still pressed, then was a single tap
|
||||
return SINGLE_TAP;
|
||||
} else {
|
||||
//if still pressed/held down, then it's a single hold
|
||||
return SINGLE_HOLD;
|
||||
}
|
||||
} else if(state->count == 2){
|
||||
//if tapped twice, set to double tap
|
||||
return DOUBLE_TAP;
|
||||
} else if(state->count == 3){
|
||||
//if tapped thrice, set to triple tap
|
||||
return TRIPLE_TAP;
|
||||
} else {
|
||||
return 8;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//initialize the tap structure for the tap key
|
||||
static tap tk_tap_state = {
|
||||
.is_press_action = true,
|
||||
.state = 0
|
||||
};
|
||||
|
||||
//functions that control what our tap dance key does
|
||||
void tk_finished(qk_tap_dance_state_t *state, void *user_data){
|
||||
tk_tap_state.state = cur_dance(state);
|
||||
switch(tk_tap_state.state){
|
||||
case SINGLE_TAP:
|
||||
//toggle desired layer when tapped:
|
||||
if(layer_state_is(_CL0)){
|
||||
//if already active, toggle it to off
|
||||
layer_off(_CL0);
|
||||
//turn off LEDs
|
||||
writePinHigh(TX_LED);
|
||||
writePinHigh(RX_LED);
|
||||
} else {
|
||||
//turn on the command layer
|
||||
layer_on(_CL0);
|
||||
//turn on the LEDs
|
||||
writePinLow(TX_LED);
|
||||
writePinLow(RX_LED);
|
||||
}
|
||||
break;
|
||||
case SINGLE_HOLD:
|
||||
//set to desired layer when held:
|
||||
//setting to the function layer
|
||||
layer_on(_FN0);
|
||||
break;
|
||||
case DOUBLE_TAP:
|
||||
//set to desired layer when double tapped:
|
||||
//setting to the media layer
|
||||
if(layer_state_is(_ML1)){
|
||||
//if already active, toggle it to off
|
||||
layer_off(_ML1);
|
||||
//turn off the indicator LED
|
||||
//set LED HI to turn it off
|
||||
writePinHigh(INDICATOR_LED);
|
||||
} else {
|
||||
//turn on the media layer
|
||||
layer_on(_ML1);
|
||||
//turn on the indicator LED
|
||||
//set LED pin to LOW to turn it on
|
||||
writePinLow(INDICATOR_LED);
|
||||
}
|
||||
break;
|
||||
case TRIPLE_TAP:
|
||||
//reset all layers
|
||||
layer_clear();
|
||||
//set all LEDs off
|
||||
writePinHigh(TX_LED);
|
||||
writePinHigh(RX_LED);
|
||||
writePinHigh(INDICATOR_LED);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void tk_reset(qk_tap_dance_state_t *state, void *user_data){
|
||||
//if held and released, leave the layer
|
||||
if(tk_tap_state.state == SINGLE_HOLD){
|
||||
layer_off(_FN0);
|
||||
}
|
||||
//reset the state
|
||||
tk_tap_state.state = 0;
|
||||
}
|
||||
|
||||
|
||||
//associate the tap dance key with its functionality
|
||||
qk_tap_dance_action_t tap_dance_actions[] = {
|
||||
[TAPPY_KEY] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(NULL, tk_finished, tk_reset, 275)
|
||||
};
|
16
keyboards/keyhive/navi10/keymaps/emdarcher/readme.md
Normal file
16
keyboards/keyhive/navi10/keymaps/emdarcher/readme.md
Normal file
@@ -0,0 +1,16 @@
|
||||
# emdarcher's keymap for the Navi10
|
||||
|
||||
This is my personal keymap for the Navi10, developed for the original Rev0 prototype. It uses Tap Dance extensively on the INSERT key to access different layers.
|
||||
|
||||
- Base Layer:
|
||||
* Regular Navigation Cluster except for the INSERT key which is for tapping.
|
||||
- Hold Insert -> Function Layer:
|
||||
* Maps Volume Control on PgUp/PgDN, Pause/Scroll-Lock on Home/End (MacOS brightness), and Delete to Enter.
|
||||
- 2 Taps -> Media Layer:
|
||||
* Has mappings for Audio control on MacOS using the arrow keys, PgUp/PgDn, and Delete.
|
||||
* Lights up the Central 3mm indicator LED.
|
||||
- 1 Tap -> Control Layer:
|
||||
* Binds the arrow keys as LCTRL + Arrow Key for use in changing workspaces in MacOS.
|
||||
* Lights the Pro Micro TX/RX LEDs. These are visible through the board if you use clear PCB mount switch bases.
|
||||
|
||||
|
1
keyboards/keyhive/navi10/keymaps/emdarcher/rules.mk
Normal file
1
keyboards/keyhive/navi10/keymaps/emdarcher/rules.mk
Normal file
@@ -0,0 +1 @@
|
||||
TAP_DANCE_ENABLE = yes
|
19
keyboards/keyhive/navi10/readme.md
Normal file
19
keyboards/keyhive/navi10/readme.md
Normal file
@@ -0,0 +1,19 @@
|
||||
# Navi10 / ナビ10
|
||||
|
||||

|
||||
|
||||
A simple and fun navigation cluster macropad with exposed components.
|
||||
|
||||
* Keyboard Maintainer: [emdarcher](https://github.com/emdarcher)
|
||||
* Hardware Supported: Navi10
|
||||
* Hardware Availability: [KeyHive](https://www.keyhive.xyz/)
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make keyhive/navi10:default
|
||||
|
||||
Make example for a specific revision (ex. rev2):
|
||||
|
||||
make keyhive/navi10/rev2: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).
|
0
keyboards/keyhive/navi10/rev0/.noci
Normal file
0
keyboards/keyhive/navi10/rev0/.noci
Normal file
50
keyboards/keyhive/navi10/rev0/config.h
Normal file
50
keyboards/keyhive/navi10/rev0/config.h
Normal file
@@ -0,0 +1,50 @@
|
||||
/*
|
||||
Copyright 2019 Ethan Durrant (emdarcher)
|
||||
|
||||
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 0xFEED
|
||||
#define PRODUCT_ID 0x0000
|
||||
#define DEVICE_VER 0x0001
|
||||
#define MANUFACTURER emdarcher
|
||||
#define PRODUCT Navi10
|
||||
|
||||
/* key matrix size */
|
||||
#define MATRIX_ROWS 4
|
||||
#define MATRIX_COLS 3
|
||||
|
||||
/* Keyboard Matrix Assignments */
|
||||
#define MATRIX_ROW_PINS \
|
||||
{ B6, B2, B3, B4 }
|
||||
#define MATRIX_COL_PINS \
|
||||
{ D1, D0, F6 }
|
||||
#define UNUSED_PINS
|
||||
|
||||
/* COL2ROW, ROW2COL*/
|
||||
#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
|
||||
|
30
keyboards/keyhive/navi10/rev0/rev0.c
Normal file
30
keyboards/keyhive/navi10/rev0/rev0.c
Normal file
@@ -0,0 +1,30 @@
|
||||
/* Copyright 2019 Ethan Durrant (emdarcher)
|
||||
*
|
||||
* 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 "rev0.h"
|
||||
|
||||
void matrix_init_kb(void) {
|
||||
// put your keyboard start-up code here
|
||||
// runs once when the firmware starts up
|
||||
|
||||
//set the indicator LED pin to Output
|
||||
setPinOutput(B5);
|
||||
//set HIGH for off.
|
||||
writePinHigh(B5);
|
||||
|
||||
//call any user functions
|
||||
matrix_init_user();
|
||||
}
|
||||
|
34
keyboards/keyhive/navi10/rev0/rev0.h
Normal file
34
keyboards/keyhive/navi10/rev0/rev0.h
Normal file
@@ -0,0 +1,34 @@
|
||||
/* Copyright 2019 Ethan Durrant (emdarcher)
|
||||
*
|
||||
* 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( \
|
||||
k0, k1, k2, \
|
||||
k3, k4, k5, \
|
||||
\
|
||||
k6, \
|
||||
k7, k8, k9 \
|
||||
) \
|
||||
{ \
|
||||
{k0, k1, k2}, \
|
||||
{k3, k4, k5}, \
|
||||
{KC_NO, k6, KC_NO}, \
|
||||
{k7, k8, k9}, \
|
||||
}
|
||||
|
||||
|
18
keyboards/keyhive/navi10/rev0/rules.mk
Normal file
18
keyboards/keyhive/navi10/rev0/rules.mk
Normal file
@@ -0,0 +1,18 @@
|
||||
# MCU name
|
||||
MCU = atmega32u4
|
||||
|
||||
# Bootloader selection
|
||||
BOOTLOADER = caterina
|
||||
|
||||
# Build Options
|
||||
# change yes to no to disable
|
||||
#
|
||||
BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
|
||||
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
|
||||
NKRO_ENABLE = no # Enable N-Key Rollover
|
||||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
||||
AUDIO_ENABLE = no # Audio output
|
0
keyboards/keyhive/navi10/rev2/.noci
Normal file
0
keyboards/keyhive/navi10/rev2/.noci
Normal file
50
keyboards/keyhive/navi10/rev2/config.h
Normal file
50
keyboards/keyhive/navi10/rev2/config.h
Normal file
@@ -0,0 +1,50 @@
|
||||
/*
|
||||
Copyright 2019 Ethan Durrant (emdarcher)
|
||||
|
||||
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 0xFEED
|
||||
#define PRODUCT_ID 0x0000
|
||||
#define DEVICE_VER 0x0002
|
||||
#define MANUFACTURER emdarcher
|
||||
#define PRODUCT Navi10
|
||||
|
||||
/* key matrix size */
|
||||
#define MATRIX_ROWS 4
|
||||
#define MATRIX_COLS 3
|
||||
|
||||
/* Keyboard Matrix Assignments */
|
||||
#define MATRIX_ROW_PINS \
|
||||
{ B6, B2, B3, B4 }
|
||||
#define MATRIX_COL_PINS \
|
||||
{ D4, C6, B1 }
|
||||
#define UNUSED_PINS
|
||||
|
||||
/* COL2ROW, ROW2COL*/
|
||||
#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
|
||||
|
30
keyboards/keyhive/navi10/rev2/rev2.c
Normal file
30
keyboards/keyhive/navi10/rev2/rev2.c
Normal file
@@ -0,0 +1,30 @@
|
||||
/* Copyright 2019 Ethan Durrant (emdarcher)
|
||||
*
|
||||
* 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 "rev2.h"
|
||||
|
||||
void matrix_init_kb(void) {
|
||||
// put your keyboard start-up code here
|
||||
// runs once when the firmware starts up
|
||||
|
||||
//set the indicator LED pin to Output
|
||||
setPinOutput(B5);
|
||||
//set HIGH for off.
|
||||
writePinHigh(B5);
|
||||
|
||||
//call any user functions
|
||||
matrix_init_user();
|
||||
}
|
||||
|
34
keyboards/keyhive/navi10/rev2/rev2.h
Normal file
34
keyboards/keyhive/navi10/rev2/rev2.h
Normal file
@@ -0,0 +1,34 @@
|
||||
/* Copyright 2019 Ethan Durrant (emdarcher)
|
||||
*
|
||||
* 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( \
|
||||
k0, k1, k2, \
|
||||
k3, k4, k5, \
|
||||
\
|
||||
k6, \
|
||||
k7, k8, k9 \
|
||||
) \
|
||||
{ \
|
||||
{k0, k1, k2}, \
|
||||
{k3, k4, k5}, \
|
||||
{KC_NO, k6, KC_NO}, \
|
||||
{k7, k8, k9}, \
|
||||
}
|
||||
|
||||
|
18
keyboards/keyhive/navi10/rev2/rules.mk
Normal file
18
keyboards/keyhive/navi10/rev2/rules.mk
Normal file
@@ -0,0 +1,18 @@
|
||||
# MCU name
|
||||
MCU = atmega32u4
|
||||
|
||||
# Bootloader selection
|
||||
BOOTLOADER = caterina
|
||||
|
||||
# Build Options
|
||||
# change yes to no to disable
|
||||
#
|
||||
BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
|
||||
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
|
||||
NKRO_ENABLE = no # Enable N-Key Rollover
|
||||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
||||
AUDIO_ENABLE = no # Audio output
|
50
keyboards/keyhive/navi10/rev3/config.h
Normal file
50
keyboards/keyhive/navi10/rev3/config.h
Normal file
@@ -0,0 +1,50 @@
|
||||
/*
|
||||
Copyright 2019 Ethan Durrant (emdarcher)
|
||||
|
||||
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 0xFEED
|
||||
#define PRODUCT_ID 0x0000
|
||||
#define DEVICE_VER 0x0003
|
||||
#define MANUFACTURER emdarcher
|
||||
#define PRODUCT Navi10
|
||||
|
||||
/* key matrix size */
|
||||
#define MATRIX_ROWS 4
|
||||
#define MATRIX_COLS 3
|
||||
|
||||
/* Keyboard Matrix Assignments */
|
||||
#define MATRIX_ROW_PINS \
|
||||
{ B6, B2, B3, B4 }
|
||||
#define MATRIX_COL_PINS \
|
||||
{ D4, E6, B1 }
|
||||
#define UNUSED_PINS
|
||||
|
||||
/* COL2ROW, ROW2COL*/
|
||||
#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
|
||||
|
30
keyboards/keyhive/navi10/rev3/rev3.c
Normal file
30
keyboards/keyhive/navi10/rev3/rev3.c
Normal file
@@ -0,0 +1,30 @@
|
||||
/* Copyright 2019 Ethan Durrant (emdarcher)
|
||||
*
|
||||
* 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 "rev3.h"
|
||||
|
||||
void matrix_init_kb(void) {
|
||||
// put your keyboard start-up code here
|
||||
// runs once when the firmware starts up
|
||||
|
||||
//set the indicator LED pin to Output
|
||||
setPinOutput(B5);
|
||||
//set HIGH for off.
|
||||
writePinHigh(B5);
|
||||
|
||||
//call any user functions
|
||||
matrix_init_user();
|
||||
}
|
||||
|
34
keyboards/keyhive/navi10/rev3/rev3.h
Normal file
34
keyboards/keyhive/navi10/rev3/rev3.h
Normal file
@@ -0,0 +1,34 @@
|
||||
/* Copyright 2019 Ethan Durrant (emdarcher)
|
||||
*
|
||||
* 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( \
|
||||
k0, k1, k2, \
|
||||
k3, k4, k5, \
|
||||
\
|
||||
k6, \
|
||||
k7, k8, k9 \
|
||||
) \
|
||||
{ \
|
||||
{k0, k1, k2}, \
|
||||
{k3, k4, k5}, \
|
||||
{KC_NO, k6, KC_NO}, \
|
||||
{k7, k8, k9}, \
|
||||
}
|
||||
|
||||
|
18
keyboards/keyhive/navi10/rev3/rules.mk
Normal file
18
keyboards/keyhive/navi10/rev3/rules.mk
Normal file
@@ -0,0 +1,18 @@
|
||||
# MCU name
|
||||
MCU = atmega32u4
|
||||
|
||||
# Bootloader selection
|
||||
BOOTLOADER = caterina
|
||||
|
||||
# Build Options
|
||||
# change yes to no to disable
|
||||
#
|
||||
BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
|
||||
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
|
||||
NKRO_ENABLE = no # Enable N-Key Rollover
|
||||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
||||
AUDIO_ENABLE = no # Audio output
|
1
keyboards/keyhive/navi10/rules.mk
Normal file
1
keyboards/keyhive/navi10/rules.mk
Normal file
@@ -0,0 +1 @@
|
||||
DEFAULT_FOLDER = keyhive/navi10/rev3
|
45
keyboards/keyhive/opus/config.h
Normal file
45
keyboards/keyhive/opus/config.h
Normal file
@@ -0,0 +1,45 @@
|
||||
/* Copyright 2020 rtwayland
|
||||
*
|
||||
* 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 0x434B
|
||||
#define PRODUCT_ID 0x4F50
|
||||
#define DEVICE_VER 0x0001
|
||||
#define MANUFACTURER rtwayland
|
||||
#define PRODUCT Opus
|
||||
|
||||
/* key matrix size */
|
||||
#define MATRIX_ROWS 4
|
||||
#define MATRIX_COLS 12
|
||||
|
||||
/* PCB pin-out */
|
||||
#define MATRIX_ROW_PINS {B1, B3, B2, B6}
|
||||
#define MATRIX_COL_PINS {D1, D0, D4, C6, D7, E6, B4, B5, F4, F5, F6, F7}
|
||||
#define UNUSED_PINS
|
||||
|
||||
#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
|
59
keyboards/keyhive/opus/info.json
Normal file
59
keyboards/keyhive/opus/info.json
Normal file
@@ -0,0 +1,59 @@
|
||||
{
|
||||
"keyboard_name": "opus",
|
||||
"maintainer": "rtwayland",
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
{ "label": "Tab", "x": 0, "y": 0.4 },
|
||||
{ "label": "Q", "x": 1, "y": 0.4 },
|
||||
{ "label": "W", "x": 2, "y": 0.2 },
|
||||
{ "label": "E", "x": 3, "y": 0 },
|
||||
{ "label": "R", "x": 4, "y": 0.4 },
|
||||
{ "label": "T", "x": 5, "y": 0.5 },
|
||||
|
||||
{ "label": "Y", "x": 10, "y": 0.5 },
|
||||
{ "label": "U", "x": 11, "y": 0.4 },
|
||||
{ "label": "I", "x": 12, "y": 0 },
|
||||
{ "label": "O", "x": 13, "y": 0.2 },
|
||||
{ "label": "P", "x": 14, "y": 0.4 },
|
||||
{ "label": "Back Space", "x": 15, "y": 0.4 },
|
||||
|
||||
{ "label": "Ctrl / Esc", "x": 0, "y": 1.4 },
|
||||
{ "label": "A", "x": 1, "y": 1.4 },
|
||||
{ "label": "S", "x": 2, "y": 1.2 },
|
||||
{ "label": "D", "x": 3, "y": 1 },
|
||||
{ "label": "F", "x": 4, "y": 1.4 },
|
||||
{ "label": "G", "x": 5, "y": 1.5 },
|
||||
|
||||
{ "label": "H", "x": 10, "y": 1.5 },
|
||||
{ "label": "J", "x": 11, "y": 1.4 },
|
||||
{ "label": "K", "x": 12, "y": 1 },
|
||||
{ "label": "L", "x": 13, "y": 1.2 },
|
||||
{ "label": ";", "x": 14, "y": 1.4 },
|
||||
{ "label": "'", "x": 15, "y": 1.4 },
|
||||
|
||||
{ "label": "GUI", "x": 0, "y": 2.4 },
|
||||
{ "label": "Z", "x": 1, "y": 2.4 },
|
||||
{ "label": "X", "x": 2, "y": 2.2 },
|
||||
{ "label": "C", "x": 3, "y": 2 },
|
||||
{ "label": "V", "x": 4, "y": 2.4 },
|
||||
{ "label": "B", "x": 5, "y": 2.5 },
|
||||
|
||||
{ "label": "N", "x": 10, "y": 2.5 },
|
||||
{ "label": "M", "x": 11, "y": 2.4 },
|
||||
{ "label": ",", "x": 12, "y": 2 },
|
||||
{ "label": ".", "x": 13, "y": 2.2 },
|
||||
{ "label": "/", "x": 14, "y": 2.4 },
|
||||
{ "label": "Enter", "x": 15, "y": 2.4 },
|
||||
|
||||
{ "label": "Lower", "x": 4.8, "y": 3.7 },
|
||||
{ "label": "Shift", "x": 5.8, "y": 3.5 },
|
||||
{ "label": "Tab", "x": 6.8, "y": 3.6 },
|
||||
|
||||
{ "label": "Enter", "x": 8.2, "y": 3.6 },
|
||||
{ "label": "Space", "x": 9.2, "y": 3.5 },
|
||||
{ "label": "Raise", "x": 10.2, "y": 3.7 }
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
51
keyboards/keyhive/opus/keymaps/default/keymap.c
Normal file
51
keyboards/keyhive/opus/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,51 @@
|
||||
/* Copyright 2020 rtwayland
|
||||
*
|
||||
* 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 {
|
||||
_BASE,
|
||||
_SYMBOL,
|
||||
_NUM,
|
||||
_NAV,
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[_BASE] = LAYOUT(
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
|
||||
LCTL_T(KC_ESC), KC_A, KC_S, KC_D, LT(2,KC_F), KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
|
||||
KC_LALT, LGUI_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, LGUI_T(KC_SLSH), KC_ENT,
|
||||
MO(3), KC_LSFT, LALT_T(KC_TAB), LT(3,KC_ENT), LT(1,KC_SPC), KC_BSPC
|
||||
),
|
||||
[_SYMBOL] = LAYOUT(
|
||||
LCTL(KC_C), KC_TILD, KC_AT, KC_LCBR, KC_RCBR, KC_HASH, KC_ASTR, KC_CIRC, KC_AMPR, KC_PIPE, KC_BSLS, LCTL(KC_GRV),
|
||||
KC_LCTL, KC_GRV, KC_MINS, KC_LPRN, KC_RPRN, KC_EXLM, KC_QUES, KC_DLR, KC_LT, KC_GT, KC_SLSH, KC_DQUO,
|
||||
KC_LALT, KC_LGUI, KC_UNDS, KC_LBRC, KC_RBRC, KC_PLUS, KC_P0, KC_EQL, KC_PERC, KC_COLN, KC_NO, KC_NO,
|
||||
KC_TRNS, KC_LSFT, KC_NO, KC_TRNS, KC_TRNS, KC_NO
|
||||
),
|
||||
[_NUM] = LAYOUT(
|
||||
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_ASTR, KC_7, KC_8, KC_9, KC_SLSH, KC_EQL,
|
||||
KC_LCTL, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_NO, KC_PLUS, KC_4, KC_5, KC_6, KC_MINS, KC_PERC,
|
||||
KC_LALT, KC_LGUI, KC_NO, KC_NO, KC_NO, KC_NO, KC_0, KC_1, KC_2, KC_3, KC_DOT, KC_PENT,
|
||||
KC_NO, KC_NO, KC_NO, KC_NO, KC_SPC, KC_BSPC
|
||||
),
|
||||
[_NAV] = LAYOUT(
|
||||
KC_NO, KC_NO, LALT(KC_RGHT), SGUI(KC_LBRC), SGUI(KC_RBRC), KC_NO, KC_HOME, KC_PGDN, KC_PGUP, KC_NO, KC_NO, KC_NO,
|
||||
KC_NO, KC_LCTL, KC_LALT, KC_LSFT, KC_LGUI, KC_NO, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_NO, KC_NO,
|
||||
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, LALT(KC_LEFT), KC_END, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
|
||||
KC_TRNS, KC_NO, KC_NO, KC_NO, KC_SPC, KC_BSPC
|
||||
)
|
||||
};
|
17
keyboards/keyhive/opus/keymaps/default/readme.md
Normal file
17
keyboards/keyhive/opus/keymaps/default/readme.md
Normal file
@@ -0,0 +1,17 @@
|
||||
# The default keymap for Opus
|
||||
|
||||
## Base Layer
|
||||
|
||||

|
||||
|
||||
## Symbol Layer
|
||||
|
||||

|
||||
|
||||
## Num Layer
|
||||
|
||||

|
||||
|
||||
## Nav Layer
|
||||
|
||||

|
21
keyboards/keyhive/opus/keymaps/thefoxcodes/config.h
Normal file
21
keyboards/keyhive/opus/keymaps/thefoxcodes/config.h
Normal file
@@ -0,0 +1,21 @@
|
||||
/* Copyright 2020 rtwayland
|
||||
*
|
||||
* 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
|
||||
|
||||
// place overrides here
|
||||
#define USB_MAX_POWER_CONSUMPTION 100
|
||||
#define TAPPING_TERM 200
|
94
keyboards/keyhive/opus/keymaps/thefoxcodes/keymap.c
Normal file
94
keyboards/keyhive/opus/keymaps/thefoxcodes/keymap.c
Normal file
@@ -0,0 +1,94 @@
|
||||
/* Copyright 2020 rtwayland
|
||||
*
|
||||
* 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 {
|
||||
_BASE,
|
||||
_SYMBOL,
|
||||
_NUM,
|
||||
_NAV,
|
||||
_MEDIA,
|
||||
_WORD,
|
||||
_FKEYS,
|
||||
_NUMPAD,
|
||||
_MOUSE
|
||||
};
|
||||
|
||||
enum {
|
||||
TD_PLAY_DO_NOT_DISTURB
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[_BASE] = LAYOUT(
|
||||
LT(4, KC_TAB), KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, TD(TD_PLAY_DO_NOT_DISTURB),
|
||||
LCTL_T(KC_ESC), KC_A, KC_S, KC_D, LT(2, KC_F), KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, LT(4, KC_QUOT),
|
||||
MO(5), LGUI_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, LGUI_T(KC_SLSH), MO(5),
|
||||
MO(3), KC_LSFT, LALT_T(KC_TAB), LT(3, KC_ENT), LT(1, KC_SPC), KC_BSPC
|
||||
),
|
||||
[_SYMBOL] = LAYOUT(
|
||||
LCTL(KC_C), KC_TILD, KC_AT, KC_LCBR, KC_RCBR, KC_HASH, KC_ASTR, KC_CIRC, KC_AMPR, KC_PIPE, KC_BSLS, LCTL(KC_GRV),
|
||||
KC_LCTL, KC_GRV, KC_MINS, KC_LPRN, KC_RPRN, KC_EXLM, KC_QUES, KC_DLR, KC_LT, KC_GT, KC_SLSH, KC_DQUO,
|
||||
KC_LALT, KC_LGUI, KC_UNDS, KC_LBRC, KC_RBRC, KC_PLUS, KC_P0, KC_EQL, KC_PERC, KC_COLN, KC_NO, KC_NO,
|
||||
KC_NO, KC_LSFT, LALT_T(KC_TAB), KC_NO, KC_TRNS, KC_NO
|
||||
),
|
||||
[_NUM] = LAYOUT(
|
||||
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_ASTR, KC_7, KC_8, KC_9, KC_SLSH, KC_EQL,
|
||||
KC_LCTL, KC_NO, MO(7), MO(6), KC_TRNS, KC_NO, KC_PLUS, KC_4, KC_5, KC_6, KC_MINS, KC_PERC,
|
||||
KC_LALT, KC_LGUI, KC_NO, KC_NO, KC_NO, KC_NO, KC_0, KC_1, KC_2, KC_3, KC_DOT, KC_PENT,
|
||||
KC_NO, KC_LSFT, LALT_T(KC_TAB), KC_NO, KC_SPC, KC_BSPC
|
||||
),
|
||||
[_NAV] = LAYOUT(
|
||||
KC_NO, KC_NO, LALT(KC_RGHT), SGUI(KC_LBRC), SGUI(KC_RBRC), KC_NO, KC_HOME, KC_PGDN, KC_PGUP, KC_NO, KC_NO, KC_NO,
|
||||
KC_NO, KC_LCTL, KC_LALT, KC_LSFT, KC_LGUI, KC_NO, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_NO, KC_NO,
|
||||
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, LALT(KC_LEFT), KC_END, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
|
||||
KC_TRNS, KC_NO, KC_NO, KC_NO, KC_SPC, KC_BSPC
|
||||
),
|
||||
[_MEDIA] = LAYOUT(
|
||||
KC_TRNS, SGUI(KC_5), SGUI(KC_3), SGUI(KC_4), MEH(KC_4), KC_VOLU, LCA(KC_U), LCAG(KC_LEFT), LCAG(KC_RGHT), LCA(KC_I), LCA(KC_EQL), LALT(LGUI(KC_POWER)),
|
||||
KC_CAPS, KC_F11, KC_MPRV, KC_MNXT, KC_MPLY, KC_VOLD, LCA(KC_LEFT), LCA(KC_DOWN), LCA(KC_UP), LCA(KC_RIGHT), LCA(KC_MINS), KC_TRNS,
|
||||
KC_BRID, KC_BRIU, LGUI(KC_MINS), LGUI(KC_PLUS), LGUI(KC_GRV), KC_MUTE, LCA(KC_J), LCA(KC_ENT), LCA(KC_C), LCA(KC_K), MEH(KC_UP), RESET,
|
||||
LCTL(LSFT(KC_TAB)), LCTL(KC_TAB), KC_NO, KC_NO, MEH(KC_RGHT), MEH(KC_LEFT)
|
||||
),
|
||||
[_WORD] = LAYOUT(
|
||||
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
|
||||
KC_NO, KC_NO, LALT(LSFT(KC_MINS)), KC_NO, LALT(LGUI(KC_F)), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
|
||||
KC_TRNS, KC_NO, LALT(KC_MINS), KC_NO, SGUI(LALT(KC_V)), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
|
||||
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_DEL
|
||||
),
|
||||
[_FKEYS] = LAYOUT(
|
||||
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, KC_F7, KC_F8, KC_F9, KC_F17, KC_F20,
|
||||
KC_NO, KC_NO, KC_NO, KC_TRNS, KC_NO, KC_NO, KC_F11, KC_F4, KC_F5, KC_F6, KC_F16, KC_F19,
|
||||
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_F10, KC_F1, KC_F2, KC_F3, KC_F13, KC_F18,
|
||||
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
|
||||
),
|
||||
[_NUMPAD] = LAYOUT(
|
||||
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PAST, KC_P7, KC_P8, KC_P9, KC_PSLS, KC_PEQL,
|
||||
KC_LCTL, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PPLS, KC_P4, KC_P5, KC_P6, KC_PMNS, KC_PERC,
|
||||
KC_LALT, KC_LGUI, KC_NO, KC_NO, KC_NO, KC_NO, KC_P0, KC_P1, KC_P2, KC_P3, KC_PDOT, KC_PENT,
|
||||
KC_NO, KC_TRNS, KC_NO, KC_NO, KC_LPRN, KC_RPRN
|
||||
),
|
||||
[_MOUSE] = LAYOUT(
|
||||
KC_NO, KC_NO, KC_NO, SGUI(KC_LBRC), SGUI(KC_RBRC), KC_NO, KC_HOME, KC_WH_U, KC_WH_D, KC_NO, KC_NO, KC_NO,
|
||||
KC_NO, KC_NO, KC_ACL2, KC_WWW_BACK, KC_ACL0, KC_WWW_FORWARD, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_NO, KC_NO,
|
||||
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_END, KC_WH_R, KC_WH_L, KC_NO, KC_NO, KC_NO,
|
||||
KC_NO, KC_NO, KC_NO, KC_NO, KC_BTN1, KC_BTN2
|
||||
),
|
||||
};
|
||||
|
||||
qk_tap_dance_action_t tap_dance_actions[] = {
|
||||
[TD_PLAY_DO_NOT_DISTURB] = ACTION_TAP_DANCE_DOUBLE(KC_MPLY, KC_F6)
|
||||
};
|
1
keyboards/keyhive/opus/keymaps/thefoxcodes/readme.md
Normal file
1
keyboards/keyhive/opus/keymaps/thefoxcodes/readme.md
Normal file
@@ -0,0 +1 @@
|
||||
# thefoxcodes keymap
|
1
keyboards/keyhive/opus/keymaps/thefoxcodes/rules.mk
Normal file
1
keyboards/keyhive/opus/keymaps/thefoxcodes/rules.mk
Normal file
@@ -0,0 +1 @@
|
||||
TAP_DANCE_ENABLE = yes
|
17
keyboards/keyhive/opus/opus.c
Normal file
17
keyboards/keyhive/opus/opus.c
Normal file
@@ -0,0 +1,17 @@
|
||||
/* Copyright 2020 rtwayland
|
||||
*
|
||||
* 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 "opus.h"
|
39
keyboards/keyhive/opus/opus.h
Normal file
39
keyboards/keyhive/opus/opus.h
Normal file
@@ -0,0 +1,39 @@
|
||||
/* Copyright 2020 rtwayland
|
||||
*
|
||||
* 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 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( \
|
||||
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
|
||||
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
|
||||
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
|
||||
k33, k34, k35, k36, k37, k38 \
|
||||
) \
|
||||
{ \
|
||||
{ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \
|
||||
{ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \
|
||||
{ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \
|
||||
{ KC_NO, KC_NO, KC_NO, k33, k34, k35, k36, k37, k38, KC_NO, KC_NO, KC_NO } \
|
||||
}
|
15
keyboards/keyhive/opus/readme.md
Normal file
15
keyboards/keyhive/opus/readme.md
Normal file
@@ -0,0 +1,15 @@
|
||||
# Opus
|
||||
|
||||

|
||||
|
||||
This is a 40%, non-split, ergonomic, hot-swap keyboard.
|
||||
The columns are angled to follow the natural angle of the hand.
|
||||
|
||||
* Keyboard Maintainer: [rtwayland](https://github.com/rtwayland)
|
||||
* Hardware Supported: Pro-micro. Elite-C.
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make keyhive/opus: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/keyhive/opus/rules.mk
Normal file
18
keyboards/keyhive/opus/rules.mk
Normal file
@@ -0,0 +1,18 @@
|
||||
# MCU name
|
||||
MCU = atmega32u4
|
||||
|
||||
# Bootloader selection
|
||||
BOOTLOADER = caterina
|
||||
|
||||
# Build Options
|
||||
# change yes to no to disable
|
||||
#
|
||||
BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
|
||||
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
|
||||
NKRO_ENABLE = no # Enable N-Key Rollover
|
||||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
||||
AUDIO_ENABLE = no # Audio output
|
86
keyboards/keyhive/smallice/config.h
Normal file
86
keyboards/keyhive/smallice/config.h
Normal file
@@ -0,0 +1,86 @@
|
||||
/*
|
||||
Copyright 2020 quark
|
||||
|
||||
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 0x514B // QK Quark
|
||||
#define PRODUCT_ID 0x5341 // SA smAllice
|
||||
#define DEVICE_VER 0x0001
|
||||
#define MANUFACTURER quark
|
||||
#define PRODUCT smAllice
|
||||
|
||||
/* key matrix size */
|
||||
#define MATRIX_ROWS 4
|
||||
#define MATRIX_COLS 15
|
||||
|
||||
/*
|
||||
* 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 { B0, B6, B5, B4 }
|
||||
#define MATRIX_COL_PINS { C7, C6, F7, F6, F5, F4, F1, D4, D6, D7, D0, D1, D2, D3, D5 }
|
||||
#define UNUSED_PINS { E6, F0 }
|
||||
|
||||
/* COL2ROW, ROW2COL */
|
||||
#define DIODE_DIRECTION COL2ROW
|
||||
|
||||
#define RGB_DI_PIN B7
|
||||
#ifdef RGB_DI_PIN
|
||||
# define RGBLED_NUM 12
|
||||
# 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
|
||||
|
||||
/* Bootmagic Lite key configuration */
|
||||
#define BOOTMAGIC_LITE_ROW 0
|
||||
#define BOOTMAGIC_LITE_COLUMN 0
|
10
keyboards/keyhive/smallice/info.json
Normal file
10
keyboards/keyhive/smallice/info.json
Normal file
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"keyboard_name": "smAllice",
|
||||
"url": "https://keyhive.xyz/shop/smallice",
|
||||
"maintainer": "https://github.com/Armastardo",
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [{"label":"V+", "x":0.5, "y":0}, {"label":"Tab", "x":1.75, "y":0}, {"label":"Q", "x":2.75, "y":0}, {"label":"W", "x":3.75, "y":0}, {"label":"E", "x":4.75, "y":0}, {"label":"R", "x":5.75, "y":0}, {"label":"T", "x":6.75, "y":0}, {"label":"Y", "x":8.25, "y":0}, {"label":"U", "x":9.25, "y":0}, {"label":"I", "x":10.25, "y":0}, {"label":"O", "x":11.25, "y":0}, {"label":"P", "x":12.25, "y":0}, {"label":"[ {", "x":13.25, "y":0}, {"label":"] }", "x":14.25, "y":0}, {"label":"Bcsp", "x":15.25, "y":0}, {"label":"V-", "x":0.25, "y":1}, {"label":"Caps", "x":1.5, "y":1, "w":1.25}, {"label":"A", "x":2.75, "y":1}, {"label":"S", "x":3.75, "y":1}, {"label":"D", "x":4.75, "y":1}, {"label":"F", "x":5.75, "y":1}, {"label":"G", "x":6.75, "y":1}, {"label":"H", "x":8.75, "y":1}, {"label":"J", "x":9.75, "y":1}, {"label":"K", "x":10.75, "y":1}, {"label":"L", "x":11.75, "y":1}, {"label":": ;", "x":12.75, "y":1}, {"label":", \"", "x":13.75, "y":1}, {"label":"Enter", "x":14.75, "y":1, "w":1.75}, {"label":"V-", "x":0, "y":2}, {"label":"Shift", "x":1.25, "y":2, "w":1.75}, {"label":"Z", "x":3, "y":2}, {"label":"X", "x":4, "y":2}, {"label":"C", "x":5, "y":2}, {"label":"V", "x":6, "y":2}, {"label":"B", "x":7, "y":2}, {"label":"B", "x":8.5, "y":2}, {"label":"N", "x":9.5, "y":2}, {"label":"M", "x":10.5, "y":2}, {"label":"<", "x":11.5, "y":2}, {"label":">", "x":12.5, "y":2}, {"label":"Shift", "x":13.5, "y":2, "w":1.25}, {"label":"Up", "x":14.75, "y":2}, {"label":"?", "x":15.75, "y":2}, {"label":"Ctrl", "x":1.25, "y":3}, {"label":"Alt", "x":3, "y":3, "w":1.25}, {"x":4.25, "y":3, "w":2}, {"label":"Win", "x":6.25, "y":3}, {"x":9.5, "y":3, "w":2.75}, {"label":"Fn", "x":12.25, "y":3}, {"label":"left", "x":13.75, "y":3}, {"label":"down", "x":14.75, "y":3}, {"label":"right", "x":15.75, "y":3}]
|
||||
}
|
||||
}
|
||||
}
|
32
keyboards/keyhive/smallice/keymaps/default/keymap.c
Normal file
32
keyboards/keyhive/smallice/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,32 @@
|
||||
/* Copyright 2020 quark
|
||||
*
|
||||
* 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] = {
|
||||
/* Base */
|
||||
[0] = LAYOUT(
|
||||
KC_ESC, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
|
||||
KC_VOLU, 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_VOLD, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSFT, KC_UP, KC_SLSH,
|
||||
KC_LCTRL, KC_LALT, KC_SPC, KC_LWIN, KC_SPC, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT
|
||||
),
|
||||
[1] = LAYOUT(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
};
|
3
keyboards/keyhive/smallice/keymaps/default/readme.md
Normal file
3
keyboards/keyhive/smallice/keymaps/default/readme.md
Normal file
@@ -0,0 +1,3 @@
|
||||
# The default keymap for smAllice
|
||||
|
||||

|
44
keyboards/keyhive/smallice/keymaps/via/keymap.c
Normal file
44
keyboards/keyhive/smallice/keymaps/via/keymap.c
Normal file
@@ -0,0 +1,44 @@
|
||||
/* Copyright 2020 quark
|
||||
*
|
||||
* 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] = {
|
||||
/* Base */
|
||||
[0] = LAYOUT(
|
||||
KC_ESC, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
|
||||
KC_VOLU, 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_VOLD, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSFT, KC_UP, KC_SLSH,
|
||||
KC_LCTRL, KC_LALT, KC_SPC, KC_LWIN, KC_SPC, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT
|
||||
),
|
||||
[1] = LAYOUT(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
[2] = LAYOUT(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
[3] = LAYOUT(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
};
|
3
keyboards/keyhive/smallice/keymaps/via/readme.md
Normal file
3
keyboards/keyhive/smallice/keymaps/via/readme.md
Normal file
@@ -0,0 +1,3 @@
|
||||
# VIA keymap for smAllice
|
||||
|
||||

|
2
keyboards/keyhive/smallice/keymaps/via/rules.mk
Normal file
2
keyboards/keyhive/smallice/keymaps/via/rules.mk
Normal file
@@ -0,0 +1,2 @@
|
||||
VIA_ENABLE = yes
|
||||
LTO_ENABLE = yes
|
21
keyboards/keyhive/smallice/readme.md
Normal file
21
keyboards/keyhive/smallice/readme.md
Normal file
@@ -0,0 +1,21 @@
|
||||
# smAllice
|
||||
|
||||

|
||||
|
||||
A 40% alice-like keyboard with an arrow cluster.
|
||||
|
||||
* Keyboard Maintainer: [Brandon Beltran](https://github.com/armastardo)
|
||||
* Hardware Supported: smAllice PCB
|
||||
* Hardware Availability: [KeyHive](http://keyhive.xyz/)
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make keyhive/smallice:default
|
||||
|
||||
### Flash
|
||||
|
||||
- Plug in
|
||||
- Press reset button
|
||||
- Flash using QMK Toolbox or dfu-util (`make smallice:<keymap>: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).
|
18
keyboards/keyhive/smallice/rules.mk
Normal file
18
keyboards/keyhive/smallice/rules.mk
Normal file
@@ -0,0 +1,18 @@
|
||||
# MCU name
|
||||
MCU = atmega32u4
|
||||
|
||||
# Bootloader selection
|
||||
BOOTLOADER = atmel-dfu
|
||||
|
||||
# Build Options
|
||||
# change yes to no to disable
|
||||
#
|
||||
BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
|
||||
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
|
||||
NKRO_ENABLE = no # Enable N-Key Rollover
|
||||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
|
||||
AUDIO_ENABLE = no # Audio output
|
17
keyboards/keyhive/smallice/smallice.c
Normal file
17
keyboards/keyhive/smallice/smallice.c
Normal file
@@ -0,0 +1,17 @@
|
||||
/* Copyright 2020 armastardo / quark
|
||||
*
|
||||
* 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 "smallice.h"
|
40
keyboards/keyhive/smallice/smallice.h
Normal file
40
keyboards/keyhive/smallice/smallice.h
Normal file
@@ -0,0 +1,40 @@
|
||||
/* Copyright 2020 armastardo / quark
|
||||
*
|
||||
* 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( \
|
||||
K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, \
|
||||
K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K114, \
|
||||
K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, \
|
||||
K301, K303, K305, K306, K308, K310, K312, K313, K314 \
|
||||
) \
|
||||
{ \
|
||||
{ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 }, \
|
||||
{ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, KC_NO, K114 }, \
|
||||
{ K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214 }, \
|
||||
{ KC_NO, K301, KC_NO, K303, KC_NO, K305, K306, KC_NO, K308, KC_NO, K310, KC_NO, K312, K313, K314 } \
|
||||
}
|
45
keyboards/keyhive/southpole/config.h
Normal file
45
keyboards/keyhive/southpole/config.h
Normal file
@@ -0,0 +1,45 @@
|
||||
#pragma once
|
||||
|
||||
//#include "config_common.h"
|
||||
|
||||
/* USB Device descriptor parameter */
|
||||
#define VENDOR_ID 0xFEED
|
||||
#define PRODUCT_ID 0x6060
|
||||
#define DEVICE_VER 0x0001
|
||||
#define MANUFACTURER u/waxpoetic
|
||||
#define PRODUCT southpole
|
||||
|
||||
/* key matrix size */
|
||||
#define MATRIX_ROWS 5
|
||||
#define MATRIX_COLS 20
|
||||
|
||||
/* key matrix pins */
|
||||
#define MATRIX_ROW_PINS { D2, D3, C6, C7, D5 }
|
||||
#define MATRIX_COL_PINS { B0, B1, B2, B3, B7, D0, D1, F0, F1, F4, F5, F6, F7, B6, B5, B4, D7, D6, D4, E6 }
|
||||
#define UNUSED_PINS
|
||||
|
||||
/* COL2ROW or ROW2COL */
|
||||
#define DIODE_DIRECTION COL2ROW
|
||||
|
||||
/* number of backlight levels */
|
||||
|
||||
#ifdef BACKLIGHT_PIN
|
||||
#define BACKLIGHT_LEVELS 0
|
||||
#endif
|
||||
|
||||
/* Set 0 if debouncing isn't 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
|
||||
|
||||
#ifdef RGB_DI_PIN
|
||||
#define RGBLIGHT_ANIMATIONS
|
||||
#define RGBLED_NUM 0
|
||||
#define RGBLIGHT_HUE_STEP 8
|
||||
#define RGBLIGHT_SAT_STEP 8
|
||||
#define RGBLIGHT_VAL_STEP 8
|
||||
#endif
|
95
keyboards/keyhive/southpole/info.json
Normal file
95
keyboards/keyhive/southpole/info.json
Normal file
@@ -0,0 +1,95 @@
|
||||
{
|
||||
"keyboard_name": "southpole",
|
||||
"url": "",
|
||||
"maintainer": "qmk",
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
{"label":"Num Lock", "x":0, "y":0},
|
||||
{"label":"/", "x":1, "y":0},
|
||||
{"label":"*", "x":2, "y":0},
|
||||
{"label":"-", "x":3, "y":0},
|
||||
{"label":"Esc", "x":4.5, "y":0},
|
||||
{"label":"1", "x":5.5, "y":0},
|
||||
{"label":"2", "x":6.5, "y":0},
|
||||
{"label":"3", "x":7.5, "y":0},
|
||||
{"label":"4", "x":8.5, "y":0},
|
||||
{"label":"5", "x":9.5, "y":0},
|
||||
{"label":"6", "x":10.5, "y":0},
|
||||
{"label":"7", "x":11.5, "y":0},
|
||||
{"label":"8", "x":12.5, "y":0},
|
||||
{"label":"9", "x":13.5, "y":0},
|
||||
{"label":"0", "x":14.5, "y":0},
|
||||
{"label":"-", "x":15.5, "y":0},
|
||||
{"label":"=", "x":16.5, "y":0},
|
||||
{"label":"\\", "x":17.5, "y":0},
|
||||
{"label":"Delete", "x":18.5, "y":0},
|
||||
{"label":"Insert", "x":19.5, "y":0},
|
||||
{"label":"7", "x":0, "y":1},
|
||||
{"label":"8", "x":1, "y":1},
|
||||
{"label":"9", "x":2, "y":1},
|
||||
{"label":"+", "x":3, "y":1, "h":2},
|
||||
{"label":"Tab", "x":4.5, "y":1, "w":1.5},
|
||||
{"label":"Q", "x":6, "y":1},
|
||||
{"label":"W", "x":7, "y":1},
|
||||
{"label":"E", "x":8, "y":1},
|
||||
{"label":"R", "x":9, "y":1},
|
||||
{"label":"T", "x":10, "y":1},
|
||||
{"label":"Y", "x":11, "y":1},
|
||||
{"label":"U", "x":12, "y":1},
|
||||
{"label":"I", "x":13, "y":1},
|
||||
{"label":"O", "x":14, "y":1},
|
||||
{"label":"P", "x":15, "y":1},
|
||||
{"label":"[", "x":16, "y":1},
|
||||
{"label":"]", "x":17, "y":1},
|
||||
{"label":"Backspace", "x":18, "y":1, "w":1.5},
|
||||
{"label":"Vol +", "x":19.5, "y":1},
|
||||
{"label":"4", "x":0, "y":2},
|
||||
{"label":"5", "x":1, "y":2},
|
||||
{"label":"6", "x":2, "y":2},
|
||||
{"label":"Enter", "x":3, "y":3, "h":2},
|
||||
{"label":"Caps Lock", "x":4.5, "y":2, "w":1.75},
|
||||
{"label":"A", "x":6.25, "y":2},
|
||||
{"label":"S", "x":7.25, "y":2},
|
||||
{"label":"D", "x":8.25, "y":2},
|
||||
{"label":"F", "x":9.25, "y":2},
|
||||
{"label":"G", "x":10.25, "y":2},
|
||||
{"label":"H", "x":11.25, "y":2},
|
||||
{"label":"J", "x":12.25, "y":2},
|
||||
{"label":"K", "x":13.25, "y":2},
|
||||
{"label":"L", "x":14.25, "y":2},
|
||||
{"label":";", "x":15.25, "y":2},
|
||||
{"label":"'", "x":16.25, "y":2},
|
||||
{"label":"Enter", "x":17.25, "y":2, "w":2.25},
|
||||
{"label":"Vol -", "x":19.5, "y":2},
|
||||
{"label":"1", "x":0, "y":3},
|
||||
{"label":"2", "x":1, "y":3},
|
||||
{"label":"3", "x":2, "y":3},
|
||||
{"label":"Shift", "x":4.5, "y":3, "w":2.25},
|
||||
{"label":"Z", "x":6.75, "y":3},
|
||||
{"label":"X", "x":7.75, "y":3},
|
||||
{"label":"C", "x":8.75, "y":3},
|
||||
{"label":"V", "x":9.75, "y":3},
|
||||
{"label":"B", "x":10.75, "y":3},
|
||||
{"label":"N", "x":11.75, "y":3},
|
||||
{"label":"M", "x":12.75, "y":3},
|
||||
{"label":",", "x":13.75, "y":3},
|
||||
{"label":".", "x":14.75, "y":3},
|
||||
{"label":"/", "x":15.75, "y":3},
|
||||
{"label":"Shift", "x":16.75, "y":3, "w":1.75},
|
||||
{"label":"Up", "x":18.5, "y":3},
|
||||
{"label":"Mute", "x":19.5, "y":3},
|
||||
{"label":"0", "x":0, "y":4, "w":2},
|
||||
{"label":".", "x":2, "y":4},
|
||||
{"label":"Ctrl", "x":4.5, "y":4, "w":1.25},
|
||||
{"label":"GUI", "x":5.75, "y":4, "w":1.25},
|
||||
{"label":"Alt", "x":7, "y":4, "w":1.25},
|
||||
{"label":"Space", "x":8.25, "y":4, "w":7},
|
||||
{"label":"Fn", "x":15.25, "y":4, "w":1.5},
|
||||
{"label":"Left", "x":17.5, "y":4},
|
||||
{"label":"Down", "x":18.5, "y":4},
|
||||
{"label":"Right", "x":19.5, "y":4}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
20
keyboards/keyhive/southpole/keymaps/default/keymap.c
Normal file
20
keyboards/keyhive/southpole/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,20 @@
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
LAYOUT(
|
||||
KC_NLCK, KC_SLSH, KC_ASTR, KC_MINS, 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_DEL, KC_HOME,
|
||||
KC_7, KC_8, KC_9, KC_PLUS, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, KC_PGUP,
|
||||
KC_4, KC_5, KC_6, KC_ENT, KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN,
|
||||
KC_1, KC_2, KC_3, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_UP, KC_END,
|
||||
KC_0, KC_DOT, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_LEFT, KC_DOWN, KC_RGHT),
|
||||
|
||||
LAYOUT(
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
)
|
||||
|
||||
};
|
72
keyboards/keyhive/southpole/keymaps/foobeard/keymap.c
Normal file
72
keyboards/keyhive/southpole/keymaps/foobeard/keymap.c
Normal file
@@ -0,0 +1,72 @@
|
||||
/*
|
||||
Base Copyright 2017 Luiz Ribeiro <luizribeiro@gmail.com>
|
||||
Modified 2017 Andrew Novak <ndrw.nvk@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 LicensezZZ
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
enum layers {
|
||||
_QWERTY,
|
||||
_RAISE
|
||||
};
|
||||
|
||||
enum custom_keycodes {
|
||||
QWERTY = SAFE_RANGE,
|
||||
};
|
||||
|
||||
#define RAISE MO(_RAISE)
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/* Layer 0, default layer
|
||||
* ,--------------------------------------------------------------------------------------------------------------------------------------------.
|
||||
* |NumLck| / | * | - | | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ |Delete| Ins |
|
||||
* |------+------+------+------+-+-------------------------------------------------------------------------------------------------------+------|
|
||||
* | 7 | 8 | 9 | + | | Tab | Q | W | E | R | T | Y | U | I | O | P | { | } | BkSpc | Vol+ |
|
||||
* |------+------+------+------+-+-------------------------------------------------------------------------------------------------------+------|
|
||||
* | 4 | 5 | 6 | + | | Caps | A | S | D | F | G | H | J | K | L | ; | ' | Return | Vol- |
|
||||
* |------+------+------+------+-+-------------------------------------------------------------------------------------------------------+------|
|
||||
* | 1 | 2 | 3 | En | | LShft | Z | X | C | V | B | N | M | , | . | / | RShft | Up | Mute |
|
||||
* |------+------+------+------+-+----------------------------------------------------------------------------------------------+--------+------|
|
||||
* | 0 | . | En | | Ctrl | Win | Alt | Space | Fn | | Left | Down | Right|
|
||||
* `------+------+------+------+-+-------------------------------------------------------------------------------------------------------+------'
|
||||
*/
|
||||
[_QWERTY] = LAYOUT(
|
||||
KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, 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_DELETE, KC_INS, \
|
||||
KC_P7, KC_P8, KC_P9, KC_PPLS, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, KC_VOLU, \
|
||||
KC_P4, KC_P5, KC_P6, KC_PENT, 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_VOLD, \
|
||||
KC_P1, KC_P2, KC_P3, 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_MUTE, \
|
||||
KC_P0, KC_PDOT, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_RGHT \
|
||||
),
|
||||
|
||||
/*layer 1, function layer
|
||||
* ,--------------------------------------------------------------------------------------------------------------------------------------------.
|
||||
* |Reset | | | | | ` | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | | |Calc |
|
||||
* |------+------+------+------+-+-------------------------------------------------------------------------------------------------------+------|
|
||||
* | | | | | | | | | | | | | | | | | | | | |
|
||||
* |------+------+------+------+-+-------------------------------------------------------------------------------------------------------+------|
|
||||
* | | | | | | | | | | | | | | | | | | | |
|
||||
* |------+------+------+------+-+-------------------------------------------------------------------------------------------------------+------|
|
||||
* | | | | | | | | | | | | | | | | | | | |
|
||||
* |------+------+------+------+-+----------------------------------------------------------------------------------------------+--------+------|
|
||||
* | | | | | | | | | | | | | |
|
||||
* `------+------+------+------+-+-------------------------------------------------------------------------------------------------------+------'
|
||||
*/
|
||||
|
||||
[_RAISE] = LAYOUT(
|
||||
RESET, _______, _______, _______, 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_CALC, \
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
|
||||
)
|
||||
};
|
13
keyboards/keyhive/southpole/readme.md
Normal file
13
keyboards/keyhive/southpole/readme.md
Normal file
@@ -0,0 +1,13 @@
|
||||
# Southpole
|
||||
[Southpole](https://imgur.com/a/MZ2wdYt)
|
||||
|
||||
PCB designed by u/waxpoetic for a southpaw style board with an hhkb style layout.
|
||||
|
||||
Keyboard Maintainer: ericduns
|
||||
Hardware Supported: Teensy 2.0
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make keyhive/southpole: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).
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user