Merge remote-tracking branch 'origin/develop' into xap

This commit is contained in:
QMK Bot 2022-04-13 14:31:23 +00:00
commit 7f4f38dcac
25 changed files with 1519 additions and 0 deletions

View File

@ -0,0 +1,54 @@
/*
Copyright 2021 Tyler Tolley <thattolleyguy@gmail.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#define USE_SERIAL
// #define USE_I2C
// #define MASTER_LEFT
// #define MASTER_RIGHT
#define EE_HANDS
// Rows are doubled-up
#undef RGB_DI_PIN
#define RGB_DI_PIN F5
#undef SOFT_SERIAL_PIN
#define SOFT_SERIAL_PIN D0
// #define DRIVER_LED_TOTAL 32
#define RGB_MATRIX_KEYPRESSES
#ifdef RGB_MATRIX_ENABLE
#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 80
#undef RGBLED_NUM
#define RGBLED_NUM 64 // Number of LEDs
#define DRIVER_LED_TOTAL RGBLED_NUM
#define RGB_MATRIX_SPLIT \
{ 32, 32 }
#define SPLIT_TRANSPORT_MIRROR
// #define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_TYPING_HEATMAP // Sets the default mode, if none has been set
#define ENABLE_RGB_MATRIX_TYPING_HEATMAP
#define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
#endif

View File

@ -0,0 +1,178 @@
/*
Copyright 2021 Tyler Tolley <thattolleyguy@gmail.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
enum dactyl_layers {
_QWERTY,
_LOWER,
_RAISE,
};
#define RAISE MO(_RAISE)
#define LOWER MO(_LOWER)
#define KC_CBP LCTL(KC_F11) //Clipboard previous
#define KC_CBN LCTL(KC_F12) //Clipboard previous
#define KC_DSKD LCA(KC_DOWN)
#define KC_DSKU LCA(KC_UP)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_QWERTY] = LAYOUT_5x6(
//┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
//├────────┼────────┼────────┼────────┼────────┼────────┤ ┌────────┼────────┼────────┼────────┼────────┼────────┤
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
//└────────┴────────┼────────┼────────┼────────┼────────┘ └────────┴────────┼────────┼────────┼────────┼────────┘
KC_DSKU, KC_DSKD, KC_PGUP, KC_PGDN,
// └────────┴────────┘ ┌────────┬────────┐ ┌────────┬────────┐ └────────┴────────┘
LOWER, KC_ENT, KC_SPC, RAISE,
// ├────────┼────────┤ ├────────┼────────┤
KC_LGUI, KC_GRV, KC_DEL, KC_RALT,
// ├────────┼────────┤ ├────────┼────────┤
KC_CBP, KC_CBN, KC_APP, KC_RCTL
// └────────┴────────┘ └────────┴────────┘
),
[_LOWER] = LAYOUT_5x6(
//┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
XXXXXXX, KC_VOLU, KC_MPRV, KC_MPLY, KC_MSTP, KC_MNXT, XXXXXXX, XXXXXXX, KC_PSLS, KC_PAST, KC_PMNS, _______,
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
KC_MUTE, KC_VOLD, RGB_M_SW,RGB_TOG, XXXXXXX, XXXXXXX, XXXXXXX, KC_P7, KC_P8, KC_P9, KC_PPLS, XXXXXXX,
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
_______, RGB_HUI, RGB_SAI, RGB_VAI, RGB_MOD, XXXXXXX, XXXXXXX, KC_P4, KC_P5, KC_P6, KC_EQL, KC_PSCR,
//├────────┼────────┼────────┼────────┼────────┼────────┤ ┌────────┼────────┼────────┼────────┼────────┼────────┤
_______, RGB_HUD, RGB_SAD, RGB_VAD, RGB_RMOD,XXXXXXX, XXXXXXX, KC_P1, KC_P2, KC_P3, KC_PDOT, _______,
//└────────┴────────┼────────┼────────┼────────┼────────┘ └────────┴────────┼────────┼────────┼────────┼────────┘
KC_PGUP, KC_PGDN, KC_P0, DEBUG,
// └────────┴────────┘ ┌────────┬────────┐ ┌────────┬────────┐ └────────┴────────┘
_______, _______, _______, _______,
// ├────────┼────────┤ ├────────┼────────┤
_______, _______, _______, _______,
// ├────────┼────────┤ ├────────┼────────┤
_______, RESET, _______, _______
// └────────┴────────┘ └────────┴────────┘
),
[_RAISE] = LAYOUT_5x6(
//┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
XXXXXXX, _______, XXXXXXX, KC_UP, XXXXXXX, XXXXXXX, XXXXXXX, KC_LCBR, KC_RCBR, KC_LBRC, KC_RBRC, KC_UNDS,
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
_______, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGUP, KC_INS, KC_HOME, KC_PPLS, KC_MINS, KC_TILD, KC_EQL,
//├────────┼────────┼────────┼────────┼────────┼────────┤ ┌────────┼────────┼────────┼────────┼────────┼────────┤
_______, _______, XXXXXXX, XXXXXXX, XXXXXXX, KC_PGDN, KC_DEL, KC_END, XXXXXXX, XXXXXXX, XXXXXXX, _______,
//└────────┴────────┼────────┼────────┼────────┼────────┘ └────────┴────────┼────────┼────────┼────────┼────────┘
DM_REC1, DM_REC2, DM_PLY1, DM_PLY2,
// └────────┴────────┘ ┌────────┬────────┐ ┌────────┬────────┐ └────────┴────────┘
LOWER, KC_ENT, KC_SPC, RAISE,
// ├────────┼────────┤ ├────────┼────────┤
KC_LGUI, KC_GRV, KC_DEL, KC_RALT,
// ├────────┼────────┤ ├────────┼────────┤
XXXXXXX, XXXXXXX, RESET, XXXXXXX
// └────────┴────────┘ └────────┴────────┘
),
};
#ifdef RGB_MATRIX_ENABLE
// Logical Layout
// Columns
// Left
// 0 1 2 3 4 5
// ROWS
// 25 24 19 18 11 10 0
// 03 02 01
// 26 23 20 17 12 09 1
// 04 05 06
// 27 22 21 16 13 08 2
//
// 15 14 07 3
//
// Right
// 0 1 2 3 4 5
// ROWS
// 25 24 19 18 11 10 4
// 03 02 01
// 26 23 20 17 12 09 5
// 04 05 06
// 27 22 21 16 13 08 6
//
// 15 14 07 7
//
// Physical Layout
// Columns
// 0 1 2 3 4 5 6 7 8 9 10 11 12 13
// ROWS
// 25 24 19 18 11 10 10 11 18 19 24 25 0
// 03 02 01 01 02 03
// 26 23 20 17 12 09 09 12 17 20 23 26 1
// 04 04
// 27 22 21 16 13 08 08 13 16 21 22 27 2
// 05 06 06 05
// 15 14 07 07 14 15 3
led_config_t g_led_config = { {
{ 0, 1, 2, 3, 4, 5 },
{ 11, 10, 9, 8, 7, 6 },
{ 12, 13, 14, 15, 16, 17 },
{ 23, 22, 21, 20, 19, 18 },
{ NO_LED, NO_LED, 24, 25, 26, 27 },
{ NO_LED, NO_LED, 30, 31, 28, 29 },
{ 37, 36, 35, 34, 33, 32 },
{ 43, 42, 41, 40, 39, 38 },
{ 49, 48, 47, 46, 45, 44 },
{ 55, 54, 53, 52, 51, 50 },
// { NO_LED, NO_LED, 57, 56, NO_LED, NO_LED},
// { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }
{ 59, 58, 57, 56, NO_LED, NO_LED},
{ 61, 60, 62, 63, NO_LED, NO_LED }
}, {
{ 0, 0 }, { 17, 0 }, { 34, 0 }, { 52, 0 }, { 69, 0 }, { 86, 0 }, { 86, 9 }, { 69, 9 },
{ 52, 9 }, { 34, 9 }, { 17, 9 }, { 0, 9 }, { 0, 18 }, { 17, 18 }, { 34, 18 }, { 52, 18 },
{ 60, 18 }, { 86, 18 }, { 86, 27 }, { 69, 27 }, { 52, 27 }, { 34, 27 }, { 17, 27 }, { 0, 27 },
{ 34, 37 }, { 52, 37 }, { 69, 45 }, { 86, 45 }, { 103, 55 }, { 103, 64 }, { 86, 55 }, { 86, 64 },
{ 224, 0 }, { 207, 0 }, { 190, 0 }, { 172, 0 }, { 155, 0 }, { 138, 0 }, { 224, 9 }, { 207, 9 },
{ 190, 9 }, { 172, 9 }, { 155, 9 }, { 138, 9 }, { 224, 18 }, { 207, 18 }, { 190, 18 },{ 172, 18 },
{ 155, 18 }, { 138, 18 }, { 224, 27 }, { 207, 27 }, { 190, 27}, { 172, 27 },{ 155, 27 }, { 138, 27 },
{ 190, 37 }, { 172, 37 }, { 155, 45}, { 138, 45 }, { 121, 55 }, { 121, 64 }, { 138, 64 }, { 138, 55 }
}, {
2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2
} };
#endif

View File

@ -0,0 +1,6 @@
RGB_MATRIX_ENABLE = yes
RGB_MATRIX_DRIVER = WS2812
DYNAMIC_MACRO_ENABLE = yes
# CONSOLE_ENABLE = yes
MOUSEKEY_ENABLE = no

View File

@ -0,0 +1,24 @@
/*
Copyright 2021 Tyler Tolley <thattolleyguy@gmail.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
// #define USE_I2C
#define EE_HANDS
#define NO_DEBUG
#define NO_PRINT
#define BACKLIGHT_BREATHING

View File

@ -0,0 +1,127 @@
/*
Copyright 2021 Tyler Tolley <thattolleyguy@gmail.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
enum iris_layers {
_COLEMAK,
_QWERTY,
_LOWER,
_RAISE,
};
enum custom_keycodes {
COLEMAK = SAFE_RANGE,
QWERTY,
NUMPAD,
RGB_SPDU,
RGB_SPDD
};
#define L_LOWER MO(_LOWER)
#define L_RAISE MO(_RAISE)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_COLEMAK] = LAYOUT(
//┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS,
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
KC_LCTL, KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O, KC_QUOT,
//├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
KC_LSFT, KC_Z, KC_X, KC_C, KC_D, KC_V, KC_GRV, KC_DEL, KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
//└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
KC_LGUI, L_LOWER, KC_ENT, KC_SPC, L_RAISE, KC_RALT
// └────────┴────────┴────────┘ └────────┴────────┴────────┘
),
[_QWERTY] = LAYOUT(
//┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
//├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_GRV, KC_DEL, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
//└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
KC_LGUI, L_LOWER, KC_ENT, KC_SPC, L_RAISE, KC_RALT
// └────────┴────────┴────────┘ └────────┴────────┴────────┘
),
[_LOWER] = LAYOUT(
//┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
XXXXXXX, KC_VOLU, KC_MPRV, KC_MPLY, KC_MSTP, KC_MNXT, BL_BRTG, XXXXXXX, KC_PSLS, KC_PAST, KC_PMNS, _______,
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
KC_MUTE, KC_VOLD, RGB_M_SW,RGB_TOG, XXXXXXX, XXXXXXX, BL_TOGG, KC_P7, KC_P8, KC_P9, KC_PPLS, XXXXXXX,
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
_______, RGB_HUI, RGB_SAI, RGB_VAI, RGB_MOD, RGB_SPDU, BL_INC, KC_P4, KC_P5, KC_P6, KC_EQL, KC_PSCR,
//├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
_______, RGB_HUD, RGB_SAD, RGB_VAD, RGB_RMOD,RGB_SPDD,_______, _______, BL_DEC, KC_P1, KC_P2, KC_P3, KC_PDOT, _______,
//└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
_______, _______, _______, _______, L_RAISE, KC_P0
// └────────┴────────┴────────┘ └────────┴────────┴────────┘
),
[_RAISE] = LAYOUT(
//┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
XXXXXXX, COLEMAK, DM_REC1, KC_UP, DM_REC2, XXXXXXX, XXXXXXX, KC_LCBR, KC_RCBR, KC_LBRC, KC_RBRC, KC_UNDS,
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
_______, QWERTY, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGUP, KC_INS, KC_HOME, KC_PPLS, KC_MINS, KC_TILD, KC_EQL,
//├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
_______, DF(2), DM_PLY1, XXXXXXX, DM_PLY2, KC_PGDN, XXXXXXX, XXXXXXX, KC_DEL, KC_END, XXXXXXX, XXXXXXX, XXXXXXX, _______,
//└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
_______, _______, _______, XXXXXXX, _______, _______
// └────────┴────────┴────────┘ └────────┴────────┴────────┘
)
};
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case QWERTY:
if (record->event.pressed) {
set_single_persistent_default_layer(_QWERTY);
}
return false;
break;
case COLEMAK:
if (record->event.pressed) {
set_single_persistent_default_layer(_COLEMAK);
}
return false;
break;
case RGB_SPDD:
if (record->event.pressed) {
rgblight_decrease_speed();
}
return false;
case RGB_SPDU:
if (record->event.pressed) {
rgblight_increase_speed();
}
return false;
}
return true;
}

View File

@ -0,0 +1,2 @@
DYNAMIC_MACRO_ENABLE = yes
MOUSEKEY_ENABLE = no

View File

@ -0,0 +1,49 @@
/*
This is the c configuration file for the keymap
Copyright 2012 Jun Wako <wakojun@gmail.com>
Copyright 2015 Jack Humbert
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
/* Select hand configuration */
#define MASTER_LEFT
// #define MASTER_RIGHT
// #define EE_HANDS
/* Necessary because of use fo tap dance for ç (leads to un wanted modifications after typing c if not) */
#define IGNORE_MOD_TAP_INTERRUPT
/* RGB light */
#ifdef RGBLIGHT_ENABLE
#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
#define RGBLIGHT_EFFECT_TWINKLE
# define RGBLIGHT_HUE_STEP 5 // number of steps to cycle through the hue by
# define RGBLIGHT_SAT_STEP 10 // number of steps to increment the saturation by
# define RGBLIGHT_VAL_STEP 10 // number of steps to increment the brightness by
# define RGBLIGHT_SLEEP // the RGB lighting will be switched off when the host goes to sleep
# define RGBLIGHT_LAYERS //
# define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF
#endif

View File

@ -0,0 +1,359 @@
/* Copyright 2017 F_YUUCHI
* Copyright 2020 Drashna Jaelre <@drashna>
* Copyright 2020 Ben Roesner (keycapsss.com)
* Copyright 2022 Niolang
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
#include "keymap_bepo.h"
enum layers {
_BEPO,
_LOWER,
_RAISE,
_ADJUST,
};
#define RAISE MO(_RAISE)
#define LOWER MO(_LOWER)
//Modification of cut/copy/paste by their combination, works in more cases
#define KC_COPY LCTL(KC_H)
#define KC_CUT LCTL(KC_C)
#define KC_PSTE2 LCTL(KC_U)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* BÉPO
* ,-----------------------------------------. ,-----------------------------------------.
* |ESC/VM| " 1 | « 2 | » 3 | ( 4 | ) 5 | | @ 6 | + 7 | - 8 | / 9 | * 0 | W |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | Tab | B | | É | P & | O œ | È | | !^ | V | D | L | J | Z |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* |LCTRL | A | | I¨ | E | ,;' |-------. ,-------| C/ç | Tᵉ | S | R | N | M |
* |------+------+------+------+------+------|CtPtScn| |SUPPR |------+------+------+------+------+------|
* |LShift| À \ | Y { | X } | .: | K ~ |-------| |-------| ? | Q | G | H | F |RShift|
* `-----------------------------------------/ / \ \-----------------------------------------'
* | LAlt | LGUI |LOWER | /Space / \Enter \ |RAISE |BackSP| AltGr|
* | | | |/ / \ \ | | | |
* `----------------------------' '------''--------------------'
*/
[_BEPO] = LAYOUT(
MT(KC_CAPS, KC_ESC), BP_DQUO, BP_LDAQ, BP_RDAQ, BP_LPRN, BP_RPRN, BP_AT, BP_PLUS, BP_MINS, BP_SLSH, BP_ASTR, BP_W,
KC_TAB, BP_B, BP_EACU, BP_P, BP_O, BP_EGRV, BP_DCIR, BP_V, BP_D, BP_L, BP_J, BP_Z,
KC_LCTRL, BP_A, BP_U, BP_I, BP_E, BP_COMM, MT(BP_CCED, BP_C), BP_T, BP_S, BP_R, BP_N, BP_M,
KC_LSFT, BP_AGRV, BP_Y, BP_X, BP_DOT, BP_K, LSFT(KC_PSCR), KC_DEL, BP_QUOT, BP_Q, BP_G, BP_H, BP_F, KC_RSFT,
KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_ENT, RAISE, KC_BSPC, KC_RALT
),
/* LOWER
* ,-----------------------------------------. ,-----------------------------------------.
* | F1 | F2 | F3 | F4 | F5 | F6 | | + | 7 | 8 | 9 | = | # |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | F7 | F8 | F9 | F10 | F11 | F12 | | - | 4 | 5 | 6 | % | ^ |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* |LCTRL | c+c | c+v | Up | home | end |-------. ,-------| / | 1 | 2 | 3 | < | > |
* |------+------+------+------+------+------|TGHi/Lo| |SUPPR |------+------+------+------+------+------|
* |LShift| c+x | Left | Down | Right| pscr |-------| |-------| * | 0 | . | , | ( | ) |
* `-----------------------------------------/ / \ \-----------------------------------------'
* | LAlt | LGUI |LOWER | /Space / \Enter \ |RAISE |BackSP| AltGr|
* | | | |/ / \ \ | | | |
* `----------------------------' '------''--------------------'
*/
[_LOWER] = LAYOUT(
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_PPLS, KC_P7, KC_P8, KC_P9, BP_EQL, BP_HASH,
KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PMNS, KC_P4, KC_P5, KC_P6, BP_PERC, BP_RABK,
_______, KC_COPY, KC_PSTE2, KC_UP, KC_HOME, KC_END, KC_PSLS, KC_P1, KC_P2, KC_P3, BP_LABK, BP_RABK,
_______, KC_CUT, KC_LEFT, KC_DOWN, KC_RGHT, KC_PSCR,TG(_RAISE), _______, KC_PAST, KC_P0, KC_PDOT, KC_PCMM, BP_LPRN, BP_RPRN,
_______, _______, _______, _______, _______, _______, _______, _______
),
[_RAISE] = LAYOUT(
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_PPLS, KC_P7, KC_P8, KC_P9, BP_EQL, BP_HASH,
KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PMNS, KC_P4, KC_P5, KC_P6, BP_PERC, BP_CIRC,
_______, KC_COPY, KC_PSTE2, KC_UP, KC_HOME, KC_END, KC_PSLS, KC_P1, KC_P2, KC_P3, BP_LABK, BP_RABK,
_______, KC_CUT, KC_LEFT, KC_DOWN, KC_RGHT, KC_PSCR,TG(_LOWER), _______, KC_PAST, KC_P0, KC_PDOT, KC_PCMM, BP_LPRN, BP_RPRN,
_______, _______, _______, _______, _______, _______, _______, _______
),
/* ADJUST
* ,-----------------------------------------. ,-----------------------------------------.
* | | | | | | | | ScLck| Ins | Pause| | | |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | | | | | | | | NUML | | | | | |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | | | | | | |-------. ,-------| | |RGB ON| HUE+ | SAT+ | VAL+ |
* |------+------+------+------+------+------| | | |------+------+------+------+------+------|
* | | | | | | |-------| |-------| | | MODE | HUE- | SAT- | VAL- |
* `-----------------------------------------/ / \ \-----------------------------------------'
* | LAlt | LGUI |LOWER | /Space / \Enter \ |RAISE |BackSP| RGUI |
* | | | |/ / \ \ | | | |
* `----------------------------' '------''--------------------'
*/
[_ADJUST] = LAYOUT(
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_SLCK, KC_INS, KC_PAUSE, XXXXXXX, XXXXXXX, XXXXXXX,
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_NLCK, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI,
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD,
_______, _______, _______, _______, _______, _______, _______, _______
)
};
layer_state_t layer_state_set_user(layer_state_t state) {
state = update_tri_layer_state(state, _RAISE, _LOWER, _ADJUST);
return state;
}
//SSD1306 OLED update loop, make sure to enable OLED_ENABLE=yes in rules.mk
#ifdef OLED_ENABLE
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
if (is_keyboard_master()) {
return OLED_ROTATION_270;
} else {
return OLED_ROTATION_0;
}
}
void render_lily58_logo(void) {
static const char PROGMEM lily58_logo[] = {
// 'logo', 128x32px
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xc0, 0x40, 0x40, 0xc0, 0x80, 0x80, 0x80, 0x00, 0x00,
0x80, 0xe0, 0x70, 0x3c, 0x0e, 0x06, 0x0e, 0x3c, 0x70, 0xe0, 0x80, 0x00, 0x00, 0xc0, 0xc0, 0x00,
0xc0, 0xc0, 0x00, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x80,
0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x80, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x80, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x80, 0x80, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xfc, 0xc0, 0x80, 0x80, 0x80, 0x81, 0x83, 0x83,
0x07, 0x07, 0x0c, 0x18, 0x70, 0xe0, 0x80, 0x00, 0x00, 0x01, 0xff, 0xfc, 0x80, 0xb6, 0xb6, 0x80,
0xb0, 0xb0, 0x00, 0x36, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf1, 0x00, 0x00, 0x00, 0x00, 0xff,
0xff, 0x00, 0x00, 0x00, 0x30, 0xf0, 0xf0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xf0, 0xf0,
0x30, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xe1, 0x71, 0x71, 0xf1, 0xf1, 0xe1, 0xc1, 0x81, 0x00, 0x00,
0x00, 0x00, 0x0c, 0x3f, 0xff, 0xf3, 0xe1, 0xc1, 0xc1, 0x81, 0x81, 0xc3, 0xff, 0x7f, 0x1c, 0x00,
0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x20, 0x70, 0x78, 0xdc, 0xcc, 0x86, 0x06, 0x03, 0x03, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0x03, 0x02, 0x06, 0x84, 0xe1, 0xfb, 0x38, 0x1c, 0x0c, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x03, 0x03, 0x06, 0x86, 0xcc, 0xdc, 0x78, 0x70, 0x20, 0x00, 0xff, 0xff, 0x80, 0x80,
0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff,
0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x03, 0x1f, 0x7e, 0xf8, 0xe0, 0xf0, 0x7e, 0x1f, 0x03, 0x00,
0x00, 0x00, 0x00, 0xe0, 0xe0, 0xc0, 0xc0, 0x80, 0x80, 0x80, 0xc0, 0xe1, 0xff, 0x7f, 0x3f, 0x00,
0x00, 0x00, 0x3e, 0xff, 0xff, 0xc1, 0xc0, 0x80, 0x81, 0x81, 0xc3, 0xc3, 0xff, 0xfe, 0x3c, 0x00,
0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00,
0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x03, 0x03, 0x06, 0x06, 0x06, 0x04, 0x04, 0x04, 0x04, 0x06,
0x06, 0x02, 0x03, 0x01, 0x01, 0x00, 0x01, 0x01, 0x03, 0x02, 0x06, 0x06, 0x04, 0x04, 0x04, 0x04,
0x06, 0x06, 0x06, 0x03, 0x03, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
0x01, 0x01, 0x01, 0x00, 0x00, 0x60, 0x60, 0x70, 0x38, 0x1f, 0x0f, 0x03, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00
};
oled_write_raw_P(lily58_logo, sizeof(lily58_logo));
}
# define KEYLOG_LEN 6
char keylog_str[KEYLOG_LEN] = {};
uint8_t keylogs_str_idx = 0;
uint16_t log_timer = 0;
const char code_to_name[60] = {
' ', ' ', ' ', ' ', 'a', 'k', 'x', 'i', 'p', 'e',
',', 'c', 'd', 't', 's', 'r', 'q', ' ', 'l', 'j',
'b', 'o', 'u', 'e', 'v', '.', 'e', 'y', '^', 'a',
' ', ' ', ' ', '(', ')', '@', '+', '-', '/', '*',
'R', 'E', 'B', 'T', '_', '-', '=', '[', ']', '\\',
'#', ';', '\'', '`', ',', '.', '/', ' ', ' ', ' '};
void add_keylog(uint16_t keycode) {
if ((keycode >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX) || (keycode >= QK_LAYER_TAP && keycode <= QK_LAYER_TAP_MAX)) {
keycode = keycode & 0xFF;
}
for (uint8_t i = KEYLOG_LEN - 1; i > 0; i--) {
keylog_str[i] = keylog_str[i - 1];
}
if (keycode < 60) {
keylog_str[0] = code_to_name[keycode];
}
keylog_str[KEYLOG_LEN - 1] = 0;
log_timer = timer_read();
}
void update_log(void) {
if (timer_elapsed(log_timer) > 750) {
add_keylog(0);
}
}
void render_keylogger_status(void) {
oled_write_P(PSTR("KLogr"), false);
oled_write(keylog_str, false);
}
void render_default_layer_state(void) {
oled_write_P(PSTR("Layer"), false);
oled_write_P(PSTR(" "), false);
switch (get_highest_layer(layer_state)) {
case _BEPO:
oled_write_P(PSTR("BEPO"), false);
break;
case _LOWER:
oled_write_ln_P(PSTR("LOW"), false);
break;
case _RAISE:
oled_write_P(PSTR("HIGH"), false);
break;
case _ADJUST:
oled_write_ln_P(PSTR("ADJ"), false);
break;
default:
oled_write_ln_P(PSTR("Undefined"), false);
}
}
void render_keylock_status(led_t led_state) {
oled_write_ln_P(PSTR("Lock"), false);
oled_write_P(PSTR(" "), false);
oled_write_P(PSTR("N"), led_state.num_lock);
oled_write_P(PSTR("C"), led_state.caps_lock);
oled_write_ln_P(PSTR("S"), led_state.scroll_lock);
}
void render_mod_status(uint8_t modifiers) {
oled_write_ln_P(PSTR("Mods"), false);
oled_write_P(PSTR(" "), false);
oled_write_P(PSTR("S"), (modifiers & MOD_MASK_SHIFT));
oled_write_P(PSTR("C"), (modifiers & MOD_MASK_CTRL));
oled_write_P(PSTR("A"), (modifiers & MOD_MASK_ALT));
oled_write_P(PSTR("G"), (modifiers & MOD_MASK_GUI));
}
void render_status_main(void) {
// Show keyboard layout
render_default_layer_state();
// Add a empty line
oled_write_P(PSTR("-----"), false);
// Show host keyboard led status
render_keylock_status(host_keyboard_led_state());
// Add a empty line
oled_write_P(PSTR("-----"), false);
// Show modifier status
render_mod_status(get_mods());
// Add a empty line
oled_write_P(PSTR("-----"), false);
render_keylogger_status();
}
bool oled_task_user(void) {
update_log();
if (is_keyboard_master()) {
render_status_main(); // Renders the current keyboard state (layer, lock, caps, scroll, etc)
} else {
render_lily58_logo();
}
return false;
}
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
if (record->event.pressed) {
add_keylog(keycode);
}
//return true;
//intercepting hold/tap to change hold function
switch (keycode) {
case MT(KC_CAPS, KC_ESC):
if (!record->tap.count && record->event.pressed) {
tap_code(KC_CAPS); // Intercept hold function to send Caps Lock
return false;
}
return true; // Return true for normal processing of tap keycode
case MT(BP_CCED, BP_C):
if (!record->tap.count && record->event.pressed) {
tap_code(BP_CCED); // Intercept hold function to send ç
return false;
}
return true; // Return true for normal processing of tap keycode
}
return true;
}
#endif // OLED_ENABLE
// Rotary encoder related code
#ifdef ENCODER_ENABLE
bool encoder_update_user(uint8_t index, bool clockwise) {
if (index == 0) { // Encoder on master side
if(IS_LAYER_ON(_RAISE)) { // on Raise layer
// Cursor control
if (clockwise) {
tap_code(KC_MNXT);
} else {
tap_code(KC_MPRV);
}
}
else {
if (clockwise) {
tap_code(KC_VOLD);
} else {
tap_code(KC_VOLU);
}
}
}
else if (index == 1) { // Encoder on slave side
if(IS_LAYER_ON(_LOWER)) { // on Lower layer
//
if (clockwise) {
tap_code(KC_RIGHT);
} else {
tap_code(KC_LEFT);
}
}
else {
if (clockwise) {
tap_code(KC_DOWN);
} else {
tap_code(KC_UP);
}
}
}
return false;
}
#endif
//layer led modification
// Light LEDs 6 to 9 and 12 to 15 red when caps lock is active. Hard to ignore!
const rgblight_segment_t PROGMEM my_capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS(
{0, 6, HSV_RED}, // Light 6 LEDs, starting with LED 0
{35, 6, HSV_RED} // Light 6 LEDs, starting with LED 35
);
// Now define the array of layers. Later layers take precedence
const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST(
my_capslock_layer
);
void keyboard_post_init_user(void) {
// Enable the LED layers
rgblight_layers = my_rgb_layers;
}
bool led_update_user(led_t led_state) {
rgblight_set_layer_state(0, led_state.caps_lock);
return true;
}

View File

@ -0,0 +1,2 @@
EXTRAKEY_ENABLE = yes
OLED_ENABLE = yes

View File

@ -0,0 +1,41 @@
/*
Copyright 2021 Tyler Tolley <thattolleyguy@gmail.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
/* Use I2C or Serial, not both */
#define USE_SERIAL
/* Select hand configuration */
// #define MASTER_LEFT
#define EE_HANDS
#undef RGBLED_NUM
#undef RGB_DI_PIN
#define RGB_DI_PIN C6
#define RGBLED_NUM 14 // Number of LEDs
#define RGBLED_SPLIT { 7, 7 }
#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
#define RGBLIGHT_EFFECT_TWINKLE

View File

@ -0,0 +1,89 @@
/*
Copyright 2021 Tyler Tolley <thattolleyguy@gmail.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
// 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 dactyl_layers {
_QWERTY,
_NUM,
_SYMB,
_ADJUST
};
enum custom_keycodes {
QWERTY = SAFE_RANGE,
SYMB,
NUM,
};
// Shortcut to make keymap more readable
#define L_SYM MO(_SYMB)
#define L_NUM MO(_NUM)
#define KC_DSKL LGUI(KC_PGUP)
#define KC_DSKR LGUI(KC_PGDN)
#define KC_CBP LCTL(KC_F11) //Clipboard previous
#define KC_CBN LCTL(KC_F12) //Clipboard previous
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_QWERTY] = LAYOUT(
//┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
KC_ESC , KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 , KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,KC_BSPC ,
//├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
KC_TAB ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,DM_REC1 , DM_REC2 ,KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,KC_BSLS ,
//├────────┼────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┤
KC_LCTL ,KC_A ,KC_S ,KC_D ,KC_F ,KC_G ,DM_PLY1 , DM_PLY2 ,KC_H ,KC_J ,KC_K ,KC_L ,KC_SCLN ,KC_QUOT ,
//├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
KC_LSFT ,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,XXXXXXX ,KC_GRV , KC_DEL ,KC_INS ,KC_N ,KC_M ,KC_COMM ,KC_DOT ,KC_SLSH ,KC_RSFT ,
//├────────┼────────┼────────┼────────┼────┬───┴────┬───┼────────┼────────┤ ├────────┼────────┼───┬────┴───┬────┼────────┼────────┼────────┼────────┤
KC_CBP ,KC_CBN ,KC_DSKL ,KC_DSKR, KC_LGUI , L_NUM ,KC_ENT , KC_SPC ,L_SYM , KC_RALT , KC_PGUP ,KC_PGDN ,KC_APP ,KC_RCTL
//└────────┴────────┴────────┴────────┘ └────────┘ └────────┴────────┘ └────────┴────────┘ └────────┘ └────────┴────────┴────────┴────────┘
),
[_NUM] = LAYOUT(
//┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
XXXXXXX, KC_VOLU, KC_MPRV, KC_MPLY, KC_MSTP, KC_MNXT, XXXXXXX ,XXXXXXX, KC_PSLS, KC_PAST, KC_PMNS, _______,
//├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
KC_MUTE, KC_VOLD, RGB_M_SW,RGB_TOG, XXXXXXX, XXXXXXX, _______ , _______ ,XXXXXXX ,KC_P7 ,KC_P8 ,KC_P9 ,KC_PMNS ,XXXXXXX ,
//├────────┼────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┤
_______, RGB_HUI, RGB_SAI, RGB_VAI, RGB_MOD, XXXXXXX, _______ , _______ ,KC_PAST ,KC_P4 ,KC_P5 ,KC_P6 ,KC_PPLS ,XXXXXXX ,
//├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
_______, RGB_HUD, RGB_SAD, RGB_VAD, RGB_RMOD,XXXXXXX, _______ ,_______ , _______ ,_______ ,XXXXXXX ,KC_P1 ,KC_P2 ,KC_P3 ,KC_PENT ,XXXXXXX ,
//├────────┼────────┼────────┼────────┼────┬───┴────┬───┼────────┼────────┤ ├────────┼────────┼───┬────┴───┬────┼────────┼────────┼────────┼────────┤
XXXXXXX ,RESET ,XXXXXXX ,XXXXXXX , KC_BTN1 , KC_BTN2 ,_______ , _______ ,_______ , KC_P0 , KC_P0 ,KC_PDOT ,KC_PENT ,KC_PSCR
//└────────┴────────┴────────┴────────┘ └────────┘ └────────┴────────┘ └────────┴────────┘ └────────┘ └────────┴────────┴────────┴────────┘
),
[_SYMB] = LAYOUT(
//┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
KC_F12 ,KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 , KC_F6 ,KC_F7 ,KC_F8 ,KC_F9 ,KC_F10 ,KC_F11 ,
//├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
_______ ,XXXXXXX ,XXXXXXX ,KC_UP ,XXXXXXX ,XXXXXXX ,_______ , _______ ,XXXXXXX ,KC_LCBR, KC_RCBR, KC_LBRC, KC_RBRC, KC_UNDS,
//├────────┼────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┤
_______ ,XXXXXXX ,KC_LEFT ,KC_DOWN ,KC_RIGHT,XXXXXXX ,_______ , _______ ,KC_INS ,KC_HOME ,KC_PPLS, KC_MINS, KC_TILD, KC_EQL,
//├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
_______ ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,_______ ,_______ , _______ ,_______ ,XXXXXXX ,KC_END ,XXXXXXX ,XXXXXXX ,XXXXXXX ,_______ ,
//├────────┼────────┼────────┼────────┼────┬───┴────┬───┼────────┼────────┤ ├────────┼────────┼───┬────┴───┬────┼────────┼────────┼────────┼────────┤
_______ ,_______ ,_______ ,_______ , _______ , _______ ,_______ , _______ ,_______ , XXXXXXX , XXXXXXX ,XXXXXXX ,RESET ,XXXXXXX
//└────────┴────────┴────────┴────────┘ └────────┘ └────────┴────────┘ └────────┴────────┘ └────────┘ └────────┴────────┴────────┴────────┘
)
};

View File

@ -0,0 +1 @@
# The default keymap for Redox

View File

@ -0,0 +1 @@
DYNAMIC_MACRO_ENABLE = yes

View File

@ -0,0 +1,155 @@
/*
Copyright 2021 RuckerMachine
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 0x524E /* RN (RMKeebs Numpad) */
#define DEVICE_VER 0x0001
#define MANUFACTURER RMKeebs
#define PRODUCT rm_numpad
/* key matrix size */
#define MATRIX_ROWS 6
#define MATRIX_COLS 5
/*
* 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 { B4, F7, C7, C6, F1, F0 }
#define MATRIX_COL_PINS { F4, F5, F6, B5, B6 }
#define UNUSED_PINS
/* COL2ROW, ROW2COL */
#define DIODE_DIRECTION COL2ROW
/* define encoder pins */
#define ENCODERS_PAD_A { D7 }
#define ENCODERS_PAD_B { D4 }
/*
* Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN.
*
* #define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6
*/
//#define LED_NUM_LOCK_PIN B0
//#define LED_CAPS_LOCK_PIN B1
//#define LED_SCROLL_LOCK_PIN B2
//#define LED_COMPOSE_PIN B3
//#define LED_KANA_PIN B4
//#define BACKLIGHT_PIN B7
//#define BACKLIGHT_LEVELS 3
//#define BACKLIGHT_BREATHING
//#define RGB_DI_PIN E2
//#ifdef RGB_DI_PIN
//# define RGBLED_NUM 16
//# define RGBLIGHT_HUE_STEP 8
//# define RGBLIGHT_SAT_STEP 8
//# define RGBLIGHT_VAL_STEP 8
//# define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
//# define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
/*== all animations enable ==*/
//# define RGBLIGHT_ANIMATIONS
/*== or choose animations ==*/
//# define RGBLIGHT_EFFECT_BREATHING
//# define RGBLIGHT_EFFECT_RAINBOW_MOOD
//# define RGBLIGHT_EFFECT_RAINBOW_SWIRL
//# define RGBLIGHT_EFFECT_SNAKE
//# define RGBLIGHT_EFFECT_KNIGHT
//# define RGBLIGHT_EFFECT_CHRISTMAS
//# define RGBLIGHT_EFFECT_STATIC_GRADIENT
//# define RGBLIGHT_EFFECT_RGB_TEST
//# define RGBLIGHT_EFFECT_ALTERNATING
/*== customize breathing effect ==*/
/*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/
//# define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64
/*==== use exp() and sin() ====*/
//# define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7
//# define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255
//#endif
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 5
/* define if matrix has ghost (lacks anti-ghosting diodes) */
//#define MATRIX_HAS_GHOST
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
//#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
//#define LOCKING_RESYNC_ENABLE
/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
* This is useful for the Windows task manager shortcut (ctrl+shift+esc).
*/
//#define GRAVE_ESC_CTRL_OVERRIDE
/*
* Force NKRO
*
* Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
* state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
* makefile for this to work.)
*
* If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
* until the next keyboard reset.
*
* NKRO may prevent your keystrokes from being detected in the BIOS, but it is
* fully operational during normal computer usage.
*
* For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
* or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
* bootmagic, NKRO mode will always be enabled until it is toggled again during a
* power-up.
*
*/
//#define FORCE_NKRO
/*
* Feature disable options
* These options are also useful to firmware size reduction.
*/
/* disable debug print */
//#define NO_DEBUG
/* disable print */
//#define NO_PRINT
/* disable action features */
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0

View File

@ -0,0 +1,102 @@
{
"keyboard_name": "rm_numpad",
"url": "https://www.rmkeebs.com/product/rm-numpad/",
"maintainer": "RuckerMachine",
"layouts": {
"LAYOUT_default": {
"layout": [
{"label": "Pause", "x": 0, "y": 0.25},
{"label": "Prev", "x": 1, "y": 0.25},
{"label": "Next", "x": 2, "y": 0.25},
{"label": "Mute", "x": 3.5, "y": 0},
{"label": "Num_Lock", "x": 0, "y": 1.25},
{"label": "/", "x": 1, "y": 1.25},
{"label": "*", "x": 2, "y": 1.25},
{"label": "-", "x": 3, "y": 1.25},
{"label": "7", "x": 0, "y": 2.25},
{"label": "8", "x": 1, "y": 2.25},
{"label": "9", "x": 2, "y": 2.25},
{"label": "+", "x": 3, "y": 2.25, "h": 2},
{"label": "4", "x": 0, "y": 3.25},
{"label": "5", "x": 1, "y": 3.25},
{"label": "6", "x": 2, "y": 3.25},
{"label": "1", "x": 0, "y": 4.25},
{"label": "2", "x": 1, "y": 4.25},
{"label": "3", "x": 2, "y": 4.25},
{"label": "Enter", "x": 3, "y": 4.25, "h": 2},
{"label": "0", "x": 0, "y": 5.25, "w": 2},
{"label": ".", "x": 2, "y": 5.25}
]
},
"LAYOUT_split_plus": {
"layout": [
{"label": "Pause", "x": 0, "y": 0.25},
{"label": "Prev", "x": 1, "y": 0.25},
{"label": "Next", "x": 2, "y": 0.25},
{"label": "Mute", "x": 3.5, "y": 0},
{"label": "Num_Lock", "x": 0, "y": 1.25},
{"label": "/", "x": 1, "y": 1.25},
{"label": "*", "x": 2, "y": 1.25},
{"label": "-", "x": 3, "y": 1.25},
{"label": "7", "x": 0, "y": 2.25},
{"label": "8", "x": 1, "y": 2.25},
{"label": "9", "x": 2, "y": 2.25},
{"label": "=", "x": 3, "y": 2.25},
{"label": "4", "x": 0, "y": 3.25},
{"label": "5", "x": 1, "y": 3.25},
{"label": "6", "x": 2, "y": 3.25},
{"label": "+", "x": 3, "y": 3.25},
{"label": "1", "x": 0, "y": 4.25},
{"label": "2", "x": 1, "y": 4.25},
{"label": "3", "x": 2, "y": 4.25},
{"label": "Enter", "x": 3, "y": 4.25, "h": 2},
{"label": "0", "x": 0, "y": 5.25, "w": 2},
{"label": ".", "x": 2, "y": 5.25}
]
},
"LAYOUT_ortho": {
"layout": [
{"label": "Pause", "x": 0, "y": 0.25},
{"label": "Prev", "x": 1, "y": 0.25},
{"label": "Next", "x": 2, "y": 0.25},
{"label": "Mute", "x": 3.5, "y": 0},
{"label": "Num_Lock", "x": 0, "y": 1.25},
{"label": "/", "x": 1, "y": 1.25},
{"label": "*", "x": 2, "y": 1.25},
{"label": "-", "x": 3, "y": 1.25},
{"label": "7", "x": 0, "y": 2.25},
{"label": "8", "x": 1, "y": 2.25},
{"label": "9", "x": 2, "y": 2.25},
{"label": "=", "x": 3, "y": 2.25},
{"label": "4", "x": 0, "y": 3.25},
{"label": "5", "x": 1, "y": 3.25},
{"label": "6", "x": 2, "y": 3.25},
{"label": "+", "x": 3, "y": 3.25},
{"label": "1", "x": 0, "y": 4.25},
{"label": "2", "x": 1, "y": 4.25},
{"label": "3", "x": 2, "y": 4.25},
{"label": "Enter", "x": 3, "y": 4.25},
{"label": "0", "x": 0, "y": 5.25},
{"label": "00", "x": 1, "y": 5.25},
{"label": ".", "x": 2, "y": 5.25},
{"label": "Delete", "x": 3, "y": 5.25}
]
}
}
}

View File

@ -0,0 +1,32 @@
/* Copyright 2021 RuckerMachine
*
* 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 */
LAYOUT_numpad_6x4(
KC_MPLY, KC_MPRV, KC_MNXT, KC_MUTE,
KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
KC_P7, KC_P8, KC_P9, KC_PPLS,
KC_P4, KC_P5, KC_P6,
KC_P1, KC_P2, KC_P3, KC_PENT,
KC_P0, KC_PDOT
)
};

View File

@ -0,0 +1,5 @@
# The default keymap for rm_numpad
![Default Layout](https://i.imgur.com/APQGsvU.png)

View File

@ -0,0 +1,48 @@
/* Copyright 2021 RuckerMachine
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
enum custom_keycodes {
DBL_ZRO = SAFE_RANGE,
};
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case DBL_ZRO:
if (record->event.pressed) {
// when keycode DBL_ZRO is pressed
SEND_STRING("00");
} else {
// when keycode DBL_ZRO is released
}
break;
}
return true;
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Base */
LAYOUT_ortho_6x4(
KC_MPLY, KC_MPRV, KC_MNXT, KC_MUTE,
KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
KC_P7, KC_P8, KC_P9, KC_EQL,
KC_P4, KC_P5, KC_P6, KC_PPLS,
KC_P1, KC_P2, KC_P3, KC_PENT,
KC_P0, DBL_ZRO, KC_PDOT, KC_DEL
)
};

View File

@ -0,0 +1,4 @@
# The ortho keymap for rm_numpad
![ortho layout](https://i.imgur.com/z8Pt9R6.png)

View File

@ -0,0 +1,31 @@
/* Copyright 2021 RuckerMachine
*
* 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 */
LAYOUT_split_plus_6x4(
KC_MPLY, KC_MPRV, KC_MNXT, KC_MUTE,
KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
KC_P7, KC_P8, KC_P9, KC_EQL,
KC_P4, KC_P5, KC_P6, KC_PPLS,
KC_P1, KC_P2, KC_P3, KC_PENT,
KC_P0, KC_PDOT
)
};

View File

@ -0,0 +1,4 @@
# The split plus keymap for rm_numpad
![Split Plus](https://i.imgur.com/jd2y6ih.png)

View File

@ -0,0 +1,26 @@
# rm_numpad
![rm_numpad](https://www.rmkeebs.com/wp-content/uploads/2022/02/20220225_1953022-1024x879.jpg)
A simple numpad with the addition of a few features:
* A few additional buttons. The default keymap has these set to "Pause", "Previous Track", and "Next Track"
* A knob. The default keymap has this knob configured to change volume, and clicking the knob is set to "Mute"
* 1u or 2u key options. The "0" key, "+" key, and "Enter" key can be built out using 2u keys, like a normal numpad, or they can be built out using 2x 1u keys.
* Keyboard Maintainer: [RuckerMachine](https://github.com/RuckerMachine)
* Hardware Supported: RM Keebs RM Numpad kits available at [RMKeebs](https://www.rmkeebs.com/product/rm-numpad/)
## Bootloader
Enter the bootloader by briefly pressing the reset button on the back of the PCB. A hole in the back of the case gives you access to the button.
Make example for this keyboard (after setting up your build environment):
make rmkeebs/rm_numpad:default
Flashing example for this keyboard:
make rmkeebs/rm_numpad: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).

View File

@ -0,0 +1,31 @@
/* Copyright 2021 RuckerMachine
*
* 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 "rm_numpad.h"
#ifdef ENCODER_ENABLE
bool encoder_update_kb(uint8_t index, bool clockwise) {
if (!encoder_update_user(index, clockwise)) { return false; }
if (index == 0) {
if (clockwise) {
tap_code_delay(KC_VOLU, 10);
} else {
tap_code_delay(KC_VOLD, 10);
}
}
return true;
}
#endif

View File

@ -0,0 +1,127 @@
/* Copyright 2021 RuckerMachine
*
* 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 ___ KC_NO
/* 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.
*/
/* rm_numpad default layout
* .-------------------.
* |PAUS|PREV|NEXT|MUTE|
* |-------------------|
* |NLCK| /| *| -|
* |-------------------|
* | 7| 8| 9| |
* |--------------| |
* | 4| 5| 6| +|
* |-------------------|
* | 1| 2| 3| |
* |--------------| |
* | 0| .| Ent|
* '-------------------'
*/
#define LAYOUT_numpad_6x4( \
k00, k01, k02, k03, \
k10, k11, k12, k13, \
k20, k21, k22, \
k30, k31, k32, k24, \
k40, k41, k42, \
k51, k53, k44 \
) { \
{ k00, k01, k02, k03, ___ }, \
{ k10, k11, k12, k13, ___ }, \
{ k20, k21, k22, ___, k24 }, \
{ k30, k31, k32, ___, ___ }, \
{ k40, k41, k42, ___, k44 }, \
{ ___, k51, ___, k53, ___ } \
}
/* rm_numpad ortho layout
* .-------------------.
* |PAUS|PREV|NEXT|MUTE|
* |-------------------|
* |NLCK| /| *| -|
* |-------------------|
* | 7| 8| 9| =|
* |-------------------|
* | 4| 5| 6| +|
* |-------------------|
* | 1| 2| 3| Ent|
* |-------------------|
* | 0| 00| .| Del|
* '-------------------'
*/
#define LAYOUT_ortho_6x4( \
k00, k01, k02, k03, \
k10, k11, k12, k13, \
k20, k21, k22, k23, \
k30, k31, k32, k33, \
k40, k41, k42, k43, \
k50, k52, k53, k54 \
) { \
{ k00, k01, k02, k03, ___ }, \
{ k10, k11, k12, k13, ___ }, \
{ k20, k21, k22, k23, ___ }, \
{ k30, k31, k32, k33, ___ }, \
{ k40, k41, k42, k43, ___ }, \
{ k50, ___, k52, k53, k54 } \
}
/* rm_numpad split plus layout
* .-------------------.
* |PAUS|PREV|NEXT|MUTE|
* |-------------------|
* |NLCK| /| *| -|
* |-------------------|
* | 7| 8| 9| =|
* |-------------------|
* | 4| 5| 6| +|
* |-------------------|
* | 1| 2| 3| Ent|
* |--------------| |
* | 0| .| |
* '-------------------'
*/
#define LAYOUT_split_plus_6x4( \
k00, k01, k02, k03, \
k10, k11, k12, k13, \
k20, k21, k22, k23, \
k30, k31, k32, k33, \
k40, k41, k42, k44, \
k51, k53 \
) { \
{ k00, k01, k02, k03, ___ }, \
{ k10, k11, k12, k13, ___ }, \
{ k20, k21, k22, k23, ___ }, \
{ k30, k31, k32, k33, ___ }, \
{ k40, k41, k42, ___, k44 }, \
{ ___, k51, ___, k53, ___ } \
}

View File

@ -0,0 +1,21 @@
# 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 = no # Enable keyboard RGB underglow
AUDIO_ENABLE = no # Audio output
ENCODER_ENABLE = yes
LAYOUTS = numpad_6x4 ortho_6x4