Remove userspace keymaps (#22544)

This commit is contained in:
Joel Challis 2023-11-26 18:36:45 +00:00 committed by GitHub
parent 4908d4b1ca
commit 1ed03f498f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2738 changed files with 0 additions and 207314 deletions

View file

@ -1,47 +0,0 @@
/* Copyright 2022 Cameron Larsen <@cameronjlarsen>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
/* Select hand configuration */
#define MASTER_LEFT
// #define MASTER_RIGHT
// #define EE_HANDS
#define TAPPING_FORCE_HOLD
#define TAPPING_TERM 135
#define CAPS_WORD_IDLE_TIMEOUT 5000 // Turn off Caps Word after 5 seconds.
#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_LIMIT_VAL 120
#define RGBLIGHT_HUE_STEP 10
#define RGBLIGHT_SAT_STEP 17
#define RGBLIGHT_VAL_STEP 17
#endif
#define OLED_FONT_H "keyboards/crkbd/lib/glcdfont.c"

View file

@ -1,357 +0,0 @@
/* Copyright 2022 Cameron Larsen <@cameronjlarsen>
*
* 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 3 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 <stdio.h>
#include "features/oneshot.h"
enum layers {
_QWERTY = 0,
SYM,
NAV,
FUN,
};
// Aliases for readability
#define QWERTY DF(_QWERTY)
#define LA_SYM LT(SYM, KC_TAB)
#define LA_NAV MO(NAV)
// One shot mods
enum keycodes {
OS_SHFT = QK_USER,
OS_CTRL,
OS_ALT,
OS_GUI,
};
// Note: LAlt/Enter (ALT_ENT) is not the same thing as the keyboard shortcut Alt+Enter.
// The notation `mod/tap` denotes a key that activates the modifier `mod` when held down, and
// produces the key `tap` when tapped (i.e. pressed and released).
// clang-format off
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/*
* Base Layer: QWERTY
*
* Inspiration:
*
* https://github.com/serebrov/qmk_firmware/blob/custom/keyboards/kyria/keymaps/kyria-mini/keymap.c
*
* Notes:
* - F & J enables CAPSWORD, disables after 5 seconds
* - Left thumb CTRL and SHIFT are one shot
* - Enter is moved to ; location and ; is moved to Sym layer
* - ESC can be accessed by NAV and G
* - BKSP is accessed by NAV and Enter
* - Tab is accessed by tapping SYM layer
* - FUN layer is accessed by holding NAV and SYM layers at the same time
*
* ,----------------------------------. ,----------------------------------.
* | Q | W | E | R | T | | Y | U | I | O | P |
* |------+------+------+------+------| |------+------+------+------+------|
* | A | S | D | F | G | | H | J | K | L | Enter|
* |------+------+------+------+------. ,------+------+------+------+------|
* | Z | X | C | V | B | | N | M | , < | . > | / ? |
* `------+------+------+------+------+------. ,------+------+------+------+-------------'
* | OSM | OSM | Nav | | Sym | Space| GUI |
* | Ctrl | Shift| | | Tab | | |
* `---------------------' `--------------------'
*/
[_QWERTY] = LAYOUT_split_3x5_3(
KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y, KC_U , KC_I , KC_O , KC_P ,
KC_A , KC_S , KC_D , KC_F , KC_G , KC_H, KC_J , KC_K , KC_L , KC_ENT ,
KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N, KC_M ,KC_COMM, KC_DOT , KC_SLSH,
OS_CTRL, OS_SHFT, LA_NAV , LA_SYM , KC_SPC, OS_GUI
),
/*
* Sym Layer: Numbers and symbols
*
* Notes:
* - Symbols are grouped together and shifted symbols from middle row are on bottom row
* - Exception is angle brackets
*
* ,----------------------------------. ,----------------------------------.
* | 1 ! | 2 @ | 3 # | 4 $ | 5 % | | 6 ^ | 7 & | 8 * | 9 ( | 0 ) |
* |------+------+------+------+------| |------+------+------+------+------|
* | ` | ( | ) | ' | = | | \ | - | [ | ] | ; |
* |------+------+------+------+------+ +------+------+------+------+------|
* | ~ | < | > | " | + | | | | _ | { | } | : |
* `-------------+------+------+------+------. ,------+------+------+------+-------------'
* | | | | | | | |
* | | | | | | | |
* `--------------------' `--------------------'
*/
[SYM] = LAYOUT_split_3x5_3(
KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 ,
KC_GRV , KC_LPRN, KC_RPRN, KC_QUOT, KC_EQL , KC_BSLS, KC_MINS, KC_LBRC, KC_RBRC, KC_SCLN,
KC_TILD, KC_LABK, KC_RABK, KC_DQUO, KC_PLUS, KC_PIPE, KC_UNDS, KC_LCBR, KC_RCBR, KC_COLN,
_______, _______, _______, _______, _______, _______
),
/*
* Nav Layer: Navigation, Media
*
* Notes:
* - Vim style navigation keys
* - Volume and Media Keys
* - BKSP on Enter
* - DEL on /
* - Esc on G
*
* ,----------------------------------. ,----------------------------------.
* | | | | BriUp| BriDn| | Home | PgDn | PgUp | End |PrtScr|
* |------+------+------+------+------| |------+------+------+------+------|
* | GUI | Alt | Ctrl | Shift| Esc | | | | | | Bksp |
* |------+------+------+------+------+ +------+------+------+------+------|
* | | Vol- | Mute | Vol+ |NumLck| | MPrev| MPlay| MStop| MNext|Delete|
* `-------------+------+------+------+------. ,------+------+------+------+-------------'
* | | | | | | | |
* | | | | | | | |
* `--------------------' `--------------------'
*/
[NAV] = LAYOUT_split_3x5_3(
_______, _______, _______, KC_BRIU, KC_BRID, KC_HOME, KC_PGDN, KC_PGUP, KC_END , KC_PSCR,
OS_GUI , OS_ALT , OS_CTRL, OS_SHFT, KC_ESC , KC_LEFT, KC_DOWN, KC_UP , KC_RGHT, KC_BSPC,
_______, KC_VOLD, KC_MUTE, KC_VOLU, KC_NUM , KC_MPRV, KC_MPLY, KC_MSTP, KC_MNXT, KC_DEL ,
_______, _______, _______, _______, _______, _______
),
/*
* Function Layer: Function keys
*
* Notes:
* - F1-F10 on bottom row
* - F11-F12 on index finger inner row
* - Homerow mods
* - Num keys on top row
*
* ,----------------------------------. ,----------------------------------.
* | 1 ! | 2 @ | 3 # | 4 $ | 5 % | | 6 ^ | 7 & | 8 * | 9 ( | 0 ) |
* |------+------+------+------+------| |------+------+------+------+------|
* | GUI | Alt | Ctrl | Shift| F11 | | F12 | Shift| Ctrl | Alt | GUI |
* |------+------+------+------+------+ +------+------+------+------+------|
* | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 |
* `-------------+------+------+------+------. ,------+------+------+------+-------------'
* | | | | | | | |
* | | | | | | | |
* `--------------------' `--------------------'
*/
[FUN] = LAYOUT_split_3x5_3(
KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 ,
OS_GUI , OS_ALT , OS_CTRL, OS_SHFT, KC_F11 , KC_F12 , OS_SHFT, OS_CTRL, OS_ALT , OS_GUI ,
KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 ,
_______, _______, _______, _______, _______, _______
),
};
enum combo_events {
CAPS_COMBO
};
const uint16_t PROGMEM caps_combo[] = {KC_F, KC_J, COMBO_END};
combo_t key_combos[] = {
[CAPS_COMBO] = COMBO_ACTION(caps_combo),
// Other combos...C
};
void process_combo_event(uint16_t combo_index, bool pressed) {
switch(combo_index) {
case CAPS_COMBO:
if (pressed) {
caps_word_on(); // Activate Caps Word!
}
break;
// Other combos...
}
}
bool is_oneshot_cancel_key(uint16_t keycode){
switch (keycode) {
case LA_NAV:
return true;
default:
return false;
}
}
bool is_oneshot_ignored_key(uint16_t keycode){
switch (keycode) {
case LA_NAV:
case LA_SYM:
case OS_SHFT:
case OS_CTRL:
case OS_ALT:
case OS_GUI:
return true;
default:
return false;
}
}
oneshot_state os_shft_state = os_up_unqueued;
oneshot_state os_ctrl_state = os_up_unqueued;
oneshot_state os_alt_state = os_up_unqueued;
oneshot_state os_cmd_state = os_up_unqueued;
bool caps_word_press_user(uint16_t keycode) {
switch (keycode) {
// Keycodes that continue Caps Word, with shift applied.
case KC_A ... KC_Z:
case KC_MINS:
add_weak_mods(MOD_BIT(KC_LSFT)); // Apply shift to the next key.
return true;
// Keycodes that continue Caps Word, without shifting.
case KC_1 ... KC_0:
case KC_BSPC:
case KC_DEL:
case KC_UNDS:
return true;
default:
return false; // Deactivate Caps Word.
}
}
layer_state_t layer_state_set_user(layer_state_t state){
return update_tri_layer_state(state, SYM, NAV, FUN);
}
#ifdef OLED_ENABLE
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
if (!is_keyboard_master()) {
return OLED_ROTATION_180; // flips the display 180 degrees if offhand
}
return rotation;
}
void oled_render_layer_state(void) {
oled_write_P(PSTR("Layer: "), false);
switch (get_highest_layer(layer_state | default_layer_state)) {
case _QWERTY:
oled_write_ln_P(PSTR("QWERTY"), false);
break;
case SYM:
oled_write_ln_P(PSTR("Sym"), false);
break;
case NAV:
oled_write_ln_P(PSTR("Nav"), false);
break;
case FUN:
oled_write_ln_P(PSTR("Function"), false);
break;
default:
oled_write_ln_P(PSTR("Undefined"), false);
}
}
char keylog_str[24] = {};
const char code_to_name[60] = {
' ', ' ', ' ', ' ', 'a', 'b', 'c', 'd', 'e', 'f',
'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p',
'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
'1', '2', '3', '4', '5', '6', '7', '8', '9', '0',
'R', 'E', 'B', 'T', '_', '-', '=', '[', ']', '\\',
'#', ';', '\'', '`', ',', '.', '/', ' ', ' ', ' '};
void set_keylog(uint16_t keycode, keyrecord_t *record) {
char name = ' ';
if ((keycode >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX) ||
(keycode >= QK_LAYER_TAP && keycode <= QK_LAYER_TAP_MAX)) { keycode = keycode & 0xFF; }
if (keycode < 60) {
name = code_to_name[keycode];
}
// update keylog
snprintf(keylog_str, sizeof(keylog_str), "%dx%d, k%2d : %c",
record->event.key.row, record->event.key.col,
keycode, name);
}
void oled_render_keylog(void) {
oled_write(keylog_str, false);
}
void render_bootmagic_status(bool status) {
/* Show Ctrl-Gui Swap options */
static const char PROGMEM logo[][2][3] = {
{{0x97, 0x98, 0}, {0xb7, 0xb8, 0}},
{{0x95, 0x96, 0}, {0xb5, 0xb6, 0}},
};
if (status) {
oled_write_ln_P(logo[0][0], false);
oled_write_ln_P(logo[0][1], false);
} else {
oled_write_ln_P(logo[1][0], false);
oled_write_ln_P(logo[1][1], false);
}
}
void oled_render_logo(void) {
static const char PROGMEM crkbd_logo[] = {
0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94,
0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4,
0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4,
0};
oled_write_P(crkbd_logo, false);
}
bool oled_task_user(void) {
if (is_keyboard_master()) {
oled_render_layer_state();
oled_render_keylog();
} else {
oled_render_logo();
}
return false;
}
bool process_record_user(uint16_t keycode, keyrecord_t* record) {
if (!process_caps_word(keycode, record)) { return false; }
// Your macros ...
update_oneshot(
&os_shft_state, KC_LSFT, OS_SHFT,
keycode, record
);
update_oneshot(
&os_ctrl_state, KC_LCTL, OS_CTRL,
keycode, record
);
update_oneshot(
&os_alt_state, KC_LALT, OS_ALT,
keycode, record
);
update_oneshot(
&os_cmd_state, KC_LGUI, OS_GUI,
keycode, record
);
if (record->event.pressed) {
set_keylog(keycode, record);
}
return true;
}
#endif

View file

@ -1,14 +0,0 @@
BOOTMAGIC_ENABLE = no
BOOLOADER = atmel-dfu
OLED_ENABLE = yes
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
COMMAND_ENABLE = no # Disables the command feature
COMBO_ENABLE = yes
MOUSEKEY_ENABLE = no
CONSOLE_ENABLE = no
AUDIO_ENABLE = no
MIDI_ENABLE = no
BLUETOOTH_ENABLE = no
BACKLIGHT_ENABLE = no
CAPS_WORD_ENABLE = yes
CUSTOM_ONESHOT_ENABLE = yes

View file

@ -1,20 +0,0 @@
#pragma once
#define EE_HANDS
#define OLED_DISABLE_TIMEOUT
#define TAPPING_TERM_PER_KEY
#if defined(RGB_MATRIX_ENABLE)
# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 120 // limits maximum brightness of LEDs to 200 out of 255. If not defined maximum brightness is set to 255
# define RGB_MATRIX_HUE_STEP 8
# define RGB_MATRIX_SAT_STEP 8
# define RGB_MATRIX_VAL_STEP 5
# define RGB_MATRIX_SPD_STEP 10
#endif
// comment out unnecessary layouts
#define ENABLE_QWERTY
#define ENABLE_COLEMAK
#define ENABLE_DVORAK
#define ENABLE_WORKMAN

View file

@ -1,76 +0,0 @@
#include "curry.h"
#define LAYOUT_crkbd_base( \
K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \
K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \
K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A \
) \
LAYOUT_wrapper( \
KC_ESC, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, KC_MINS, \
MT_TAB, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, KC_QUOT, \
OS_LSFT, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, OS_RSFT, \
QK_LEAD,OS_LALT, SP_LWER, ET_RAIS, KC_BSPC, KC_RGUI \
)
#define LAYOUT_crkbd_base_wrapper(...) LAYOUT_crkbd_base(__VA_ARGS__)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
#if defined(ENABLE_QWERTY)
[_QWERTY] = LAYOUT_crkbd_base_wrapper(
_________________QWERTY_L1_________________, _________________QWERTY_R1_________________,
_________________QWERTY_L2_________________, _________________QWERTY_R2_________________,
_________________QWERTY_L3_________________, _________________QWERTY_R3_________________
),
#endif
#if defined(ENABLE_COLEMAK)
[_COLEMAK] = LAYOUT_crkbd_base_wrapper(
_________________COLEMAK_L1________________, _________________COLEMAK_R1________________,
_________________COLEMAK_L2________________, _________________COLEMAK_R2________________,
_________________COLEMAK_L3________________, _________________COLEMAK_R3________________
),
#endif
#if defined(ENABLE_DVORAK)
[_DVORAK] = LAYOUT_crkbd_base_wrapper(
_________________DVORAK_L1_________________, _________________DVORAK_R1_________________,
_________________DVORAK_L2_________________, _________________DVORAK_R2_________________,
_________________DVORAK_L3_________________, _________________DVORAK_R3_________________
),
#endif
#if defined(ENABLE_WORKMAN)
[_WORKMAN] = LAYOUT_crkbd_base_wrapper(
_________________WORKMAN_L1________________, _________________WORKMAN_R1________________,
_________________WORKMAN_L2________________, _________________WORKMAN_R2________________,
_________________WORKMAN_L3________________, _________________WORKMAN_R3________________
),
#endif
[_MODS] = LAYOUT_wrapper(
_______, ___________________BLANK___________________, ___________________BLANK___________________, _______,
_______, ___________________BLANK___________________, ___________________BLANK___________________, _______,
KC_LSFT, ___________________BLANK___________________, ___________________BLANK___________________, KC_RSFT,
_______, _______, _______, _______, _______, _______
),
[_LOWER] = LAYOUT_wrapper(
KC_F11, _________________LOWER_L1__________________, _________________LOWER_R1__________________, KC_F12,
KC_GRV, _________________LOWER_L2__________________, _________________LOWER_R2__________________, KC_PIPE,
_______, _________________LOWER_L3__________________, _________________LOWER_R3__________________, _______,
_______, _______, _______, _______, _______, _______
),
[_RAISE] = LAYOUT_wrapper(
_______, _________________RAISE_L1__________________, _________________RAISE_R1__________________, _______,
_______, _________________RAISE_L2__________________, _________________RAISE_R2__________________, KC_BSLS,
_______, _________________RAISE_L3__________________, _________________RAISE_R3__________________, _______,
_______, _______, _______, _______, _______, _______
),
[_ADJUST] = LAYOUT_wrapper(
KC_MAKE, _________________ADJUST_L1_________________, _________________ADJUST_R1_________________, KC_RST,
VRSN, _________________ADJUST_L2_________________, _________________ADJUST_R2_________________, EE_CLR,
MG_NKRO, _________________ADJUST_L3_________________, _________________ADJUST_R3_________________, RGB_IDL,
_______, _______, _______, _______, TG_MODS, _______
)
};

View file

@ -1,16 +0,0 @@
# Build Options
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
MOUSEKEY_ENABLE = no
CONSOLE_ENABLE = no
COMMAND_ENABLE = no
RGBLIGHT_ENABLE = no
RGB_MATRIX_ENABLE = yes
OLED_ENABLE = yes
BOOTLOADER = atmel-dfu
SPLIT_TRANSPORT = mirror

View file

@ -1,133 +0,0 @@
/*
This is the c configuration file for the keymap
Copyright 2012 Jun Wako <wakojun@gmail.com>
Copyright 2015 Jack Humbert
Copyright 2021 Dane Evans
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_MATRIX_I2C
/* Select hand configuration */
#define MASTER_LEFT
// #define MASTER_RIGHT
// #define EE_HANDS
#define CUSTOM_FONT
#define CUSTOM_LAYER_READ //if you remove this it causes issues - needs better guarding
#define QUICK_TAP_TERM 0
#define TAPPING_TERM 200
#define RGBLIGHT_SLEEP
//
#define RGBLIGHT_LAYERS
#ifdef RGBLIGHT_ENABLE
#undef RGBLED_NUM
#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 RGBLED_NUM 54
//#define RGBLED_SPLIT 27
//#define RGBLED_SPLIT { 27, 27 } // haven't figured out how to use this yet
#define RGBLED_NUM 27
#define RGBLIGHT_LIMIT_VAL 120
#define RGBLIGHT_HUE_STEP 10
#define RGBLIGHT_SAT_STEP 17
#define RGBLIGHT_VAL_STEP 17
#endif
#ifdef RGB_MATRIX_ENABLE
# define RGB_MATRIX_KEYPRESSES // reacts to keypresses
// # define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses)
# define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended
# define RGB_MATRIX_FRAMEBUFFER_EFFECTS
// # define RGB_MATRIX_LED_PROCESS_LIMIT (RGB_MATRIX_LED_COUNT + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness)
// # define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness)
# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 // limits maximum brightness of LEDs to 150 out of 255. Higher may cause the controller to crash.
#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_GRADIENT_LEFT_RIGHT
# define RGB_MATRIX_HUE_STEP 8
# define RGB_MATRIX_SAT_STEP 8
# define RGB_MATRIX_VAL_STEP 8
# define RGB_MATRIX_SPD_STEP 10
// RGB Matrix Animation modes. Explicitly enabled
// For full list of effects, see:
// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects
// # define ENABLE_RGB_MATRIX_ALPHAS_MODS
# define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
# define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
# define ENABLE_RGB_MATRIX_BREATHING
# define ENABLE_RGB_MATRIX_BAND_SAT
# define ENABLE_RGB_MATRIX_BAND_VAL
# define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
# define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
# define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
# define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
# define ENABLE_RGB_MATRIX_CYCLE_ALL
# define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
# define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
# define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN
# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
# define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
# define ENABLE_RGB_MATRIX_CYCLE_SPIRAL
# define ENABLE_RGB_MATRIX_DUAL_BEACON
# define ENABLE_RGB_MATRIX_RAINBOW_BEACON
# define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
# define ENABLE_RGB_MATRIX_RAINDROPS
# define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
# define ENABLE_RGB_MATRIX_HUE_BREATHING
# define ENABLE_RGB_MATRIX_HUE_PENDULUM
# define ENABLE_RGB_MATRIX_HUE_WAVE
# define ENABLE_RGB_MATRIX_PIXEL_RAIN
# define ENABLE_RGB_MATRIX_PIXEL_FLOW
# define ENABLE_RGB_MATRIX_PIXEL_FRACTAL
// enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined
// # define ENABLE_RGB_MATRIX_TYPING_HEATMAP
# define ENABLE_RGB_MATRIX_DIGITAL_RAIN
// enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined
# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
# define ENABLE_RGB_MATRIX_SOLID_REACTIVE
// # define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
// # define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
# define ENABLE_RGB_MATRIX_SPLASH
# define ENABLE_RGB_MATRIX_MULTISPLASH
# define ENABLE_RGB_MATRIX_SOLID_SPLASH
# define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
#endif

View file

@ -1,396 +0,0 @@
/* Copyright 2020 Dane Evans
*
* 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/>.
*/
// CRKBD
#include QMK_KEYBOARD_H
char layer_state_str[24];
enum userspace_layers {
_DEFAULTS = 0,
_COLEMAK = 0,
_COLEMAKDH,
_QWERTY,
_NUM,
_SYM,
_COMMAND,
_NUMPAD,
_SWITCH,
_MOVE,
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// colemak
[_COLEMAK] = LAYOUT(
//,-----------------------------------------------------. ,-----------------------------------------------------.
LT(_NUMPAD,KC_TAB), KC_Q, KC_W, KC_F, KC_P, KC_G, LT(_SWITCH,KC_J), KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_LSFT, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I,LT(_NUMPAD,KC_O),KC_QUOT,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
KC_LGUI, MO(_NUM), KC_SPC, KC_ENT, MO(_SYM), KC_LALT
//`--------------------------' `--------------------------'
),
// colemak DH
[_COLEMAKDH] = LAYOUT(
//,-----------------------------------------------------. ,-----------------------------------------------------.
LT(_NUMPAD,KC_TAB), KC_Q, KC_W, KC_F, KC_P, KC_B, LT(_SWITCH,KC_J), KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_LSFT, KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I,LT(_NUMPAD,KC_O),KC_QUOT,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_LCTL, KC_Z, KC_X, KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
KC_LGUI, MO(_NUM), KC_SPC, KC_ENT, MO(_SYM), KC_LALT
//`--------------------------' `--------------------------'
),
// qwerty
[_QWERTY] = LAYOUT(
//,-----------------------------------------------------. ,-----------------------------------------------------.
KC_TRNS, KC_Q, KC_W, KC_E, KC_R, KC_T, LT(_SWITCH,KC_Y), KC_U, KC_I, KC_O, KC_P, KC_TRNS,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_TRNS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, LT(_NUMPAD,KC_SCLN), KC_TRNS,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_TRNS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_TRNS,
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
//`--------------------------' `--------------------------'
),
// numbers - L thumb
[_NUM] = 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_TRNS, KC_NO, KC_NO, KC_NO, KC_WH_U, KC_PGUP, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_NO, KC_DEL,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_TRNS, KC_NO, KC_NO, KC_NO, KC_WH_D, KC_PGDN, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(_COMMAND), KC_TRNS
//`--------------------------' `--------------------------'
),
// symbols - R thumb
[_SYM] = LAYOUT(
//,-----------------------------------------------------. ,-----------------------------------------------------.
KC_ESC, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MINS, KC_EQL, KC_LCBR, KC_RCBR, KC_PIPE, KC_GRV,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_UNDS, KC_PLUS, KC_LBRC, KC_RBRC, KC_BSLS, KC_TILD,
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
KC_TRNS, MO(_COMMAND), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
//`--------------------------' `--------------------------'
),
// commands - both thumbs
[_COMMAND] = LAYOUT(
//,-----------------------------------------------------. ,-----------------------------------------------------.
QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_NO,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, DF(1), DF(0), C(G(KC_LEFT)), KC_NO, KC_NO, C(G(KC_RGHT)), KC_NO, KC_NO,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, KC_NO, DF(2), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
//`--------------------------' `--------------------------'
),
// numpad
[_NUMPAD] = LAYOUT(
//,-----------------------------------------------------. ,-----------------------------------------------------.
LT(0,KC_NO), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_CIRC, KC_P7, KC_P8, KC_P9, KC_ASTR, KC_BSPC,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MINS, KC_P4, KC_P5, KC_P6, KC_EQL, KC_DEL,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PLUS, KC_P1, KC_P2, KC_P3, KC_SLSH, KC_NO,
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
OSM(MOD_MEH), KC_NO, KC_TRNS, KC_ENT, KC_P0, KC_PDOT
//`--------------------------' `--------------------------'
),
// layer switcher
[_SWITCH] = LAYOUT(
//,-----------------------------------------------------. ,-----------------------------------------------------.
TO(0), TO(1), TO(2), TO(3), TO(4), TO(5), KC_NO, TO(7), KC_NO, KC_NO, KC_NO, QK_BOOT,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_NO, KC_NO, KC_BRIU, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, EE_CLR,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_SYSTEM_SLEEP, KC_NO, KC_BRID, 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, KC_NO
//`--------------------------' `--------------------------'
),
// amovement
[_MOVE] = LAYOUT(
//,-----------------------------------------------------. ,-----------------------------------------------------.
LT(0,KC_NO), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_HOME, KC_UP, KC_PGUP, KC_NO, KC_NO, KC_NO,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_LEFT, KC_ENT, KC_RGHT, KC_NO, KC_NO, KC_NO,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_APP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_END, KC_DOWN, KC_PGDN, KC_DEL, KC_NO, KC_NO,
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
KC_NO, KC_NO, KC_NO, KC_TRNS, KC_NO, KC_NO
//`--------------------------' `--------------------------'
)
};
// it appears that these are different to the board numbering.
// when you specify n here, it lightss up n+1 on the board diagram - actually may be an entirely different pattern
// _QWERTY,
// Light on inner column and underglow
const rgblight_segment_t PROGMEM layer_qwerty_lights[] = RGBLIGHT_LAYER_SEGMENTS(
{0, 10, HSV_AZURE}
);
// _COLEMAKDH,
// Light on inner column and underglow
const rgblight_segment_t PROGMEM layer_colemakdh_lights[] = RGBLIGHT_LAYER_SEGMENTS(
{0, 10, HSV_RED}
);
// _NUM,
// Light on inner column and underglow
const rgblight_segment_t PROGMEM layer_num_lights[] = RGBLIGHT_LAYER_SEGMENTS(
{0, 10, HSV_TEAL}
);
// _SYMBOL,
// Light on inner column and underglow
const rgblight_segment_t PROGMEM layer_symbol_lights[] = RGBLIGHT_LAYER_SEGMENTS(
{0, 10, HSV_BLUE}
);
// _COMMAND,
// Light on inner column and underglow
const rgblight_segment_t PROGMEM layer_command_lights[] = RGBLIGHT_LAYER_SEGMENTS(
{0, 10, HSV_PURPLE}
);
//_NUMPAD
//havent worked out how to do each side individually either
const rgblight_segment_t PROGMEM layer_numpad_lights[] = RGBLIGHT_LAYER_SEGMENTS(
{0, 10, HSV_ORANGE}
);
const rgblight_segment_t PROGMEM layer_numpad_rh_lights[] = RGBLIGHT_LAYER_SEGMENTS(
{0, 10, HSV_ORANGE},
{10, 5, HSV_BLUE},
{15, 3, HSV_BLUE},
{18, 3, HSV_BLUE}
);
// _MOVE,
// Light on inner column and underglow
const rgblight_segment_t PROGMEM layer_move_lights[] = RGBLIGHT_LAYER_SEGMENTS(
{0, 10, HSV_PINK}
);
// _SWITCHER // light up top row
const rgblight_segment_t PROGMEM layer_switcher_lights[] = RGBLIGHT_LAYER_SEGMENTS(
{0, 6, HSV_GREEN},
{9, 2, HSV_GREEN},
{17, 2, HSV_GREEN},
{23, 2, HSV_GREEN}
);
// Now define the array of layers. Later layers take precedence
const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST(
layer_qwerty_lights,
layer_colemakdh_lights,
layer_num_lights,// overrides layer 1
layer_symbol_lights,
layer_command_lights,
layer_numpad_lights,
layer_numpad_rh_lights,
layer_move_lights,
layer_switcher_lights // Overrides other layers
);
void keyboard_post_init_user(void) {
// Enable the LED layers
rgblight_layers = my_rgb_layers;
rgblight_mode(10);// haven't found a way to set this in a more useful way
}
layer_state_t layer_state_set_user(layer_state_t state) {
rgblight_set_layer_state(0, layer_state_cmp(state, _DEFAULTS) && layer_state_cmp(default_layer_state,_QWERTY));
rgblight_set_layer_state(1, layer_state_cmp(state, _DEFAULTS) && layer_state_cmp(default_layer_state,_QWERTY));
rgblight_set_layer_state(2, layer_state_cmp(state, _NUM));
rgblight_set_layer_state(3, layer_state_cmp(state, _SYM));
rgblight_set_layer_state(4, layer_state_cmp(state, _COMMAND));
rgblight_set_layer_state(5, layer_state_cmp(state, _NUMPAD));
if (!is_keyboard_master())
rgblight_set_layer_state(6, layer_state_cmp(state, _NUMPAD));
rgblight_set_layer_state(7, layer_state_cmp(state, _MOVE));
rgblight_set_layer_state(8, layer_state_cmp(state, _SWITCH));
return state;
}
/*
bool led_update_user(led_t led_state) {
rgblight_set_layer_state(0, led_state.caps_lock);
return true;
}
*/
#ifdef OLED_ENABLE
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
if (!is_keyboard_master()) {
return OLED_ROTATION_180; // flips the display 180 degrees if offhand
}
return rotation;
}
// When add source files to SRC in rules.mk, you can use functions.
const char *read_layer_state(void);
const char *read_logo(void);
void set_keylog(uint16_t keycode, keyrecord_t *record);
const char *read_keylog(void);
const char *read_keylogs(void);
const char *read_mode_icon(bool swap);
// const char *read_host_led_state(void);
// void set_timelog(void);
// const char *read_timelog(void);
void oled_render_layer_state(void) {
char string [24];
switch (get_highest_layer(default_layer_state|layer_state))
{
case _QWERTY:
oled_write_ln_P(PSTR("Layer: QWERTY"),false);
break;
case _COLEMAK:
oled_write_ln_P(PSTR("Layer: COLEMAK"),false);
break;
case _COLEMAKDH:
oled_write_ln_P(PSTR("Layer: COLEMAKDH"),false);
break;
case _NUM:
oled_write_ln_P(PSTR("Layer: Numbers"),false);
break;
case _SYM:
oled_write_ln_P(PSTR("Layer: Symbols"),false);
break;
case _COMMAND:
oled_write_ln_P(PSTR("Layer: Command"),false);
break;
case _NUMPAD:
oled_write_ln_P(PSTR("Layer: Numpad"),false);
break;
case _MOVE:
oled_write_ln_P(PSTR("Layer: Movement"),false);
break;
case _SWITCH:
oled_write_ln_P(PSTR("Layer: Layer Switch"),false);
break;
default:
#if defined (LAYER_STATE_32BIT)
snprintf(string, sizeof(string), "%ld",layer_state);
#else
snprintf(string, sizeof(string), "%d",layer_state);
#endif
oled_write_P(PSTR("Layer: Undef-"),false);
oled_write_ln(string, false);
}
}
char keylog_str[24] = {};
const char code_to_name[60] = {
' ', ' ', ' ', ' ', 'a', 'b', 'c', 'd', 'e', 'f',
'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p',
'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
'1', '2', '3', '4', '5', '6', '7', '8', '9', '0',
'R', 'E', 'B', 'T', '_', '-', '=', '[', ']', '\\',
'#', ';', '\'', '`', ',', '.', '/', ' ', ' ', ' '};
void set_keylog(uint16_t keycode, keyrecord_t *record) {
char name = ' ';
if ((keycode >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX) ||
(keycode >= QK_LAYER_TAP && keycode <= QK_LAYER_TAP_MAX)) { keycode = keycode & 0xFF; }
if (keycode < 60) {
name = code_to_name[keycode];
}
// update keylog
snprintf(keylog_str, sizeof(keylog_str), "%dx%d, k%2d : %c",
record->event.key.row, record->event.key.col,
keycode, name);
}
void oled_render_keylog(void) {
oled_write(keylog_str, false);
}
void render_bootmagic_status(bool status) {
/* Show Ctrl-Gui Swap options */
static const char PROGMEM logo[][2][3] = {
{{0x97, 0x98, 0}, {0xb7, 0xb8, 0}},
{{0x95, 0x96, 0}, {0xb5, 0xb6, 0}},
};
if (status) {
oled_write_ln_P(logo[0][0], false);
oled_write_ln_P(logo[0][1], false);
} else {
oled_write_ln_P(logo[1][0], false);
oled_write_ln_P(logo[1][1], false);
}
}
void oled_render_logo(void) {
static const char PROGMEM crkbd_logo[] = {
0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94,
0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4,
0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4,
0};
oled_write_P(crkbd_logo, false);
}
bool oled_task_user(void) {
if (is_keyboard_master()) {
oled_render_layer_state();
oled_render_keylog();
} else {
oled_render_logo();
}
return false;
}
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
if (record->event.pressed) {
set_keylog(keycode, record);
}
return true;
}
#endif // OLED_ENABLE

View file

@ -1,4 +0,0 @@
MOUSEKEY_ENABLE = yes
EXTRAKEY_ENABLE = yes
RGBLIGHT_ENABLE = yes
OLED_ENABLE = yes

View file

@ -1,24 +0,0 @@
#pragma once
/* Select hand configuration */
#define MASTER_LEFT
// #define MASTER_RIGHT
// #define EE_HANDS
#define SWAP_SCLN
// #define QUICK_TAP_TERM 0
#define TAPPING_TERM 300
#ifdef RGBLIGHT_ENABLE
# undef RGBLED_NUM
# define RGBLIGHT_EFFECT_STATIC_GRADIENT
# define RGBLED_NUM 27
# define RGBLIGHT_LIMIT_VAL 100
# define RGBLIGHT_HUE_STEP 10
# define RGBLIGHT_SAT_STEP 17
# define RGBLIGHT_VAL_STEP 17
#endif // RGBLIGHT_ENABLE
#define OLED_FONT_H "keyboards/crkbd/lib/glcdfont.c"

View file

@ -1,67 +0,0 @@
#include QMK_KEYBOARD_H
#ifdef PROTOCOL_LUFA
# include "split_util.h"
#endif
#include "edvorakjp.h"
#define LAYOUT_wrapper(...) LAYOUT_split_3x6_3(__VA_ARGS__)
// clang-format off
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[L_EDVORAKJP_BASE] = LAYOUT_wrapper(
//,-----------------------------------------------------. ,-----------------------------------------------------.
KC_GRV, __EDVORAKJP_BASE_L1__ , __EDVORAKJP_BASE_R1__ , KC_BSLS,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_EQL, __EDVORAKJP_BASE_L2__ , __EDVORAKJP_BASE_R2__ , KC_MINS,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_ESC, __EDVORAKJP_BASE_L3__ , __EDVORAKJP_BASE_R3__ , KC_SLSH,
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
LA_TAB, LS_SPC,LOWER_TD, RAISE_TD, RC_BSPC, RG_ENT
//`--------------------------' `--------------------------'
),
[L_EDVORAKJP_LOWER] = LAYOUT_wrapper(
//,-----------------------------------------------------. ,-----------------------------------------------------.
XXXXXXX, XXXXXXX, __EDVORAKJP_BRACKET_L__ , XXXXXXX, XXXXXXX, __EDVORAKJP_BRACKET_R__ , XXXXXXX, XXXXXXX,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
__EDVORAKJP_FUNCTION_L__ , __EDVORAKJP_FUNCTION_R__ ,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_PSCR, XXXXXXX, __EDVORAKJP_PAGE__ , __EDVORAKJP_CURSOR__ , XXXXXXX, XXXXXXX,
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
KC_TRNS, KC_TRNS, XXXXXXX, KC_MAC, RC_DEL, KC_TRNS
//`--------------------------' `--------------------------'
),
[L_EDVORAKJP_RAISE] = LAYOUT_wrapper(
//,-----------------------------------------------------. ,-----------------------------------------------------.
XXXXXXX, XXXXXXX, __EDVORAKJP_SYMBOL_L__ , __EDVORAKJP_SYMBOL_R__ , XXXXXXX, XXXXXXX,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
XXXXXXX, __EDVORAKJP_NUMBER_L__ , __EDVORAKJP_NUMBER_R__ , XXXXXXX,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_PSCR, XXXXXXX, __EDVORAKJP_PAGE__ , __EDVORAKJP_CURSOR__ , XXXXXXX, XXXXXXX,
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
KC_TRNS, KC_TRNS, KC_WIN, XXXXXXX, KC_TRNS, KC_TRNS
//`--------------------------' `--------------------------'
)
};
// clang-format on
#ifdef RGBLIGHT_EFFECT_STATIC_GRADIENT
layer_state_t layer_state_set_keymap(layer_state_t state) {
rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
switch (get_highest_layer(state)) {
case L_EDVORAKJP_LOWER:
rgblight_sethsv_noeeprom(HSV_RED);
break;
case L_EDVORAKJP_RAISE:
rgblight_sethsv_noeeprom(HSV_GREEN);
break;
default: // for any other layers, or the default layer
rgblight_mode(RGBLIGHT_MODE_STATIC_GRADIENT + 3);
rgblight_sethsv(HSV_RED);
break;
}
return state;
}
#endif

View file

@ -1,56 +0,0 @@
#include <stdio.h>
#include <string.h>
#include "oled.h"
#ifdef OLED_ENABLE
void render_host_led_state(void) { oled_write(read_host_led_state(), false); }
void render_layer_state(void) {
char layer_name[17];
oled_write_P(PSTR("Layer: "), false);
switch (get_highest_layer(layer_state)) {
case L_EDVORAKJP_BASE:
oled_write_ln_P(PSTR("Default"), false);
break;
case L_EDVORAKJP_LOWER:
oled_write_ln_P(PSTR("Lower"), false);
break;
case L_EDVORAKJP_RAISE:
oled_write_ln_P(PSTR("Raise"), false);
break;
default:
snprintf(layer_name, sizeof(layer_name), "Undef-%ld", layer_state);
oled_write_ln(layer_name, false);
}
}
void render_logo(void) { oled_write(read_logo(), false); }
void render_mode_icon(bool is_windows) {
static const char logo[][2][3] = {
{{0x95, 0x96, 0}, {0xb5, 0xb6, 0}},
{{0x97, 0x98, 0}, {0xb7, 0xb8, 0}},
};
static char mode_icon[10];
snprintf(mode_icon, sizeof(mode_icon), "%s\n%s ", logo[is_windows][0], logo[is_windows][1]);
oled_write(mode_icon, false);
}
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
// flips the display 180 degrees if offhand
return is_keyboard_left() ? rotation : rotation ^ OLED_ROTATION_180;
}
bool oled_task_user(void) {
if (is_keyboard_left()) {
render_mode_icon(!get_enable_kc_lang());
render_layer_state();
render_host_led_state();
} else {
render_logo();
}
return false;
}
#endif // OLED_ENABLE

View file

@ -1,17 +0,0 @@
#pragma once
#include "edvorakjp.h"
extern bool japanese_mode;
// method prototypes defined in crkbd/lib
extern const char *read_host_led_state(void);
extern const char *read_logo(void);
extern const char *read_mode_icon(bool swap);
void render_host_led_state(void);
void render_layer_state(void);
void render_logo(void);
void render_mode_icon(bool is_windows);
oled_rotation_t oled_init_user(oled_rotation_t rotation);
void oled_task_user(void);

View file

@ -1,21 +0,0 @@
# edvorakjp
Epaew's Enhanced Dvorak layout for Japanese Programmer
see [here](/users/edvorakjp) for more informations.
## License
Copyright 2018 Ryo Maeda epaew.333@gmail.com @epaew
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/>.

View file

@ -1,28 +0,0 @@
# Build Options
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
MOUSEKEY_ENABLE = no # Mouse keys(+4700)
EXTRAKEY_ENABLE = no # Audio control and System control(+450)
CONSOLE_ENABLE = no # Console for debug(+400)
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
MIDI_ENABLE = no # MIDI controls
AUDIO_ENABLE = no # Audio output on port C6
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
SWAP_HANDS_ENABLE = no # Enable one-hand typing
TAP_DANCE_ENABLE = yes
OLED_ENABLE = yes
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# If you want to change the display of OLED, you need to change here
SRC += ./lib/host_led_state_reader.c \
./lib/logo_reader.c \
./lib/mode_icon_reader.c \
oled.c

View file

@ -1,24 +0,0 @@
/*
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
// otherwise the other promicro v3 isn't found
#define SPLIT_USB_DETECT

View file

@ -1,18 +0,0 @@
/*
Copyright 2018-2022 Eric Gebhart <e.a.gebhart@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/>.
*/
// See: users/ericgebhart.

View file

@ -1,54 +0,0 @@
/*
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
//#define USE_MATRIX_I2C
/* Select hand configuration */
#define MASTER_LEFT
// #define MASTER_RIGHT
// #define EE_HANDS
//#define QUICK_TAP_TERM 0
//#define TAPPING_TERM 100
#define TAPPING_TERM 150
#define PERMISSIVE_HOLD
#ifdef RGBLIGHT_ENABLE
# undef RGBLED_NUM
# 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 RGBLED_NUM 27
# define RGBLIGHT_LIMIT_VAL 120
# define RGBLIGHT_HUE_STEP 10
# define RGBLIGHT_SAT_STEP 17
# define RGBLIGHT_VAL_STEP 17
#endif

View file

@ -1,160 +0,0 @@
#include QMK_KEYBOARD_H
#include "hvp.c"
#ifdef RGBLIGHT_ENABLE
//Following line allows macro to read current RGB settings
extern rgblight_config_t rgblight_config;
#endif
// 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.
#define _QWERTY 0
#define _LOWER 1
#define _RAISE 2
#define _ADJUST 3
enum custom_keycodes {
QWERTY = SAFE_RANGE,
LOWER,
RAISE,
ADJUST
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_QWERTY] = LAYOUT_split_3x6_3(
//,-----------------------------------------. ,-----------------------------------------.
LT(_ADJUST,KC_TAB), KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,KC_BSPC,
//|------+------+------+------+------+------| |------+------+------+------+------+------|
LSFT_T(KC_ESC), KC_A, KC_S, KC_D, LT(3,KC_F), KC_G, KC_H, KC_J, KC_K, KC_L,TD(TD1),TD(TD2),
//|------+------+------+------+------+------| |------+------+------+------+------+------|
KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M,KC_COMM,KC_DOT,TD(TD3),SC_SENT,
//|------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
KC_LGUI, LT(1,KC_SPC),MT(MOD_LSFT, KC_SPC), MT(MOD_LSFT,KC_ENT), LT(2,KC_SPC),KC_LALT
//`--------------------' `--------------------'
),
[_RAISE] = LAYOUT_split_3x6_3(
//,-----------------------------------------. ,-----------------------------------------.
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,KC_BSPC,
//|------+------+------+------+------+------| |------+------+------+------+------+------|
KC_DEL, _______, _______, _______, _______, _______, _______,KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
//|------+------+------+------+------+------| |------+------+------+------+------+------|
KC_LCTL, _______, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
//|------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
_______, _______, _______, _______, _______, _______
//`--------------------' `--------------------'
),
[_LOWER] = LAYOUT_split_3x6_3(
//,-----------------------------------------. ,-----------------------------------------.
KC_TAB,KC_EXLM,KC_AT,KC_HASH,KC_DLR,KC_PERC, KC_CIRC,KC_AMPR,KC_ASTR,KC_LPRN,KC_RPRN,KC_BSPC,
//|------+------+------+------+------+------| |------+------+------+------+------+------|
KC_DEL, _______, _______, _______, _______, _______, _______,KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_BSLS,
//|------+------+------+------+------+------| |------+------+------+------+------+------|
KC_LCTL, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_TILD,
//|------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
_______, _______, _______, _______, _______, _______
//`--------------------' `--------------------'
),
[_ADJUST] = LAYOUT_split_3x6_3(
//,-----------------------------------------. ,-----------------------------------------.
_______,KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
//|------+------+------+------+------+------| |------+------+------+------+------+------|
KC_F1,_______,_______,D_NAVI,_______,_______, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, _______, _______,
//|------+------+------+------+------+------| |------+------+------+------+------+------|
QK_BOOT,KC_PSCR,_______,_______,_______,_______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______, _______,
//|------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
_______, KC_VOLD,KC_MPLY, KC_MNXT, KC_VOLU,_______
//`--------------------' `--------------------'
)
};
int RGB_current_mode;
// Setting ADJUST layer RGB back to default
void update_tri_layer_RGB(uint8_t layer1, uint8_t layer2, uint8_t layer3) {
if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) {
layer_on(layer3);
} else {
layer_off(layer3);
}
}
void matrix_init_user(void) {
#ifdef RGBLIGHT_ENABLE
RGB_current_mode = rgblight_config.mode;
#endif
}
#ifdef OLED_ENABLE
// When add source files to SRC in rules.mk, you can use functions.
const char *read_layer_state(void);
const char *read_logo(void);
void set_keylog(uint16_t keycode, keyrecord_t *record);
const char *read_keylog(void);
const char *read_keylogs(void);
// const char *read_mode_icon(bool swap);
// const char *read_host_led_state(void);
// void set_timelog(void);
// const char *read_timelog(void);
bool oled_task_user(void) {
if (is_keyboard_master()) {
// If you want to change the display of OLED, you need to change here
oled_write(read_layer_state(), false);
oled_write(read_keylog(), false);
//oled_write_ln(read_keylogs(), false);
//oled_write_ln(read_mode_icon(keymap_config.swap_lalt_lgui), false);
//oled_write_ln(read_host_led_state()), false;
//oled_write_ln(read_timelog(), false);
} else {
oled_write(read_logo(), false);
}
return false;
}
#endif
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
if (record->event.pressed) {
#ifdef OLED_ENABLE
set_keylog(keycode, record);
#endif
// set_timelog();
}
switch (keycode) {
case LOWER:
if (record->event.pressed) {
layer_on(_LOWER);
update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST);
} else {
layer_off(_LOWER);
update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST);
}
return false;
case RAISE:
if (record->event.pressed) {
layer_on(_RAISE);
update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST);
} else {
layer_off(_RAISE);
update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST);
}
return false;
case ADJUST:
if (record->event.pressed) {
layer_on(_ADJUST);
} else {
layer_off(_ADJUST);
}
return false;
break;
}
return true;
}

View file

@ -1,10 +0,0 @@
Keyboard: Corne Keyboard (CRKBD)
Keys: A split keyboard with 3x6 vertically staggered keys and 3 thumb keys.
Layout: Swedish characters on main layer using tapdance. Built for eurkey keyboard layout.
Flash instructions: Flash using avrdude, will req the hvp user space to compile.
> make crkbd:hvp:avrdude
Links:
Github - https://github.com/qmk/qmk_firmware/tree/master/keyboards/crkbd
Eurkey layout - https://eurkey.steffen.bruentjen.eu/

View file

@ -1,13 +0,0 @@
# If you want to change the display of OLED, you need to change here
SRC += ./lib/rgb_state_reader.c \
./lib/layer_state_reader.c \
./lib/logo_reader.c \
./lib/keylogger.c \
# ./lib/mode_icon_reader.c \
# ./lib/host_led_state_reader.c \
# ./lib/timelogger.c \
TAP_DANCE_ENABLE = yes
EXTRAKEY_ENABLE = yes # Audio control and System control
OLED_ENABLE = yes
# LOCAL_GLCDFONT = yes

View file

@ -1,49 +0,0 @@
/*
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
//#define USE_MATRIX_I2C
/* Select hand configuration */
#define MASTER_LEFT
// #define MASTER_RIGHT
// #define EE_HANDS
//#define QUICK_TAP_TERM 0
//#define TAPPING_TERM 100
#undef RGBLED_NUM
#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 RGBLED_NUM 27
#define RGBLIGHT_LIMIT_VAL 120
#define RGBLIGHT_HUE_STEP 10
#define RGBLIGHT_SAT_STEP 17
#define RGBLIGHT_VAL_STEP 17

View file

@ -1,152 +0,0 @@
#include QMK_KEYBOARD_H
#include "jarred.h"
#ifdef PROTOCOL_LUFA
#include "lufa.h"
#include "split_util.h"
#endif
#ifdef RGBLIGHT_ENABLE
//Following line allows macro to read current RGB settings
extern rgblight_config_t rgblight_config;
#endif
#define LAYOUT_crkbd_base( \
K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, \
K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, \
K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, \
K31, K32, K33, K34, K35, K36 \
)
#define LAYOUT_crkbd_wrapper(...) LAYOUT_split_3x6_3(__VA_ARGS__)
#define QWERTY_4_CRKBD KC_LCTL, MO(_LW), KC_SPC, KC_ENT, MO(_LW), KC_RALT
#define BLANK_4_CRKBD KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_QW] = LAYOUT_crkbd_wrapper(
QWERTY_1_12,
QWERTY_2_12,
QWERTY_3_12,
QWERTY_4_DOX
),
[_LW] = LAYOUT_crkbd_wrapper(
LOWER_1_12,
LOWER_2_12,
LOWER_3_12,
LOWER_4_DOX
),
[_NV] = LAYOUT_crkbd_wrapper(
NAV_1_12,
NAV_2_12,
NAV_3_12,
NAV_4_DOX
),
[_NP] = LAYOUT_crkbd_wrapper(
NUMPAD_1_12,
NUMPAD_2_12,
NUMPAD_3_12,
NUMPAD_4_DOX
),
[_MS] = LAYOUT_crkbd_wrapper(
MOUSE_1_12,
MOUSE_2_12,
MOUSE_3_12,
MOUSE_4_DOX
)
};
#ifdef OLED_ENABLE
// When add source files to SRC in rules.mk, you can use functions.
const char *read_logo(void);
void set_keylog(uint16_t keycode, keyrecord_t *record);
const char *read_keylog(void);
const char *read_keylogs(void);
char matrix_line_str[24];
const char *read_layer_state(void) {
uint8_t layer = get_highest_layer(layer_state);
strcpy(matrix_line_str, "Layer: ");
switch (layer)
{
case _QW:
strcat(matrix_line_str, "Default");
break;
case _LW:
strcat(matrix_line_str, "Lower");
break;
case _NV:
strcat(matrix_line_str, "Navigation");
break;
case _NP:
strcat(matrix_line_str, "Adjust");
break;
case _MS:
strcat(matrix_line_str, "Mouse");
break;
default:
sprintf(matrix_line_str + strlen(matrix_line_str), "Unknown (%d)", layer);
}
return matrix_line_str;
}
const char *read_usb_state(void) {
strcpy(matrix_line_str, "USB : ");
switch (USB_DeviceState) {
case DEVICE_STATE_Unattached:
strcat(matrix_line_str, "Unattached");
break;
case DEVICE_STATE_Suspended:
strcat(matrix_line_str, "Suspended");
break;
case DEVICE_STATE_Configured:
strcat(matrix_line_str, "Connected");
break;
case DEVICE_STATE_Powered:
strcat(matrix_line_str, "Powered");
break;
case DEVICE_STATE_Default:
strcat(matrix_line_str, "Default");
break;
case DEVICE_STATE_Addressed:
strcat(matrix_line_str, "Addressed");
break;
default:
strcat(matrix_line_str, "Invalid");
}
return matrix_line_str;
}
bool oled_task_user(void) {
if (is_keyboard_master()) {
oled_write_ln(read_layer_state(), false);
oled_write_ln(read_usb_state(), false);
oled_write_ln(read_keylogs(), false);
} else {
oled_write(read_logo(), false);
}
return false;
}
#endif
bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
if (record->event.pressed) {
set_keylog(keycode, record);
}
return true;
}

View file

@ -1,9 +0,0 @@
# Jarred's CRKBD Layout
Check out [user space readme](../../../../users/jarred/readme.md) for more info
# Build
```
make crkbd:jarred:avrdude
```

View file

@ -1,31 +0,0 @@
# Build Options
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
MOUSEKEY_ENABLE = no # Mouse keys(+4700)
EXTRAKEY_ENABLE = no # Audio control and System control(+450)
CONSOLE_ENABLE = no # Console for debug(+400)
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
MIDI_ENABLE = no # MIDI controls
AUDIO_ENABLE = no # Audio output on port C6
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
SWAP_HANDS_ENABLE = no # Enable one-hand typing
OLED_ENABLE = yes
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# If you want to change the display of OLED, you need to change here
SRC += ./lib/rgb_state_reader.c \
./lib/logo_reader.c \
./lib/keylogger.c \
#./lib/layer_state_reader.c \
# ./lib/mode_icon_reader.c \
# ./lib/host_led_state_reader.c \
# ./lib/timelogger.c \

View file

@ -1,99 +0,0 @@
# ninjonas Keymap for [Corne Keyboard (crkbd)](https://github.com/foostan/crkbd)
## Keymap
This keymap is designed based off my typing habits and is subject to change. Information about custom user macros and tap dances can be found [here](../../../../users/ninjonas).
More information about the crkbd keyboard can be found [here](https://thomasbaart.nl/2018/11/26/corne-keyboard-helidox-build-log/)
### QWERTY
```c
//,----------------------------------------------------. ,----------------------------------------------------.
// Tab, Q, W, E, R, T, Y, U, I, O, P, \
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
// ESC, A, S, D, F, G, H, J, K, L, ;, '
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
// LShift, Z, X, C, V, B, N, M, ,, ., /, =
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
// Cmd, Ctrl, Space, Enter, BackSP, Del
//`---------------------' `---------------------'
```
### DVORAK
```c
//,----------------------------------------------------. ,----------------------------------------------------.
// Tab, ', ,, ., P, Y, F, G, C, R, L, \
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
// ESC, A, O, E, U, I, D, H, T, N, S, /
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
// LShift, ;, Q, J, K, X, B, M, W, V, Z, =
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
// Cmd, Ctrl, Space, Enter, BackSP, Del
//`---------------------' `---------------------'
```
### COLEMAK
```c
//,----------------------------------------------------. ,----------------------------------------------------.
// Tab, Q, W, F, P, G, J, L, U, Y, ;, \
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
// ESC, A, R, S, T, D, H, N, E, I, O, '
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
// LShift, Z, X, C, V, B, K, M, ,, ., /, =
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
// Cmd, Ctrl, Space, Enter, BackSP, Del
//`---------------------' `---------------------'
```
### LOWER
```c
//,----------------------------------------------------. ,----------------------------------------------------.
// , , KC_BRIU, Play, Mute, K_CSCN, PgUp, Home, Up, End, , K_MDSH
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
// , , KC_BRID, Next, VolUp, , PgDn, Left, Down, Right, K_LOCK,
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
// , , , Prev, VolDn, [, ], , , M_CODE, M_XXX1, M_PYNV,
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
// , , , , ,
//`---------------------' `---------------------'
```
### RAISE
```c
//,----------------------------------------------------. ,----------------------------------------------------.
// `, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
// ~, !, @, #, $, %, ^, &, *, (, ), _
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
// F11, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F12
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
// , , , , ,
//`---------------------' `---------------------'
```
### ADJUST
```c
//,----------------------------------------------------. ,----------------------------------------------------.
// M_MAKE, EE_CLR , , , , , RGB_TOG, , , COLEMAK, DVORAK, QWERTY,
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
// M_VRSN, M_MALL, , RGB_SAI, RGB_HUI, RGB_VAI, , , , , , ,
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
// M_FLSH, , , RGB_SAD, RGB_HUD, RGB_VAD, RGB_M_P, RGB_M_B,RGB_M_SW, , , ,
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
// , , , , ,
//`---------------------' `---------------------'
```
<!--
### TEMPLATE
```c
//,----------------------------------------------------. ,----------------------------------------------------.
// , , , , , , , , , , ,
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
// , , , , , , , , , , ,
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
// , , , , , , , , , , ,
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
// , , , , ,
//`---------------------' `---------------------'
```
-->

View file

@ -1,88 +0,0 @@
/*
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
#define TAPPING_TERM 200
#define MASTER_LEFT
#define QUICK_TAP_TERM 0
#ifdef RGB_MATRIX_ENABLE
#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 120
#define RGB_MATRIX_HUE_STEP 10
#define RGB_MATRIX_SAT_STEP 10
#define RGB_MATRIX_VAL_STEP 10
#define RGB_MATRIX_SPD_STEP 10
// #define RGB_MATRIX_KEYPRESSES
#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
// BEGIN: Disable RGB Effects
//#undef ENABLE_RGB_MATRIX_SOLID_COLOR
//#undef ENABLE_RGB_MATRIX_ALPHAS_MODS
//#undef ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
# undef ENABLE_RGB_MATRIX_BREATHING
# undef ENABLE_RGB_MATRIX_BAND_SAT
# undef ENABLE_RGB_MATRIX_BAND_VAL
// #undef ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
# undef ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
# undef ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
# undef ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
# undef ENABLE_RGB_MATRIX_CYCLE_ALL
# undef ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
# undef ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
# undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN
# undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
# undef ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
# undef ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
# undef ENABLE_RGB_MATRIX_CYCLE_SPIRAL
# undef ENABLE_RGB_MATRIX_DUAL_BEACON
# undef ENABLE_RGB_MATRIX_RAINBOW_BEACON
# undef ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
# undef ENABLE_RGB_MATRIX_RAINDROPS
# undef ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
// BEGIN: RGB_MATRIX_FRAMEBUFFER_EFFECTS
# undef ENABLE_RGB_MATRIX_TYPING_HEATMAP
// #undef ENABLE_RGB_MATRIX_DIGITAL_RAIN
// END: RGB_MATRIX_FRAMEBUFFER_EFFECTS
// BEGIN: RGB_MATRIX_KEYPRESSES
# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE
# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
# undef ENABLE_RGB_MATRIX_SPLASH
# undef ENABLE_RGB_MATRIX_MULTISPLASH
# undef ENABLE_RGB_MATRIX_SOLID_SPLASH
# undef ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
// END: RGB_MATRIX_KEYPRESSES
// END: Disable RGB Effects
#endif
#define OLED_FONT_H "keyboards/crkbd/lib/glcdfont.c"
#define OLED_DISABLE_TIMEOUT
#define LAYOUT LAYOUT_split_3x6_3

View file

@ -1,101 +0,0 @@
#include QMK_KEYBOARD_H
#include "ninjonas.h"
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_QWERTY] = LAYOUT_wrapper(
//,----------------------------------------------------. ,----------------------------------------------------.
_____________________QWERTY_L1______________________, _____________________QWERTY_R1______________________,
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
_____________________QWERTY_L2______________________, _____________________QWERTY_R2______________________,
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
_____________________QWERTY_L3______________________, _____________________QWERTY_R3______________________,
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
________MOD_LEFT_________, ________MOD_RIGHT________
//`---------------------' `---------------------'
),
[_DVORAK] = LAYOUT_wrapper(
//,----------------------------------------------------. ,----------------------------------------------------.
_____________________DVORAK_L1______________________, _____________________DVORAK_R1______________________,
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
_____________________DVORAK_L2______________________, _____________________DVORAK_R2______________________,
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
_____________________DVORAK_L3______________________, _____________________DVORAK_R3______________________,
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
________MOD_LEFT_________, ________MOD_RIGHT________
//`---------------------' `---------------------'
),
[_COLEMAK] = LAYOUT_wrapper(
//,----------------------------------------------------. ,----------------------------------------------------.
_____________________COLEMAK_L1_____________________, _____________________COLEMAK_R1_____________________,
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
_____________________COLEMAK_L2_____________________, _____________________COLEMAK_R2_____________________,
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
_____________________COLEMAK_L3_____________________, _____________________COLEMAK_R3_____________________,
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
________MOD_LEFT_________, ________MOD_RIGHT________
//`---------------------' `---------------------'
),
[_LOWER] = LAYOUT_wrapper(
//,----------------------------------------------------. ,----------------------------------------------------.
_____________________LOWER_L1_______________________, _____________________LOWER_R1_______________________,
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
_____________________LOWER_L2_______________________, _____________________LOWER_R2_______________________,
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
_____________________LOWER_L3_______________________, _____________________LOWER_R3_______________________,
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
_______,_______,_______, _______,_______,_______
//`---------------------' `---------------------'
),
[_RAISE] = LAYOUT_wrapper(
//,----------------------------------------------------. ,----------------------------------------------------.
_____________________NUM_LEFT_______________________, _____________________NUM_RIGHT______________________,
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
_____________________SYM_LEFT_______________________, _____________________SYM_RIGHT______________________,
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
_____________________FUNC_LEFT______________________, _____________________FUNC_RIGHT_____________________,
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
_______,_______,_______, _______,_______,_______
//`---------------------' `---------------------'
),
[_ADJUST] = LAYOUT_wrapper(
//,----------------------------------------------------. ,----------------------------------------------------.
_____________________ADJUST_L1______________________, _____________________ADJUST_R1______________________,
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
_____________________ADJUST_L2______________________, _____________________ADJUST_R2______________________,
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
_____________________ADJUST_L3______________________, _____________________ADJUST_R3______________________,
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
_______,_______,_______, _______,_______,_______
//`---------------------' `---------------------'
),
[_NUMPAD] = LAYOUT_wrapper(
//,----------------------------------------------------. ,----------------------------------------------------.
_______, _______, _______, _______, _______, _______, _____________________NUMPAD_1_______________________,
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
_______, _______, _______, _______, _______, _______, _____________________NUMPAD_2_______________________,
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
_______, _______, _______, _______, _______, _______, _____________________NUMPAD_3_______________________,
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
_______,_______,_______, _______,_______,_______
//`---------------------' `---------------------'
),
/*
[_TEMPLATE] = LAYOUT_wrapper(
//,----------------------------------------------------. ,----------------------------------------------------.
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
_______,_______,_______, _______,_______,_______
//`---------------------' `---------------------'
),
*/
};

View file

@ -1,7 +0,0 @@
RGB_MATRIX_ENABLE = yes
MOUSEKEY_ENABLE = no
OLED_ENABLE = yes
LTO_ENABLE = yes
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend

View file

@ -1,95 +0,0 @@
/* Copyright 2022 Olly Hayes (@ollyhayes)
*
* 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 EE_HANDS
#define QUICK_TAP_TERM 0
#define TAPPING_TERM 100
#define NO_ACTION_ONESHOT
#define OLED_FONT_H "keyboards/crkbd/lib/glcdfont.c"
#define UNICODE_SELECTED_MODES UNICODE_MODE_LINUX
#ifdef RGB_MATRIX_ENABLE
# define RGB_MATRIX_KEYPRESSES // reacts to keypresses
// # define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses)
# define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended
# define RGB_MATRIX_FRAMEBUFFER_EFFECTS
// # define RGB_MATRIX_LED_PROCESS_LIMIT (RGB_MATRIX_LED_COUNT + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness)
// # define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness)
# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 // limits maximum brightness of LEDs to 150 out of 255. Higher may cause the controller to crash.
# define RGB_MATRIX_HUE_STEP 8
# define RGB_MATRIX_SAT_STEP 8
# define RGB_MATRIX_VAL_STEP 8
# define RGB_MATRIX_SPD_STEP 10
// RGB Matrix Animation modes. Explicitly enabled
// For full list of effects, see:
// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects
# define ENABLE_RGB_MATRIX_SOLID_COLOR
// # define ENABLE_RGB_MATRIX_ALPHAS_MODS
// # define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
// # define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
// # define ENABLE_RGB_MATRIX_BREATHING
// # define ENABLE_RGB_MATRIX_BAND_SAT
// # define ENABLE_RGB_MATRIX_BAND_VAL
// # define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
// # define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
// # define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
// # define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
// # define ENABLE_RGB_MATRIX_CYCLE_ALL
// # define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
// # define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
// # define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
// # define ENABLE_RGB_MATRIX_CYCLE_OUT_IN
// # define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
// # define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
// # define ENABLE_RGB_MATRIX_CYCLE_SPIRAL
// # define ENABLE_RGB_MATRIX_DUAL_BEACON
// # define ENABLE_RGB_MATRIX_RAINBOW_BEACON
# define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
// # define ENABLE_RGB_MATRIX_RAINDROPS
// # define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
// # define ENABLE_RGB_MATRIX_HUE_BREATHING
// # define ENABLE_RGB_MATRIX_HUE_PENDULUM
// # define ENABLE_RGB_MATRIX_HUE_WAVE
// # define ENABLE_RGB_MATRIX_PIXEL_RAIN
// # define ENABLE_RGB_MATRIX_PIXEL_FLOW
// # define ENABLE_RGB_MATRIX_PIXEL_FRACTAL
// enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined
# define ENABLE_RGB_MATRIX_TYPING_HEATMAP
# define RGB_MATRIX_TYPING_HEATMAP_DECREASE_DELAY_MS 200
// # define ENABLE_RGB_MATRIX_DIGITAL_RAIN
// enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined
# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
// # define ENABLE_RGB_MATRIX_SOLID_REACTIVE
// # define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
// # define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
// # define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
// # define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
// # define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
// # define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
// # define ENABLE_RGB_MATRIX_SPLASH
// # define ENABLE_RGB_MATRIX_MULTISPLASH
// # define ENABLE_RGB_MATRIX_SOLID_SPLASH
// # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
#endif

View file

@ -1,112 +0,0 @@
/* Copyright 2022 Olly Hayes (@ollyhayes)
*
* 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 "ollyhayes.h"
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[BASE] = LAYOUT_split_3x6_3(
// +------------+------+------+---------+----------+---------+--------+----------+---------+--------+---------+---------+
NUM_SWITCH , KC_Q , KC_W , KC_F , KC_P , KC_G , KC_J , KC_L , KC_U , KC_Y , KC_SCLN , KC_BSPC ,
KC_ESC , KC_A , KC_R , KC_S , KC_T , KC_D , KC_H , KC_N , KC_E , KC_I , KC_O , KC_ENT ,
KC_LSFT , KC_Z , KC_X , KC_C , KC_V , KC_B , KC_K , KC_M , KC_COMM , KC_DOT , KC_SLSH , KC_RSFT ,
KC_LCTL , MO(PUNC) , MO(ARR) , KC_SPC , MO(PUNC) , KC_RCTL
// +------------+------+------+---------+----------+---------+--------+----------+---------+--------+---------+---------+
),
[QWERTY] = LAYOUT_split_3x6_3(
// +---------+------+------+---------+---------+---------+---------+---------+---------+--------+---------+---------+
KC_TRNS , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_TRNS ,
KC_TRNS , KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN , KC_TRNS ,
KC_TRNS , KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM , KC_DOT , KC_SLSH , KC_TRNS ,
KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS
// +---------+------+------+---------+---------+---------+---------+---------+---------+--------+---------+---------+
),
[GAMES] = LAYOUT_split_3x6_3(
// +---------+------+------+---------+---------+----------+---------+---------+---------+--------+---------+---------+
KC_TRNS , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_TRNS ,
KC_TRNS , KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN , KC_TRNS ,
KC_TRNS , KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM , KC_DOT , KC_SLSH , KC_TRNS ,
KC_TRNS , KC_LALT , KC_SPACE , MO(ARR) , KC_TRNS , KC_TRNS
// +---------+------+------+---------+---------+----------+---------+---------+---------+--------+---------+---------+
),
[NUM] = LAYOUT_split_3x6_3(
// +---------+---------------+------+--------+---------+-----------+-----------+------+--------+------+---------+---------+
KC_TRNS , MO(FUNCTIONS) , KC_1 , KC_2 , KC_3 , DF(BASE) , C(KC_GRV) , KC_7 , KC_8 , KC_9 , KC_TRNS , KC_TRNS ,
KC_TRNS , MO(MEDIA) , KC_4 , KC_5 , KC_6 , DF(GAMES) , KC_NO , KC_4 , KC_5 , KC_6 , KC_TRNS , KC_TRNS ,
KC_TRNS , KC_0 , KC_7 , KC_8 , KC_9 , DF(QWERTY), KC_NO , KC_1 , KC_2 , KC_3 , KC_TRNS , KC_TRNS ,
KC_DOT , KC_TRNS , KC_TAB , KC_TRNS , KC_0 , KC_DOT
// +---------+---------------+------+--------+---------+-----------+-----------+------+--------+------+---------+---------+
),
[FUNCTIONS] = LAYOUT_split_3x6_3(
// +---------------+---------+---------+---------+---------+---------+---------+---------+---------+-------+---------+---------+
KC_TRNS , KC_TRNS , KC_TRNS , KC_F8 , KC_F9 , KC_F12 , KC_F12 , KC_F7 , KC_F8 , KC_F9 , KC_TRNS , KC_TRNS ,
TG(FUNCTIONS) , KC_TRNS , KC_F4 , KC_F5 , KC_F6 , KC_F11 , KC_F11 , KC_F4 , KC_F5 , KC_F6 , KC_TRNS , KC_TRNS ,
KC_TRNS , KC_TRNS , KC_F1 , KC_F2 , KC_F3 , KC_F10 , KC_F10 , KC_F1 , KC_F2 , KC_F3 , KC_TRNS , KC_TRNS ,
KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS
// +---------------+---------+---------+---------+---------+---------+---------+---------+---------+-------+---------+---------+
),
[ARR] = LAYOUT_split_3x6_3(
// +---------+---------+-----------+---------+---------+------------+-----------+---------+---------+-----------+---------+---------+
KC_TRNS , KC_TRNS , KC_HOME , KC_PGUP , KC_PGDN , KC_END , KC_HOME , KC_PGDN , KC_PGUP , KC_END , KC_TRNS , KC_TRNS ,
KC_ENT , KC_DEL , KC_LEFT , KC_UP , KC_DOWN , KC_RGHT , KC_LEFT , KC_DOWN , KC_UP , KC_RGHT , KC_DEL , KC_TRNS ,
KC_TRNS , KC_INS , C(KC_LEFT), KC_LGUI , KC_LALT , C(KC_RGHT) , C(KC_LEFT), DOWN4 , UP4 , C(KC_RGHT), KC_INS , KC_TRNS ,
KC_TRNS , KC_F12 , KC_TRNS , KC_TRNS , KC_F12 , KC_TRNS
// +---------+---------+-----------+---------+---------+------------+-----------+---------+---------+-----------+---------+---------+
),
[PUNC] = LAYOUT_split_3x6_3(
// +---------+------------+-----------+-----------+-------------+------------+------------+-------------+------------+------------+-----------+---------+
ALTTAB , S(KC_1) , S(KC_2) , UC(0x20ac), S(KC_4) , S(KC_5) , S(KC_6) , S(KC_7) , S(KC_8) , S(KC_9) , S(KC_0) , KC_TRNS ,
KC_TRNS , S(KC_NUBS) , S(KC_GRV) , KC_LBRC , KC_RBRC , S(KC_NUHS) , KC_QUOT , S(KC_LBRC) , S(KC_RBRC) , KC_MINS , S(KC_EQL) , KC_TRNS ,
KC_TRNS , KC_NUBS , KC_GRV , KC_LGUI , KC_LALT , KC_NUHS , S(KC_QUOT) , KC_LALT , KC_LGUI , S(KC_MINS) , KC_EQL , KC_TRNS ,
KC_TRNS , MO(DUBPUNC) , KC_MPLY , KC_TRNS , MO(DUBPUNC) , KC_TRNS
// +---------+------------+-----------+-----------+-------------+------------+------------+-------------+------------+------------+-----------+---------+
),
[MEDIA] = LAYOUT_split_3x6_3(
// +------------+-----------+---------+---------+---------+----------------+----------------+---------+---------+---------+----------+---------+
QK_BOOT , RGB_RMOD , RGB_MOD , RGB_TOG , RGB_HUD , RGB_HUI , RGB_HUD , RGB_HUI , RGB_TOG , RGB_RMOD, RGB_MOD , KC_SLEP ,
KC_TRNS , KC_TRNS , KC_TRNS , KC_VOLD , KC_VOLU , RGB_MODE_PLAIN , RGB_MODE_PLAIN , KC_VOLD , KC_VOLU , KC_TRNS , KC_TRNS , KC_TRNS ,
KC_TRNS , KC_TRNS , RGB_VAD , RGB_VAI , RGB_SAD , RGB_SAI , RGB_SAD , RGB_SAI , RGB_VAD , RGB_VAI , KC_TRNS , KC_TRNS ,
KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS
// +------------+-----------+---------+---------+---------+----------------+----------------+---------+---------+---------+----------+---------+
),
[DUBPUNC] = LAYOUT_split_3x6_3(
// +---------+----------+-----------+-----------+------------+---------+-----------+---------+----------+---------+----------+---------+
KC_TRNS , KC_TRNS , KC_TRNS , UC(0x00a3), KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , U_UMLAUT , KC_TRNS , KC_TRNS , KC_TRNS ,
KC_TRNS , A_UMLAUT , KC_TRNS , UC(0x00df), UC(0x2713) , KC_TRNS , UC(0x00b0), KC_TRNS , KC_TRNS , KC_TRNS , O_UMLAUT , KC_TRNS ,
KC_TRNS , KC_TRNS , UC(0x2717), KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS ,
KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS
// +---------+----------+-----------+-----------+------------+---------+-----------+---------+----------+---------+----------+---------+
)
};
/*
[TEMPLATE] = LAYOUT_split_3x6_3(
// +--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+
KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS ,
KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS ,
KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS ,
KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS
// +--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+
),
*/

View file

@ -1,112 +0,0 @@
/* Copyright 2022 Olly Hayes (@ollyhayes)
*
* 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 "ollyhayes.h"
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
if (!is_keyboard_master()) {
return OLED_ROTATION_180; // flips the display 180 degrees if offhand
}
return rotation;
}
#define L_BASE 0
#define L_NUM 8
#define L_FUNCTIONS 16
#define L_ARR 32
#define L_PUNC 64
#define L_DUBPUNC 128
#define L_MEDIA 256
#define DL_COLEMAK 1
#define DL_QWERTY 2
#define DL_GAMES 4
void oled_render_layer_state(void) {
oled_write_P(PSTR("Layer: "), false);
switch (layer_state) {
case L_BASE:
switch (default_layer_state) {
case DL_QWERTY:
oled_write_ln_P(PSTR("Qwerty"), false);
break;
case DL_GAMES:
oled_write_ln_P(PSTR("Games"), false);
break;
case DL_COLEMAK:
default:
oled_write_ln_P(PSTR("Colemak"), false);
break;
}
break;
case L_NUM:
oled_write_ln_P(PSTR("Numbers"), false);
break;
case L_FUNCTIONS:
case L_FUNCTIONS|L_NUM:
oled_write_ln_P(PSTR("Functions"), false);
break;
case L_ARR:
oled_write_ln_P(PSTR("Navigation"), false);
break;
case L_PUNC:
oled_write_ln_P(PSTR("Punctuation"), false);
break;
case L_MEDIA:
case L_MEDIA|L_NUM:
oled_write_ln_P(PSTR("Media"), false);
break;
case L_DUBPUNC:
case L_DUBPUNC|L_PUNC:
oled_write_ln_P(PSTR("Specials"), false);
break;
}
}
void oled_render_timer(void) {
static uint16_t microticks = 0;
static uint16_t ticks = 0;
if (microticks++ % 1000 == 0) {
ticks++;
}
oled_write_P(PSTR("Ticks: "), false);
oled_write_ln(get_u16_str(ticks, ' '), false);
}
void oled_render_presses(void) {
oled_write_P(PSTR("Presses: "), false);
oled_write_ln(get_u16_str(key_presses, ' '), false);
}
void oled_render_rgb_mode(void) {
oled_write_P(PSTR("Animation: "), false);
oled_write_ln(get_u8_str(rgb_matrix_get_mode(), ' '), false);
}
bool oled_task_user(void) {
if (is_keyboard_master()) {
oled_render_layer_state();
}
oled_render_timer();
if (is_keyboard_master()) {
oled_render_presses();
}
oled_render_rgb_mode();
return false;
}

View file

@ -1,67 +0,0 @@
# ollyhayes's keymap for [Corne Keyboard (crkbd)](https://github.com/foostan/crkbd)
## Keymap
After many years of changing my keymap often and reperatedly, I finally came to a stable version. I've been using this for a while now with only small tweaks every so often.
All layers are activated only whilst the layer key is held, except the default layers.
Lots of keys are repeated on both sides. I find this really useful for two reasons:
* I like to have the option to use the opposite hand to hold modifiers shift/ctrl etc as the hand pressing the key, I find this really comfortable.
* When using the mouse, I like to be able to do common things with just my left hand.
### Colemak
The base layer:
![colemak](https://i.imgur.com/uxLJzul.png)
### Navigation
All things for moving the cursor around, inspired by vim.
* `c←` is ctrl+left
* `↓↓↓↓` is ↓ pressed four times
![navigation](https://i.imgur.com/xfkA0ze.png)
### Symbols
The shifted number row and all brackets and other symbols.
* `a/t` is alt-tab for window switching in windows/linux. Using some special code to release alt when the punc key is released, this works quite nicely.
![symbols](https://i.imgur.com/t9Jygs1.png)
### Specials
Some extra symbols (linux only for now) that work by sending UTF sequences. Layer activated by holding both punctuation layer keys.
![specials](https://i.imgur.com/AtPWKrA.png)
### Numbers
Numbpads (left version is reversed so 1, 2, 3 are easy to reach with one hand (like on a regular keyboard).
Also the keys to switch the default layer are here.
![numbers](https://i.imgur.com/9XXcAXK.png)
### Functions
Function keys, nothing too interesting.
![functions](https://i.imgur.com/ttrw3FJ.png)
### Games (default layer)
Used for some games, qwerty with space bar and alt for the left hand.
![games](https://i.imgur.com/zVvHWKd.png)
### Qwerty (default layer)
Mostly for guests.
![qwerty](https://i.imgur.com/Bqs1bjV.png)

View file

@ -1,16 +0,0 @@
SRC += oled.c
OLED_ENABLE = yes
EXTRAKEY_ENABLE = yes
UNICODE_ENABLE = yes
RGBLIGHT_ENABLE = no
RGB_MATRIX_ENABLE = yes
# RGB_MATRIX_CUSTOM_USER = yes
VIRTSER_ENABLE = yes
LTO_ENABLE = yes
MOUSEKEY_ENABLE = no

View file

@ -1,29 +0,0 @@
/*
This is the c configuration file for the keymap
Copyright 2012 Jun Wako <wakojun@gmail.com>
Copyright 2015 Jack Humbert
Copyright 2021 Daniel Perrett
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 TAPPING_TOGGLE 2
#define TAPPING_TERM 200
#define COMBO_PDL
#define COMBO_TERM 100

View file

@ -1,62 +0,0 @@
/* Copyright 2022 Daniel Perrett
*
* 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 "pdl.h"
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_QWERTY] = LAYOUT_wrapper(
MY_FESC, _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, KC_BSPC,
KC_TAB, _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, MY_SQUO,
MY_SBSL, _________________QWERTY_L3_________________, _________________QWERTY_R3_________________, MY_CENT,
KC_LCTL, NAVIGN, KC_SPC, MY_SSPC, NUMBRS, NAVIGN
),
[_PROXIM] = LAYOUT_wrapper(
MY_FESC, _________________PROXIM_L1_________________, _________________PROXIM_R1_________________, KC_BSPC,
KC_TAB, _________________PROXIM_L2_________________, _________________PROXIM_R2_________________, MY_ASCL,
MY_SBSL, _________________PROXIM_L3_________________, _________________PROXIM_R3_________________, MY_CENT,
KC_LCTL, NAVIGN, KC_SPC, MY_SSPC, NUMBRS, NAVIGN
),
[_NAVIGN] = LAYOUT_wrapper(
_______, _________________NAVIGN_L1_________________, _______, _______, _______, _______, _______, _______,
_______, _________________NAVIGN_L2_________________, _______, _______, _______, _______, _______, _______,
_______, _________________NAVIGN_L3_________________, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______
),
[_PUNCTN] = LAYOUT_wrapper(
_______, _______, _______, _______, _______, _______, _________________PUNCTN_R1_________________, _______,
_______, _______, _______, _______, _______, _______, _________________PUNCTN_R2_________________, _______,
_______, _______, _______, _______, _______, _______, _________________PUNCTN_R3_________________, _______,
_______, _______, _______, _______, _______, _______
),
[_NUMBRS] = LAYOUT_wrapper(
_______, _________________NUMBRS_L1_________________, _______, _______, _______, _______, _______, _______,
_______, _________________NUMBRS_L2_________________, _______, _______, _______, _______, _______, _______,
_______, _________________NUMBRS_L3_________________, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______
),
[_CODING] = LAYOUT_wrapper(
_______, _______, _______, _______, _______, _______, _________________CODING_R1_________________, _______,
_______, _______, _______, _______, _______, _______, _________________CODING_R2_________________, _______,
_______, _______, _______, _______, _______, _______, _________________CODING_R3_________________, _______,
_______, _______, _______, _______, _______, _______
),
[_FUNCTN] = LAYOUT_wrapper(
_______, _________________FUNCTN_L1_________________, _________________FUNCTN_R1_________________, MY_CAD,
_______, _________________FUNCTN_L2_________________, _________________FUNCTN_R2_________________, KC_PSCR,
_______, _________________FUNCTN_L3_________________, _________________FUNCTN_R3_________________, _______,
_______, _______, _______, _______, _______, _______
)
};

View file

@ -1,67 +0,0 @@
/*
This is the c configuration file for the keymap
Copyright 2012 Jun Wako <wakojun@gmail.com>
Copyright 2015 Jack Humbert
Copyright 2021 Rocco Meli <@RMeli>
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 MASTER_LEFT // Left side is the master
#define SPLIT_LED_STATE_ENABLE
#ifdef RGB_MATRIX_ENABLE
// RGB matrix options
# define RGB_MATRIX_KEYPRESSES // enable keypress effects
# define RGB_MATRIX_LED_FLUSH_LIMIT 16
# define RGB_DISABLE_WHEN_USB_SUSPENDED
// Disable unwanted R2G effects (from r2g/config.h)
# undef ENABLE_RGB_MATRIX_ALPHAS_MODS
# undef ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
# undef ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
# define ENABLE_RGB_MATRIX_BREATHING
# undef ENABLE_RGB_MATRIX_BAND_SAT
# undef ENABLE_RGB_MATRIX_BAND_VAL
# undef ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
# undef ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
# undef ENABLE_RGB_MATRIX_CYCLE_ALL
# undef ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
# undef ENABLE_RGB_MATRIX_CYCLE_SPIRAL
# undef ENABLE_RGB_MATRIX_RAINDROPS
# undef ENABLE_RGB_MATRIX_HUE_BREATHING
# undef ENABLE_RGB_MATRIX_PIXEL_FRACTAL
# define ENABLE_RGB_MATRIX_TYPING_HEATMAP
# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE
# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
# undef ENABLE_RGB_MATRIX_SPLASH
# undef ENABLE_RGB_MATRIX_SOLID_SPLASH
// Enable effects
# define ENABLE_RGB_MATRIX_SOLID_COLOR
# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
// Default effect
# define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR
# define RGB_MATRIX_DEFAULT_HUE 10
# define RGB_MATRIX_DEFAULT_SAT 255
# define RGB_MATRIX_DEFAULT_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS
#endif
// https://github.com/qmk/qmk_firmware/blob/develop/docs/squeezing_avr.md
#undef LOCKING_SUPPORT_ENABLE
#undef LOCKING_RESYNC_ENABLE
#define NO_MUSIC_MODE
#define LAYER_STATE_8BIT // Limit to 8 layers

View file

@ -1,129 +0,0 @@
/*
Copyright 2019 @foostan
Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
Copyright 2021 Rocco Meli <@RMeli>
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 "rmeli.h"
// + -------------------- +
// + RGB MATRIX CALLBACKS |
// + -------------------- +
// LED numbers:
// https://github.com/foostan/crkbd/blob/main/corne-classic/doc/buildguide_en.md
// Change LED color to red when CAPS LOCK is active
bool rgb_matrix_indicators_user(void) {
if (host_keyboard_led_state().caps_lock) {
rgb_matrix_set_color(26, 255, 0, 0);
// Only works with SPLIT_LED_STATE_ENABLE
rgb_matrix_set_color(53, 255, 0, 0);
}
return false;
}
// + ---- +
// + OLED |
// + ---- +
bool oled_task_user(void) {
if (is_keyboard_master()) {
oled_render_rocco();
} else {
oled_render_meli();
}
return false;
}
// + ------- +
// + KEY MAP |
// + ------- +
// Layer names
enum layer_names {
_QWERTY,
_COLEMAK_DH,
_DWN,
_UP,
_CONFIG,
};
// Layer names shortcuts
#define _QWY 0
#define _CMK 1
#define _CFG 4
#define ______THUMB_LEFT_x3______ KC_LGUI, MO(_DWN), KC_SPC
#define ______THUMB_RIGHT_x3_____ KC_ENT, MO(_UP), KC_RCTL
// LAYOUT
//
// |-----------------------------| |-----------------------------|
// | | | | | | | | | | | | | |
// |----+----+----+----+----+----| |----+----+----+----+----+----|
// | | | | | | | | | | | | | |
// |----+----+----+----+----+----| |----+----+----+----+----+----|
// | | | | | | | | | | | | | |
// |----+----+----+----+----+----+----| |----+----+----+----+----+----+----|
// | | | | | | | |
// |--------------| |--------------|
// Define wrapper for standard CRKB layout
#define LAYOUT_wrapper(...) LAYOUT_split_3x6_3(__VA_ARGS__)
// clang-format off
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_QWERTY] = LAYOUT_wrapper(
// clang-format off
___________________QWERTY_L1_x6_____________________, ___________________QWERTY_R1_x6_____________________,
___________________QWERTY_L2_x6_____________________, ___________________QWERTY_R2_x6_____________________,
___________________QWERTY_L3_x6_____________________, ___________________QWERTY_R3_x6_____________________,
______THUMB_LEFT_x3______, ______THUMB_RIGHT_x3_____
),
[_COLEMAK_DH] = LAYOUT_wrapper(
________________COLEMAK_MOD_DH_L1_x6________________, ________________COLEMAK_MOD_DH_R1_x6________________,
________________COLEMAK_MOD_DH_L2_x6________________, ________________COLEMAK_MOD_DH_R2_x6________________,
________________COLEMAK_MOD_DH_L3_x6________________, ________________COLEMAK_MOD_DH_R3_x6________________,
______THUMB_LEFT_x3______, ______THUMB_RIGHT_x3_____
),
[_DWN] = LAYOUT_wrapper(
_______, ______________NUMBER_LEFT_x5_______________, ______________NUMBER_RIGHT_x5______________, _______,
_______, ______________UNICODE_L2_x5________________, ________________NAV_R2_x5__________________, XXXXXXX,
_______, ______________UNICODE_L3_x5________________, ________________NAV_R3_x5__________________, _______,
KC_LGUI, _______, _______, _______,MO(_CFG), _______
),
[_UP] = LAYOUT_wrapper(
___________________SYMBOL_LEFT_x6___________________, ___________________SYMBOL_RIGHT_x6__________________,
_______, ____________NAV_VIM_x4____________, XXXXXXX, ____________________SYMBOL_R2_x6____________________,
_______, _________________NONE_5x___________________, ____________________SYMBOL_R3_x6____________________,
_______,MO(_CFG), _______, _______, _______, _______
),
[_CONFIG] = LAYOUT_wrapper(
QK_BOOT, _________________NONE_5x___________________, _______________CONFIG_R1_x5________________,DF(_QWY),
RGB_TOG, ________________RGB_L2_x5__________________, _______________CONFIG_R2_x5________________, XXXXXXX,
XXXXXXX, ________________RGB_L3_x5__________________, _______________CONFIG_R3_x5________________,DF(_CMK),
_______, _______, _______, _______, _______, _______
)
};
// clang-format on

View file

@ -1,11 +0,0 @@
OLED_ENABLE = yes
TAP_DANCE_ENABLE = yes
AUTO_SHIFT_ENABLE = no // disable auto-shift with home row mods
UNICODEMAP_ENABLE = yes
NKRO_ENABLE = yes
MAGIC_ENABLE = yes
RGBLIGHT_ENABLE = no
RGB_MATRIX_ENABLE = yes

View file

@ -1,49 +0,0 @@
/*
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
//#define USE_MATRIX_I2C
/* Select hand configuration */
#define MASTER_LEFT
// #define MASTER_RIGHT
// #define EE_HANDS
#define QUICK_TAP_TERM 0
#define TAPPING_TERM 300
#undef RGBLED_NUM
#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 RGBLED_NUM 27
#define RGBLIGHT_LIMIT_VAL 120
#define RGBLIGHT_HUE_STEP 10
#define RGBLIGHT_SAT_STEP 17
#define RGBLIGHT_VAL_STEP 17

View file

@ -1,39 +0,0 @@
#include QMK_KEYBOARD_H
#include "rs.h"
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_QWERTY] = LAYOUT(
//,----+----+----+----+----+----. ,----+----+----+----+----+----.
KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P ,KC_EQL ,
//|----+----+----+----+----+----| |----+----+----+----+----+----|
KC_ESCC, 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_ENTS,
//`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----'
KC_LALT,KC_LGUI,KC_SPC , KC_BSPC,KC_CODE,KC_FN
// `----+----+----' `+---+----+----'c
),
[_CODE] = LAYOUT(
//,----+----+----+----+----+----. ,----+----+----+----+----+----.
KC_GRV ,KC_EXLM, KC_AT ,KC_HASH, KC_DLR,KC_PERC, KC_CIRC,KC_LPLT,KC_ASTR,KC_RPGT,KC_NEQL,_______,
//|----+----+----+----+----+----| |----+----+----+----+----+----|
_______, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_MINS,KC_LBRC, KC_UP ,KC_RBRC,_______,KC_BSLS,
//|----+----+----+----+----+----+ |----+----+----+----+----+----|
_______, KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_AMPR,KC_LEFT,KC_DOWN,KC_RGHT,_______,KC_PIPE,
//`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----'
_______,_______,KC_DOT , _______,_______,_______
// `----+----+----' `----+----+----'
),
[_FN] = LAYOUT(
//,----+----+----+----+----+----. ,----+----+----+----+----+----.
_______, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10, KC_F11,
//|----+----+----+----+----+----| |----+----+----+----+----+----|
KC_LTOG,KC_LHUI,KC_LSAI,KC_LVAI,KC_LRST,KC_BRMU, KC_VOLU,_______,KC_PGUP,_______,_______,_______,
//|----+----+----+----+----+----+ |----+----+----+----+----+----|
KC_LMOD,KC_LHUD,KC_LSAD,KC_LVAD,KC_RST ,KC_BRMD, KC_VOLD,KC_CTRA,KC_PGDN,KC_CTRE,_______,_______,
//`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----'
_______,_______,_______, KC_MUTE,_______,_______
// `----+----+----' `----+----+----'
),
};

View file

@ -1,87 +0,0 @@
#ifdef OLED_ENABLE
#include QMK_KEYBOARD_H
#ifdef PROTOCOL_LUFA
#include "lufa.h"
#include "split_util.h"
#endif
// When add source files to SRC in rules.mk, you can use functions.
const char *read_logo(void);
const char *read_keylog(void);
const char *read_keylogs(void);
void set_keylog(uint16_t keycode, keyrecord_t *record);
void matrix_scan_user(void) { iota_gfx_task(); }
typedef struct {
uint8_t state;
char name[8];
} LAYER_DISPLAY_NAME;
#define LAYER_DISPLAY_MAX 5
const LAYER_DISPLAY_NAME layer_display_name[LAYER_DISPLAY_MAX] = {
{0, "Base"},
{2, "Code"},
{4, "Fn"},
{6, "Fn+Code"},
{__UINT8_MAX__, "?"},
};
static uint8_t layer_name_idx;
static char layer_status_buf[24] = "Layer: Base\n";
#ifdef RGBLIGHT_ENABLE
// Following line allows macro to read current RGB settings
extern rgblight_config_t rgblight_config;
void update_keymap_status(void) {
snprintf(layer_status_buf, sizeof(layer_status_buf) - 1, "Layer:%s RGB: %d\n",
layer_display_name[layer_name_idx].name, rgblight_config.mode);
}
#else
void update_keymap_status(void) {
snprintf(layer_status_buf, sizeof(layer_status_buf) - 1, "Layer:%s\n",
layer_display_name[layer_name_idx].name);
}
#endif
void matrix_init_user(void) {
update_keymap_status();
}
// declared in users/rs/rs.c
void rgb_mod_changed_keymap(void) {
update_keymap_status();
}
// declared in users/rs/rs.c
void keylog_set_keymap(uint16_t keycode, keyrecord_t *record) {
set_keylog(keycode, record);
}
layer_state_t layer_state_set_user(layer_state_t state) {
for (layer_name_idx = 0; layer_name_idx < LAYER_DISPLAY_MAX; ++layer_name_idx) {
if (state == 0 && layer_display_name[layer_name_idx].state == default_layer_state) {
break;
} else if (state != 0 && layer_display_name[layer_name_idx].state == state) {
break;
}
}
update_keymap_status();
return state;
}
static inline void render_keymap_status(struct CharacterMatrix *matrix) {
oled_write(layer_status_buf);
}
bool oled_task_user(void) {
if (is_keyboard_master()) {
render_keymap_status(matrix);
oled_write_ln(read_keylog(), false);
oled_write_ln(read_keylogs(), false);
} else {
oled_write(read_logo(), false);
}
return false;
}
#endif

View file

@ -1,19 +0,0 @@
# RS40: Code Friendly 40% Keymap
This keymap is an evolution of my previous keymap optimized for coding with a 60% keyboards like the Iris. I tried to keep the simplicity of my previous keymap with all the keys necessary for coding on a single layer in addition to the base one.
Because I sometime have to use my internal keyboard I my macbook, a karabiner configuration is also provided to get most of the features of this keyboard, including the code layer / backspace on right command key etc.
See [rs readme](../../../../users/rs/readme.md) for a list of other keyboards supported by this keymap.
## Base Layer
[![](http://poitr.us/moooMf+)](http://www.keyboard-layout-editor.com/##@_backcolor=%23d8c1f5&switchMount=cherry&pcb:false&plate:true%3B&@_x:3&c=%236750f2&t=%2344b8b8&a:7%3B&=E&_x:8%3B&=I%3B&@_y:-0.87&x:2%3B&=W&_x:1%3B&=R&_x:6%3B&=U&_x:1%3B&=O%3B&@_y:-0.8799999999999999&x:5%3B&=T&_x:4%3B&=Y%3B&@_y:-0.87&c=%233a1ee6&t=%23b84465%3B&=Tab&_c=%236750f2&t=%2344b8b8%3B&=Q&_x:12%3B&=P&_c=%233a1ee6&t=%23b84465&a:5%3B&=+%0A%2F=%3B&@_y:-0.3799999999999999&x:3&c=%236750f2&t=%2344b8b8&a:7%3B&=D&_x:8%3B&=K%3B&@_y:-0.8700000000000001&x:2%3B&=S&_x:1%3B&=F&_x:6%3B&=J&_x:1%3B&=L%3B&@_y:-0.8799999999999999&x:5%3B&=G&_x:4%3B&=H%3B&@_y:-0.8700000000000001&c=%233a1ee6&t=%23b84465&a:5%3B&=Esc%0ACtrl&_c=%236750f2&t=%2344b8b8&a:7%3B&=A&_x:12&a:5%3B&=%2F:%0A%2F%3B&_c=%233a1ee6&t=%23b84465%3B&=%22%0A'%3B&@_y:-0.3799999999999999&x:3&c=%236750f2&t=%2344b8b8&a:7%3B&=C&_x:8&a:5%3B&=%3C%0A,%3B&@_y:-0.8700000000000001&x:2&a:7%3B&=X&_x:1%3B&=V&_x:6%3B&=M&_x:1&a:5%3B&=%3E%0A.%3B&@_y:-0.8799999999999999&x:5&a:7%3B&=B&_x:4%3B&=N%3B&@_y:-0.8700000000000001&c=%233a1ee6&t=%23b84465%3B&=Shift&_c=%236750f2&t=%2344b8b8%3B&=Z&_x:12&a:5%3B&=%3F%0A%2F%2F&_c=%233a1ee6&t=%23b84465&a:7%3B&=Enter%3B&@_y:-0.17999999999999972&x:11.75%3B&=Fn%3B&@_ry:0.25&y:2.95&x:3.3%3B&=Alt%3B&@_r:12&ry:1.75&y:0.5&x:4.8%3B&=Cmd%3B&@_r:35&rx:6.5&ry:4.25&y:-0.75&x:-0.75&c=%23d12424&t=%23ffffff&h:1.5%3B&=Space%3B&@_r:-35&rx:13&y:-2.75&x:-3.0999999999999996&h:1.5%3B&=Back%20Space%3B&@_r:-12&rx:0&ry:0&y:5.55&x:9.55&c=%233a1ee6&t=%23b84465%3B&=Code)
## Code Layer
[![](http://poitr.us/GvljvC+)](http://www.keyboard-layout-editor.com/##@_backcolor=%23d8c1f5&switchMount=cherry&pcb:false&plate:true%3B&@_x:3&c=%236750f2&t=%2344b8b8&a:7%3B&=%23&_x:8%3B&=*%3B&@_y:-0.87&x:2%3B&=%2F@&_x:1%3B&=$&_x:6&a:5%3B&=%3C%0A(&_x:1%3B&=%3E%0A)%3B&@_y:-0.8799999999999999&x:5&a:7%3B&=%25&_x:4%3B&=%5E%3B&@_y:-0.87&c=%233a1ee6&t=%23b84465%3B&=Tab&_c=%236750f2&t=%2344b8b8%3B&=!&_x:12%3B&=!%2F=&_c=%233a1ee6&t=%23b84465&a:5%3B&=+%0A%2F=%3B&@_y:-0.3799999999999999&x:3&c=%236750f2&t=%2344b8b8&a:7%3B&=3&_x:8%3B&=↑%3B&@_y:-0.8700000000000001&x:2%3B&=2&_x:1%3B&=4&_x:6&a:5%3B&=%7B%0A%5B&_x:1%3B&=%7D%0A%5D%3B&@_y:-0.8799999999999999&x:5&a:7%3B&=5&_x:4&a:5%3B&=%2F_%0A-%3B&@_y:-0.8700000000000001&c=%233a1ee6&t=%23b84465%3B&=Esc%0ACtrl&_c=%236750f2&t=%2344b8b8&a:7%3B&=1&_x:12&a:5%3B&=%2F:%0A%2F%3B&_c=%233a1ee6&t=%23b84465%3B&=%7C%0A%5C%3B&@_y:-0.3799999999999999&x:3&c=%236750f2&t=%2344b8b8&a:7%3B&=8&_x:8%3B&=↓%3B&@_y:-0.8700000000000001&x:2%3B&=7&_x:1%3B&=9&_x:6%3B&=←&_x:1%3B&=→%3B&@_y:-0.8799999999999999&x:5%3B&=0&_x:4%3B&=%2F&%3B&@_y:-0.8700000000000001&c=%233a1ee6&t=%23b84465%3B&=Shift&_c=%236750f2&t=%2344b8b8%3B&=6&_x:12&a:5%3B&=%3F%0A%2F%2F&_c=%233a1ee6&t=%23b84465&a:7%3B&=Enter%3B&@_y:-0.17999999999999972&x:11.75%3B&=Fn%3B&@_ry:0.25&y:2.95&x:3.3%3B&=Alt%3B&@_r:12&ry:1.75&y:0.5&x:4.8%3B&=Cmd%3B&@_r:35&rx:6.5&ry:4.25&y:-0.75&x:-0.75&c=%23d12424&t=%23ffffff&h:1.5%3B&=.%3B&@_r:-35&rx:13&y:-2.75&x:-3.0999999999999996&h:1.5%3B&=Back%20Space%3B&@_r:-12&rx:0&ry:0&y:5.55&x:9.55&c=%233a1ee6&t=%23b84465%3B&=Code)
## Fn Layer
[![](http://poitr.us/OXwmBK+)](http://www.keyboard-layout-editor.com/##@_backcolor=%23d8c1f5&switchMount=cherry&pcb:false&plate:true%3B&@_x:3&c=%236750f2&t=%2344b8b8&a:7%3B&=F3&_x:8%3B&=F8%3B&@_y:-0.87&x:2%3B&=F2&_x:1%3B&=F4&_x:6%3B&=F7&_x:1%3B&=F9%3B&@_y:-0.8799999999999999&x:5%3B&=F5&_x:4%3B&=F6%3B&@_y:-0.87&c=%233a1ee6&t=%23b84465%3B&=&_c=%236750f2&t=%2344b8b8%3B&=F1&_x:12%3B&=F10&_c=%233a1ee6&t=%23b84465%3B&=F11%3B&@_y:-0.3799999999999999&x:3&c=%236750f2&t=%2344b8b8%3B&=RGB%20Value+&_x:8%3B&=Page%20Up%3B&@_y:-0.8700000000000001&x:2%3B&=RGB%20Sat+&_x:1%3B&=RGB%20Reset&_x:6%3B&=&_x:1%3B&=%3B&@_y:-0.8799999999999999&x:5%3B&=Bright+&_x:4%3B&=Vol+%3B&@_y:-0.8700000000000001&c=%233a1ee6&t=%23b84465%3B&=RGB%20Toggle&_c=%236750f2&t=%2344b8b8%3B&=RGB%20Hue+&_x:12%3B&=&_c=%233a1ee6&t=%23b84465%3B&=%3B&@_y:-0.3799999999999999&x:3&c=%236750f2&t=%2344b8b8%3B&=RGB%20Value-&_x:8%3B&=Page%20Down%3B&@_y:-0.8700000000000001&x:2%3B&=RGB%20Sat-&_x:1%3B&=Reset&_x:6%3B&=Ctrl+A&_x:1%3B&=Ctrl+E%3B&@_y:-0.8799999999999999&x:5%3B&=Bright-&_x:4%3B&=Vol-%3B&@_y:-0.8700000000000001&c=%233a1ee6&t=%23b84465%3B&=RGB%20Mode&_c=%236750f2&t=%2344b8b8%3B&=RGB%20Hue-&_x:12%3B&=&_c=%233a1ee6&t=%23b84465%3B&=%3B&@_y:-0.17999999999999972&x:11.75%3B&=Fn%3B&@_ry:0.25&y:2.95&x:3.3%3B&=%3B&@_r:12&ry:1.75&y:0.5&x:4.8%3B&=%3B&@_r:35&rx:6.5&ry:4.25&y:-0.75&x:-0.75&c=%23d12424&t=%23ffffff&h:1.5%3B&=%3B&@_r:-35&rx:13&y:-2.75&x:-3.0999999999999996&h:1.5%3B&=Mute%3B&@_r:-12&rx:0&ry:0&y:5.55&x:9.55&c=%233a1ee6&t=%23b84465%3B&=Code)

View file

@ -1,31 +0,0 @@
# Build Options
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
MOUSEKEY_ENABLE = no # Mouse keys(+4700)
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
CONSOLE_ENABLE = no # Console for debug(+400)
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
MIDI_ENABLE = no # MIDI controls
AUDIO_ENABLE = no # Audio output on port C6
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
SWAP_HANDS_ENABLE = no # Enable one-hand typing
TAP_DANCE_ENABLE = no
BOOTLOADER = atmel-dfu
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# If you want to change the display of OLED, you need to change here
SRC += oled.c \
./lib/rgb_state_reader.c \
./lib/layer_state_reader.c \
./lib/logo_reader.c \
./lib/keylogger.c \

View file

@ -1,58 +0,0 @@
/*
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
//#define USE_MATRIX_I2C
/* Select hand configuration */
#define MASTER_LEFT
// #define MASTER_RIGHT
// #define EE_HANDS
#define QUICK_TAP_TERM 0
#define TAPPING_TERM 200
#undef PERMISSIVE_HOLD
#ifdef RGBLIGHT_ENABLE
#undef RGBLED_NUM
#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 RGBLED_NUM 27
#define RGBLIGHT_LIMIT_VAL 120
#define RGBLIGHT_HUE_STEP 10
#define RGBLIGHT_SAT_STEP 17
#define RGBLIGHT_VAL_STEP 17
#endif
#define OLED_FONT_H "keyboards/crkbd/lib/glcdfont.c"
#define LAYER_STATE_8BIT
#define SPLIT_WPM_ENABLE

View file

@ -1,81 +0,0 @@
/*
* Copyright 2020 Drashna Jaelre <@drashna>
* Copyright 2021 Tyler Thrailkill <@snowe/@snowe2010>
*
* 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 GUI_ESC GUI_T(KC_ESC)
#define CTL_ESC CTL_T(KC_ESC)
#define SH_BKSP SFT_T(KC_BSPC)
#define SP_RAIS LT(_UPPER, KC_SPC)
#define LOWER MO(_LOWER)
#define RAISE MO(_UPPER)
#define ADJUST MO(_ADJUST)
#define TG_MODS TG(_MODS)
//#define TG_GAME TG(_GAMEPAD)
//#define OS_LWR OSL(_LOWER)
//#define OS_RSE OSL(_UPPER)
//#define KC_SEC1 KC_SECRET_1
//#define KC_SEC2 KC_SECRET_2
//#define KC_SEC3 KC_SECRET_3
//#define KC_SEC4 KC_SECRET_4
//#define KC_SEC5 KC_SECRET_5
#define QWERTY KC_QWERTY
#define DVORAK KC_DVORAK
#define COLEMAK KC_COLEMAK
#define WORKMAN KC_WORKMAN
#define KC_RESET QK_BOOT
#define KC_RST KC_RESET
#ifdef SWAP_HANDS_ENABLE
# define KC_C1R3 SH_TT
#else // SWAP_HANDS_ENABLE
# define KC_C1R3 KC_BSPC
#endif // SWAP_HANDS_ENABLE
#define BK_LWER LT(_LOWER, KC_BSPC)
#define SP_LWER LT(_LOWER, KC_SPC)
#define DL_RAIS LT(_UPPER, KC_DEL)
#define ET_RAIS LT(_UPPER, KC_ENTER)
#define SFT_ENT SFT_T(KC_ENTER)
#define SP_RAIS LT(_UPPER, KC_SPC)
/* OSM keycodes, to keep things clean and easy to change */
#define KC_MLSF OSM(MOD_LSFT)
#define KC_MRSF OSM(MOD_RSFT)
#define OS_LGUI OSM(MOD_LGUI)
#define OS_RGUI OSM(MOD_RGUI)
#define OS_LSFT OSM(MOD_LSFT)
#define OS_RSFT OSM(MOD_RSFT)
#define OS_LCTL OSM(MOD_LCTL)
#define OS_RCTL OSM(MOD_RCTL)
#define OS_LALT OSM(MOD_LALT)
#define OS_RALT OSM(MOD_RALT)
#define OS_MEH OSM(MOD_MEH)
#define OS_HYPR OSM(MOD_HYPR)
#define ALT_APP ALT_T(KC_APP)
#define MG_NKRO MAGIC_TOGGLE_NKRO
#define UC_IRNY UC(0x2E2E)
#define UC_CLUE UC(0x203D)

View file

@ -1,211 +0,0 @@
/*
Copyright 2019 @foostan
Copyright 2020 Drashna Jaelre <@drashna>
Copyright 2021 Tyler Thrailkill <@snowe/@snowe2010>
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 "snowe.h"
// Symbols chart
// ↯ hyper key (ctrl, alt, shift, super)
// ⌘ command
// ⌥ option
// ⌃ control
// ⇧ shift
// ⌫ backspace
// ⌦ delete
// ⎋ escape
// ↩ enter
/* Wrapper
* ,-----------------------------------------------. .-----------------------------------------------.
* | Tab | K01 | K02 | K03 | K04 | K05 | | K06 | K07 | K08 | K09 | K0A | |
* |-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------|
* | / | /K11 | K12 | K13 | K14 | K15 | | K16 | K17 | K18 | K19 | /K1A | |
* |-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------|
* | / | /K21 | K22 | K23 | K24 | K25 | | K26 | K27 | K28 | K29 | /K2A | |
* `-----------------------. | | .-----------------------'
* |-------+-------+-------| |-------+-------+-------|
* | | / | /LWR | | /RAY | | R |
* `-----------------------' '-----------------------'
*/
// clang-format off
#define LAYOUT_crkbd_base( \
K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \
K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \
K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A \
) \
LAYOUT_wrapper( \
KC_TAB, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, KC_MINS, \
GUI_ESC, CTL_T(K11), K12, K13, K14, K15, K16, K17, K18, K19, ALT_T(K1A), KC_QUOT, \
HYPR_T(KC_DEL), ALT_T(K21), K22, K23, K24, K25, K26, K27, K28, K29, RCTL_T(K2A), KC_BSLS, \
KC_LCTL, LOWER, SH_BKSP, KC_ENTER, SP_RAIS, KC_LALT \
)
// clang-format on
#define LAYOUT_crkbd_base_wrapper(...) LAYOUT_crkbd_base(__VA_ARGS__)
// clang-format off
#define LAYOUT_crkbd_no_hold_shortcuts( \
K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \
K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \
K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A \
) \
LAYOUT_wrapper( \
KC_TAB, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, KC_MINS, \
GUI_ESC, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, KC_QUOT, \
KC_LSFT, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, KC_BSLS, \
KC_LCTL, LOWER, KC_BSPC, KC_ENTER, SP_RAIS, KC_LALT \
)
// clang-format on
#define LAYOUT_crkbd_no_hold_shortcuts_wrapper(...) LAYOUT_crkbd_no_hold_shortcuts(__VA_ARGS__)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// clang-format off
/* QWERTY
* ,-----------------------------------------------. .-----------------------------------------------.
* | | Q | W | E | R | T | | Y | U | I | O | P | |
* |-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------|
* | | A | S | D | F | G | | H | J | K | L | ; | ' |
* |-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------|
* | | Z | X | C | V | B | | N | M | , | . | / | |
* `-----------------------. | | .-----------------------'
* |-------+-------+-------| |-------+-------+-------|
* | | | | | | | |
* `-----------------------' '-----------------------'
*/
[_MAIN] = LAYOUT_crkbd_base_wrapper(
_________________QWERTY_L1_________________, _________________QWERTY_R1_________________,
_________________QWERTY_L2_________________, _________________QWERTY_R2_________________,
_________________QWERTY_L3_________________, _________________QWERTY_R3_________________
),
[_GAMING] = LAYOUT_crkbd_no_hold_shortcuts_wrapper(
_________________QWERTY_L1_________________, _________________QWERTY_R1_________________,
_________________QWERTY_L2_________________, _________________QWERTY_R2_________________,
_________________QWERTY_L3_________________, _________________QWERTY_R3_________________
),
/* Lower
* ,-----------------------------------------------. .-----------------------------------------------.
* | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | |
* |-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------|
* | | | | | | | | | _ | + | [ | ] | |
* |-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------|
* | | | | | | | | | | | | | |
* `-----------------------. | | .-----------------------'
* |-------+-------+-------| |-------+-------+-------|
* | | | | | | | |
* `-----------------------' '-----------------------'
*/
[_LOWER] = LAYOUT_wrapper(
KC_TILDE, _________________LOWER_L1__________________, _________________LOWER_R1__________________, KC_F11,
KC_F12 , _________________LOWER_L2__________________, _________________LOWER_R2__________________, KC_PIPE,
_______ , _________________LOWER_L3__________________, _________________LOWER_R3__________________, _______,
_______, _______, _______, _______, _______, _______
),
/*
* ,-----------------------------------------------. .-----------------------------------------------.
* | | | | | | | | | | | | | |
* |-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------|
* | | | | | | | | | | | | | |
* |-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------|
* | | | | | | | | | | | | | |
* `-----------------------. | | .-----------------------'
* |-------+-------+-------| |-------+-------+-------|
* | | | | | | | |
* `-----------------------' '-----------------------'
*/
/* Raise
* ,-----------------------------------------------. .-----------------------------------------------.
* | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | |
* |-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------|
* | | | | | | | | | | | | | |
* |-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------|
* | | | | | | | | | home |pg down| pg up | end | |
* `-----------------------. | | .-----------------------'
* |-------+-------+-------| |-------+-------+-------|
* | | | | | | | |
* `-----------------------' '-----------------------'
*/
[_UPPER] = LAYOUT_wrapper(
KC_GRV, _________________RAISE_L1__________________, _________________RAISE_R1__________________, _______,
_______, _________________RAISE_L2__________________, _________________RAISE_R2__________________, KC_BSLS,
_______, _________________RAISE_L3__________________, _________________RAISE_R3__________________, _______,
_______, _______, _______, _______, _______, _______
),
[_ADJUST] = LAYOUT_wrapper(
_______, _________________ADJUST_L1_________________, _________________ADJUST_R1_________________, KC_RESET,
_______, _________________ADJUST_L2_________________, _________________ADJUST_R2_________________, EE_CLR,
_______, _________________ADJUST_L3_________________, _________________ADJUST_R3_________________, KC_MPLY,
_______, _______, _______, _______, _______, _______
)
// clang-format on
};
layer_state_t layer_state_set_user(layer_state_t state) { return update_tri_layer_state(state, _LOWER, _UPPER, _ADJUST); }
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case KC_LCTL:
case KC_RCTL:
#ifdef OCEAN_DREAM_ENABLE
is_calm = (record->event.pressed) ? true : false;
#endif
#ifdef LUNA_ENABLE
if (record->event.pressed) {
isSneaking = true;
} else {
isSneaking = false;
}
#endif
break;
case KC_SPC:
#ifdef LUNA_ENABLE
if (record->event.pressed) {
isJumping = true;
showedJump = false;
} else {
isJumping = false;
}
#endif
break;
}
return true;
}
// uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) {
// switch (keycode) {
// case ALT_T(KC_A):
// case SH_BKSP:
// return TAPPING_TERM + 500;
// default:
// return TAPPING_TERM;
// }
//}
//
// bool get_hold_on_other_key_press(uint16_t keycode, keyrecord_t *record) {
// if (keycode == ALT_T(KC_A) || keycode == SH_BKSP) {
// return false;
// }
// switch (keycode) {
// case QK_MOD_TAP ... QK_MOD_TAP_MAX:
// return true;
// default:
// return false;
// }
//}

View file

@ -1,25 +0,0 @@
BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
MOUSEKEY_ENABLE = no # Mouse keys(+4700)
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
CONSOLE_ENABLE = no # Console for debug(+400)
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
AUDIO_ENABLE = no # Audio output on port C6
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
LEADER_ENABLE = no
MIDI_ENABLE = no # MIDI controls
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
SWAP_HANDS_ENABLE = no # Enable one-hand typing
RGBLIGHT_TWINKLE = no
OLED_ENABLE = yes
RGB_MATRIX_ENABLE = yes
OCEAN_DREAM_ENABLE = yes
LUNA_ENABLE = no # disabled so travis build succeeds
# if firmware size over limit, try this option
LTO_ENABLE = yes
WPM_ENABLE = yes

View file

@ -1,123 +0,0 @@
/*
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
//#define USE_MATRIX_I2C
/* Select hand configuration */
#define MASTER_LEFT
// #define MASTER_RIGHT
// #define EE_HANDS
//#define QUICK_TAP_TERM 0
//#define TAPPING_TERM 100
#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_LIMIT_VAL 120
#define RGBLIGHT_HUE_STEP 10
#define RGBLIGHT_SAT_STEP 17
#define RGBLIGHT_VAL_STEP 17
#endif
#ifdef RGB_MATRIX_ENABLE
# define RGB_MATRIX_KEYPRESSES // reacts to keypresses
// # define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses)
# define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended
# define RGB_MATRIX_FRAMEBUFFER_EFFECTS
// # define RGB_MATRIX_LED_PROCESS_LIMIT (RGB_MATRIX_LED_COUNT + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness)
// # define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness)
# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 // limits maximum brightness of LEDs to 150 out of 255. Higher may cause the controller to crash.
# define RGB_MATRIX_HUE_STEP 8
# define RGB_MATRIX_SAT_STEP 8
# define RGB_MATRIX_VAL_STEP 8
# define RGB_MATRIX_SPD_STEP 10
/* Enable the animations you want/need. You may need to enable only a small number of these because *
* they take up a lot of space. Enable and confirm that you can still successfully compile your firmware. */
// RGB Matrix Animation modes. Explicitly enabled
// For full list of effects, see:
// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects
# undef ENABLE_RGB_MATRIX_ALPHAS_MODS
# undef ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
# undef ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
# undef ENABLE_RGB_MATRIX_BREATHING
# undef ENABLE_RGB_MATRIX_BAND_SAT
# undef ENABLE_RGB_MATRIX_BAND_VAL
# undef ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
# undef ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
# undef ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
# undef ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
# undef ENABLE_RGB_MATRIX_CYCLE_ALL
# undef ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
# undef ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
# undef ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
# undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN
# undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
# undef ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
# undef ENABLE_RGB_MATRIX_CYCLE_SPIRAL
# undef ENABLE_RGB_MATRIX_DUAL_BEACON
# undef ENABLE_RGB_MATRIX_RAINBOW_BEACON
# undef ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
# undef ENABLE_RGB_MATRIX_RAINDROPS
# undef ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
# undef ENABLE_RGB_MATRIX_HUE_BREATHING
# undef ENABLE_RGB_MATRIX_HUE_PENDULUM
# undef ENABLE_RGB_MATRIX_HUE_WAVE
# undef ENABLE_RGB_MATRIX_PIXEL_RAIN
# undef ENABLE_RGB_MATRIX_PIXEL_FLOW
# undef ENABLE_RGB_MATRIX_PIXEL_FRACTAL
// enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined
# undef ENABLE_RGB_MATRIX_TYPING_HEATMAP
# undef ENABLE_RGB_MATRIX_DIGITAL_RAIN
// enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined
# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE
# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
# define ENABLE_RGB_MATRIX_SPLASH
# undef ENABLE_RGB_MATRIX_MULTISPLASH
# undef ENABLE_RGB_MATRIX_SOLID_SPLASH
# undef ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
#endif
#define OLED_FONT_H "keyboards/crkbd/keymaps/toinux/glcdfont.c"
#define SPLIT_LAYER_STATE_ENABLE
// #define SPLIT_LED_STATE_ENABLE
#define LAYER_STATE_16BIT
#define HOLD_ON_OTHER_KEY_PRESS_PER_KEY

View file

@ -1,232 +0,0 @@
// This is the 'classic' fixed-space bitmap font for Adafruit_GFX since 1.0.
// See gfxfont.h for newer custom bitmap font info.
#include "progmem.h"
// Standard ASCII 5x7 font
const unsigned char font[] PROGMEM = {
0x24, 0x7E, 0x24, 0x24, 0x7E, 0x24,
0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00,
0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00,
0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00,
0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00,
0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00,
0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00,
0x00, 0x18, 0x3C, 0x18, 0x00, 0x00,
0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00,
0x00, 0x18, 0x24, 0x18, 0x00, 0x00,
0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00,
0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00,
0x26, 0x29, 0x79, 0x29, 0x26, 0x00,
0x40, 0x7F, 0x05, 0x05, 0x07, 0x00,
0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00,
0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00,
0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00,
0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00,
0x14, 0x22, 0x7F, 0x22, 0x14, 0x00,
0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00,
0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00,
0x00, 0x66, 0x89, 0x95, 0x6A, 0x00,
0x60, 0x60, 0x60, 0x60, 0x60, 0x00,
0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00,
0x08, 0x04, 0x7E, 0x04, 0x08, 0x00,
0x10, 0x20, 0x7E, 0x20, 0x10, 0x00,
0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00,
0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00,
0x1E, 0x10, 0x10, 0x10, 0x10, 0x00,
0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00,
0x30, 0x38, 0x3E, 0x38, 0x30, 0x00,
0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x5F, 0x00, 0x00, 0x00,
0x00, 0x07, 0x00, 0x07, 0x00, 0x00,
0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00,
0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00,
0x23, 0x13, 0x08, 0x64, 0x62, 0x00,
0x36, 0x49, 0x56, 0x20, 0x50, 0x00,
0x00, 0x08, 0x07, 0x03, 0x00, 0x00,
0x00, 0x1C, 0x22, 0x41, 0x00, 0x00,
0x00, 0x41, 0x22, 0x1C, 0x00, 0x00,
0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00,
0x08, 0x08, 0x3E, 0x08, 0x08, 0x00,
0x00, 0x80, 0x70, 0x30, 0x00, 0x00,
0x08, 0x08, 0x08, 0x08, 0x08, 0x00,
0x00, 0x00, 0x60, 0x60, 0x00, 0x00,
0x20, 0x10, 0x08, 0x04, 0x02, 0x00,
0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00,
0x00, 0x42, 0x7F, 0x40, 0x00, 0x00,
0x72, 0x49, 0x49, 0x49, 0x46, 0x00,
0x21, 0x41, 0x49, 0x4D, 0x33, 0x00,
0x18, 0x14, 0x12, 0x7F, 0x10, 0x00,
0x27, 0x45, 0x45, 0x45, 0x39, 0x00,
0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00,
0x41, 0x21, 0x11, 0x09, 0x07, 0x00,
0x36, 0x49, 0x49, 0x49, 0x36, 0x00,
0x46, 0x49, 0x49, 0x29, 0x1E, 0x00,
0x00, 0x00, 0x14, 0x00, 0x00, 0x00,
0x00, 0x40, 0x34, 0x00, 0x00, 0x00,
0x00, 0x08, 0x14, 0x22, 0x41, 0x00,
0x14, 0x14, 0x14, 0x14, 0x14, 0x00,
0x00, 0x41, 0x22, 0x14, 0x08, 0x00,
0x02, 0x01, 0x59, 0x09, 0x06, 0x00,
0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00,
0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00,
0x7F, 0x49, 0x49, 0x49, 0x36, 0x00,
0x3E, 0x41, 0x41, 0x41, 0x22, 0x00,
0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00,
0x7F, 0x49, 0x49, 0x49, 0x41, 0x00,
0x7F, 0x09, 0x09, 0x09, 0x01, 0x00,
0x3E, 0x41, 0x41, 0x51, 0x73, 0x00,
0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00,
0x00, 0x41, 0x7F, 0x41, 0x00, 0x00,
0x20, 0x40, 0x41, 0x3F, 0x01, 0x00,
0x7F, 0x08, 0x14, 0x22, 0x41, 0x00,
0x7F, 0x40, 0x40, 0x40, 0x40, 0x00,
0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00,
0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00,
0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00,
0x7F, 0x09, 0x09, 0x09, 0x06, 0x00,
0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00,
0x7F, 0x09, 0x19, 0x29, 0x46, 0x00,
0x26, 0x49, 0x49, 0x49, 0x32, 0x00,
0x03, 0x01, 0x7F, 0x01, 0x03, 0x00,
0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00,
0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00,
0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00,
0x63, 0x14, 0x08, 0x14, 0x63, 0x00,
0x03, 0x04, 0x78, 0x04, 0x03, 0x00,
0x61, 0x59, 0x49, 0x4D, 0x43, 0x00,
0x00, 0x7F, 0x41, 0x41, 0x41, 0x00,
0x02, 0x04, 0x08, 0x10, 0x20, 0x00,
0x00, 0x41, 0x41, 0x41, 0x7F, 0x00,
0x04, 0x02, 0x01, 0x02, 0x04, 0x00,
0x40, 0x40, 0x40, 0x40, 0x40, 0x00,
0x00, 0x03, 0x07, 0x08, 0x00, 0x00,
0x20, 0xD4, 0x54, 0x78, 0x40, 0x00,
0x7F, 0x28, 0x44, 0x44, 0x38, 0x00,
0x38, 0x44, 0x44, 0x44, 0x28, 0x00,
0x38, 0x44, 0x44, 0x28, 0x7F, 0x00,
0x38, 0x54, 0x54, 0x54, 0x18, 0x00,
0x00, 0x08, 0x7E, 0x09, 0x02, 0x00,
0x48, 0x54, 0x54, 0x54, 0x28, 0x00,
0x7F, 0x08, 0x04, 0x04, 0x78, 0x00,
0x00, 0x44, 0x7D, 0x40, 0x00, 0x00,
0x20, 0x40, 0x40, 0x3D, 0x00, 0x00,
0x7F, 0x10, 0x28, 0x44, 0x00, 0x00,
0x00, 0x41, 0x7F, 0x40, 0x00, 0x00,
0x7C, 0x04, 0x78, 0x04, 0x78, 0x00,
0x7C, 0x08, 0x04, 0x04, 0x78, 0x00,
0x38, 0x44, 0x44, 0x44, 0x38, 0x00,
0x7C, 0x18, 0x24, 0x24, 0x18, 0x00,
0x18, 0x24, 0x24, 0x18, 0x7C, 0x00,
0x7C, 0x08, 0x04, 0x04, 0x08, 0x00,
0x48, 0x54, 0x54, 0x54, 0x24, 0x00,
0x04, 0x04, 0x3F, 0x44, 0x24, 0x00,
0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00,
0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00,
0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00,
0x44, 0x28, 0x10, 0x28, 0x44, 0x00,
0x4C, 0x50, 0x50, 0x50, 0x3C, 0x00,
0x44, 0x64, 0x54, 0x4C, 0x44, 0x00,
0x00, 0x08, 0x36, 0x41, 0x00, 0x00,
0x00, 0x00, 0x77, 0x00, 0x00, 0x00,
0x00, 0x41, 0x36, 0x08, 0x00, 0x00,
0x02, 0x01, 0x02, 0x04, 0x02, 0x00,
0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00,
0x83, 0xC3, 0xC3, 0xC3, 0x9B, 0x03,
0x03, 0x01, 0x00, 0x00, 0x00, 0x00,
0x36, 0x32, 0x32, 0x32, 0x32, 0x32,
0x32, 0xE6, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xFF, 0xFF, 0xFF, 0xFF, 0xE1, 0xFE,
0xFF, 0xE1, 0xFF, 0xFF, 0xFF, 0xFF,
0x80, 0x80, 0x80, 0x80, 0x9E, 0x81,
0x80, 0x9E, 0x80, 0x80, 0x80, 0x80,
0xFF, 0xEF, 0xD7, 0x0F, 0xDF, 0xDF,
0xDF, 0xDF, 0x0F, 0xD7, 0xEF, 0xFF,
0x01, 0x11, 0x29, 0xF1, 0x21, 0x21,
0x21, 0x21, 0xF1, 0x29, 0x11, 0x01,
0x00, 0x00, 0x00, 0xFC, 0xFE, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xF7, 0xEF,
0xDF, 0xBF, 0x7F, 0xFF, 0xFF, 0xFF,
0xFF, 0xFE, 0xFC, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xFC, 0x02, 0x01,
0x01, 0x01, 0x01, 0x01, 0x09, 0x11,
0x21, 0x41, 0x81, 0x01, 0x01, 0x01,
0x01, 0x02, 0xFC, 0x00, 0x00, 0x00,
0x3E, 0xFF, 0xF8, 0xF8, 0xFF, 0x3E,
0x00, 0xE0, 0xF0, 0xF0, 0xF0, 0xE0,
0x63, 0x73, 0x7B, 0x6F, 0x67, 0x63,
0x07, 0x7F, 0x7F, 0x07, 0x7F, 0x7F,
0x08, 0x08, 0x7F, 0x3E, 0x1C, 0x08,
0x08, 0x1C, 0x3E, 0x7F, 0x08, 0x08,
0x63, 0x7F, 0x7F, 0x63, 0x7F, 0x3E,
0x1F, 0x3F, 0x63, 0x63, 0x3F, 0x1F,
0x73, 0x3B, 0x1F, 0x1F, 0x3B, 0x73,
0x3C, 0x00, 0x00, 0x00, 0x00, 0x00,
0x8F, 0x8C, 0x0C, 0x0C, 0x0F, 0x0C,
0x8C, 0xAC, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x80, 0x83, 0x82, 0x82, 0x9E, 0x88,
0x84, 0x82, 0x81, 0x80, 0x80, 0x80,
0xFF, 0xEF, 0xD7, 0xE0, 0xF7, 0xF7,
0xF7, 0xF7, 0xE0, 0xD7, 0xEF, 0xFF,
0x00, 0x10, 0x28, 0x1F, 0x08, 0x08,
0x08, 0x08, 0x1F, 0x28, 0x10, 0x00,
0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0xEF,
0xF7, 0xFB, 0xFD, 0xFE, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xFF, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x20, 0x10,
0x08, 0x04, 0x02, 0x01, 0x00, 0x00,
0x00, 0x00, 0xFF, 0x00, 0x00, 0x00,
0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00,
0xFF, 0xFF, 0xBD, 0x81, 0x81, 0x00,
0x63, 0x7F, 0x7F, 0x63, 0x7F, 0x3E,
0x3E, 0x7F, 0x77, 0x77, 0x77, 0x77,
0x08, 0x08, 0x7F, 0x3E, 0x1C, 0x08,
0x08, 0x1C, 0x3E, 0x7F, 0x08, 0x08,
0x7F, 0x7F, 0x03, 0x03, 0x7F, 0x7F,
0x1C, 0x1C, 0x1C, 0x1C, 0x7F, 0x7F,
0x03, 0x7F, 0x7F, 0x63, 0x7F, 0x1F,
0x3C, 0x00, 0x00, 0x00, 0x00, 0x00,
0xD9, 0x99, 0x9B, 0x9E, 0x9E, 0x9B,
0x99, 0xD9, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xFF, 0xFC, 0xFD, 0xFD, 0xE1, 0xF7,
0xFB, 0xFD, 0xFE, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0x7F, 0xBF, 0xDF, 0xE1, 0xFF, 0xFF,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x80, 0x40, 0x3C, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3F, 0x7F, 0xFF,
0xFF, 0x1F, 0xDF, 0xDF, 0xC3, 0xF7,
0xEF, 0xDF, 0xBF, 0x7F, 0xFF, 0xFF,
0xFF, 0x7F, 0x3F, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x3F, 0x40, 0x80,
0x00, 0xE0, 0x20, 0x20, 0x3C, 0x08,
0x10, 0x20, 0x40, 0x80, 0x00, 0x00,
0x80, 0x40, 0x3F, 0x00, 0x00, 0x00,
0x00, 0x7F, 0xE3, 0xE3, 0x7F, 0x00,
0x00, 0x07, 0x0F, 0x0F, 0x0F, 0x07,
0x1C, 0x3E, 0x77, 0x63, 0x63, 0x63,
0x63, 0x73, 0x7B, 0x6F, 0x67, 0x63,
0x08, 0x08, 0x7F, 0x3E, 0x1C, 0x08,
0x08, 0x1C, 0x3E, 0x7F, 0x08, 0x08,
0x7F, 0x7F, 0x03, 0x03, 0x7F, 0x7F,
0x7F, 0x7F, 0x03, 0x03, 0x7F, 0x7F,
0x3E, 0x7F, 0x63, 0x63, 0x63, 0x63,
0x3C, 0x00, 0x00, 0x00, 0x00, 0x00,
};

View file

@ -1,49 +0,0 @@
/* Copyright 2022 @toinux
*
* 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
enum crkbd_layers {
_BASE,
_GAMING,
_GAMING2,
_ACCENTS,
_LOWER,
_RAISE,
_FUN,
_NAV,
_MOUSE,
_ADJUST
};
#define CTRLSC LCTL_T(KC_ESC)
#define QUORCTL RCTL_T(KC_QUOT)
#define MOSCLN LT(_MOUSE,KC_SCLN)
#define ACCENTS LT(_ACCENTS,KC_RALT)
#define FUN LT(_FUN,KC_SPC)
#define LOWER MO(_LOWER)
#define RAISE MO(_RAISE)
#define SPCNAV LT(_NAV,KC_SPC)
#define SFTENT MT(MOD_RSFT,KC_ENT)
#define TABLGUI LGUI_T(KC_TAB)
#define BASE DF(_BASE)
#define GAMING DF(_GAMING)
#define GAMING2 MO(_GAMING2)
#define SC_F1 LSFT(LCTL(KC_F1))
#define SC_F2 LSFT(LCTL(KC_F2))
#define SC_F3 LSFT(LCTL(KC_F3))
#define SC_F4 LSFT(LCTL(KC_F4))

View file

@ -1,259 +0,0 @@
/*
Copyright 2019 @foostan
Copyright 2020 Drashna Jaelre <@drashna>
Copyright 2022 @toinux
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 "users/toinux/keymap_qwerty_fr.h"
#include "keycodes.h"
#ifdef OLED_ENABLE
#include "oled.h"
#endif
// TEMPLATE
// ,-----------------------------------------------------. ,-----------------------------------------------------.
// | | | | | | | | | | | | | |
// |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
// | | | | | | | | | | | | | |
// |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
// | | | | | | | | | | | | | |
// `--------+--------+--------+--------+--------+--------+--------. .--------+--------+--------+--------+--------+--------+--------'
// | | | | | | | |
// `--------------------------' `--------------------------'
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// Base
// ,-----------------------------------------------------. ,-----------------------------------------------------.
// |Tab/LGui| Q | W | E | R | T | | Y | U | I | O | P | Bksp |
// |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
// | CtrlSc | A | S | D | F | G | | H | J | K | L | ;/Mous | '/Rctl |
// |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
// | Shift | Z | X | C | V | B | | N | M | , | . | / | SftEnT |
// `--------+--------+--------+--------+--------+--------+--------. .--------+--------+--------+--------+--------+--------+--------'
// | LALT | LOWER |Spc/FUN | | Spc/NAV| RAISE |ACCENTS |
// `--------------------------' `--------------------------'
[_BASE] = LAYOUT_split_3x6_3(
TABLGUI, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
CTRLSC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, MOSCLN, QUORCTL,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFTENT,
KC_LALT, LOWER, FUN, SPCNAV, RAISE, ACCENTS
),
// Gaming
// ,-----------------------------------------------------. ,-----------------------------------------------------.
// | Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp |
// |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
// | Ctrl | A | S | D | F | G | | H | J | K | L | ;/Mous | ' |
// |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
// | Shift | Z | X | C | V | B | | N | M | , | . | / | SftEnT |
// `--------+--------+--------+--------+--------+--------+--------. .--------+--------+--------+--------+--------+--------+--------'
// | LALT |GAMING2 | Space | | Spc/NAV| RAISE |ACCENTS |
// `--------------------------' `--------------------------'
[_GAMING] = LAYOUT_split_3x6_3(
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, MOSCLN, KC_QUOT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFTENT,
KC_LALT, GAMING2, KC_SPC, SPCNAV, RAISE, ACCENTS
),
// Gaming 2
// ,-----------------------------------------------------. ,-----------------------------------------------------.
// | Tab | 1 | 2 | 3 | 4 | 5 | | | | | | | |
// |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
// | Esc | 6 | 7 | 8 | 9 | 0 | | | | | | | |
// |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
// | LGui | Base | | Vol- | Vol+ | Mute | | | | | | | |
// `--------+--------+--------+--------+--------+--------+--------. .--------+--------+--------+--------+--------+--------+--------'
// | | | | | | | |
// `--------------------------' `--------------------------'
[_GAMING2] = LAYOUT_split_3x6_3(
KC_TAB, KC_1, KC_2, KC_3, KC_4, KC_5, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
KC_ESC, KC_6, KC_7, KC_8, KC_9, KC_0, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
KC_LGUI, BASE, XXXXXXX, KC_VOLD, KC_VOLU, KC_MUTE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
_______, _______, _______, _______, _______, _______
),
// Accents, see http://marin.jb.free.fr/qwerty-fr/
// ,-----------------------------------------------------. ,-----------------------------------------------------.
// | | â | é | è | ê | € | | û | ù | î | ô | œ | |
// |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
// | | à | æ | ë | | « | | » | ü | ï | ö | ° | |
// |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
// | | à | | ç | | | | | | | | | |
// `--------+--------+--------+--------+--------+--------+--------. .--------+--------+--------+--------+--------+--------+--------'
// | | | | | | | |
// `--------------------------' `--------------------------'
[_ACCENTS] = LAYOUT_split_3x6_3(
_______, QF_ACIR, QF_EACU, QF_EGRV, QF_ECIR, QF_EURO, QF_UCIR, QF_UGRV, QF_ICIR, QF_OCIR, QF_OE, _______,
_______, QF_AGRV, QF_AE, QF_EDIA, _______, QF_LDAQ, QF_RDAQ, QF_UDIA, QF_IDIA, QF_ODIA, QF_DEG, _______,
_______, QF_AGRV, _______, QF_CCED, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______
),
// Lower
// ,-----------------------------------------------------. ,-----------------------------------------------------.
// | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | Del |
// |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
// | | SC_F1 | SC_F2 | SC_F3 | SC_F4 | | | | _ | + | { | } | | |
// |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
// | | Gaming | | Vol- | Vol+ | Mute | | | | | | | |
// `--------+--------+--------+--------+--------+--------+--------. .--------+--------+--------+--------+--------+--------+--------'
// | | | | | | | |
// `--------------------------' `--------------------------'
[_LOWER] = LAYOUT_split_3x6_3(
KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL,
_______, SC_F1, SC_F2, SC_F3, SC_F4, XXXXXXX, XXXXXXX, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
_______, GAMING, XXXXXXX, KC_VOLD, KC_VOLU, KC_MUTE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______,
_______, _______, _______, _______, _______, _______
),
// Raise
// ,-----------------------------------------------------. ,-----------------------------------------------------.
// | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Del |
// |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
// | | | | | | | | | - | = | [ | ] | \ |
// |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
// | | | | | | | | | | | | | |
// `--------+--------+--------+--------+--------+--------+--------. .--------+--------+--------+--------+--------+--------+--------'
// | | | | | | | |
// `--------------------------' `--------------------------'
[_RAISE] = LAYOUT_split_3x6_3(
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______,
_______, _______, _______, _______, _______, _______
),
// Functions and keypad
// ,-----------------------------------------------------. ,-----------------------------------------------------.
// | | F1 | F2 | F2 | F4 | | | | 7 | 8 | 9 | | |
// |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
// | | F5 | F6 | F7 | F8 | | | | 4 | 5 | 6 | - | / |
// |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
// | | F9 | F10 | F11 | F12 | | | | 1 | 2 | 3 | + | * |
// `--------+--------+--------+--------+--------+--------+--------. .--------+--------+--------+--------+--------+--------+--------'
// | | | | | = | 0 | . |
// `--------------------------' `--------------------------'
[_FUN] = LAYOUT_split_3x6_3(
_______, KC_F1, KC_F2, KC_F3, KC_F4, XXXXXXX, XXXXXXX, KC_P7, KC_P8, KC_P9, XXXXXXX, _______,
_______, KC_F5, KC_F6, KC_F7, KC_F8, XXXXXXX, XXXXXXX, KC_P4, KC_P5, KC_P6, KC_PMNS, KC_PSLS,
_______, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, XXXXXXX, KC_P1, KC_P2, KC_P3, KC_PPLS, KC_PAST,
_______, _______, _______, KC_PENT, KC_P0, KC_PDOT
),
// Navigation and function keys
// ,-----------------------------------------------------. ,-----------------------------------------------------.
// | | F1 | F2 | F2 | F4 | | | | Pg Up | Up | Pg Dn | Ins | Del |
// |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
// | | F5 | F6 | F7 | F8 | | | Home | Left | Down | Right | | |
// |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
// | | F9 | F10 | F11 | F12 | | | Space | End | | | | |
// `--------+--------+--------+--------+--------+--------+--------. .--------+--------+--------+--------+--------+--------+--------'
// | | | | | | | |
// `--------------------------' `--------------------------'
[_NAV] = LAYOUT_split_3x6_3(
_______, KC_F1, KC_F2, KC_F3, KC_F4, XXXXXXX, XXXXXXX, KC_PGUP, KC_UP, KC_PGDN, KC_INS, KC_DEL,
_______, KC_F5, KC_F6, KC_F7, KC_F8, XXXXXXX, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, XXXXXXX, XXXXXXX,
_______, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, KC_SPC, KC_END, XXXXXXX, XXXXXXX, XXXXXXX, _______,
_______, _______, _______, _______, _______, _______
),
// Mouse
// ,-----------------------------------------------------. ,-----------------------------------------------------.
// | | | Wh up | Ms up | Wh dn | | | | | | | | |
// |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
// | | | Ms lft | Ms dn | Ms rgt | | | | btn1 | btn3 | btn2 | | |
// |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
// | | | Wh lft | | Wh rgt | | | | | | | | |
// `--------+--------+--------+--------+--------+--------+--------. .--------+--------+--------+--------+--------+--------+--------'
// | | | | | | | |
// `--------------------------' `--------------------------'
[_MOUSE] = LAYOUT_split_3x6_3(
_______, _______, KC_WH_U, KC_MS_U, KC_WH_D, _______, _______, _______, _______, _______, _______, _______,
_______, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, KC_BTN1, KC_BTN3, KC_BTN2, _______, _______,
_______, _______, KC_WH_L, _______, KC_WH_R, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______
),
// Adjust
// ,-----------------------------------------------------. ,-----------------------------------------------------.
// | Reset | | | | | Print | | Num | Caps | Scroll | | | |
// |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
// | On/Off | Hue ↑ | Sat ↑ | Brght ↑| | | | | | | | | |
// |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
// | Cycle | Hue ↓ | Sat ↓ | Brght ↓| | | | | | | | | |
// `--------+--------+--------+--------+--------+--------+--------. .--------+--------+--------+--------+--------+--------+--------'
// | | | | | | | |
// `--------------------------' `--------------------------'
[_ADJUST] = LAYOUT_split_3x6_3(
QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PSCR, KC_NUM, KC_CAPS, KC_SCRL, XXXXXXX, XXXXXXX, XXXXXXX,
RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
_______, _______, _______, _______, _______, _______
)
};
layer_state_t layer_state_set_user(layer_state_t state) {
return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
}
bool get_hold_on_other_key_press(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case CTRLSC:
return true;
default:
return false;
}
}
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
#ifdef OLED_ENABLE
if (record->event.pressed) {
set_keylog(keycode, record);
}
#endif // OLED_ENABLE
switch (keycode) {
case FUN:
if (!host_keyboard_led_state().num_lock) {
tap_code(KC_NUM_LOCK);
}
return true;
break;
}
return true;
}
void keyboard_post_init_user(void) {
#if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE)
rgb_matrix_mode_noeeprom(RGB_MATRIX_SOLID_COLOR);
rgb_matrix_sethsv_noeeprom(HSV_OFF);
#endif
}

View file

@ -1,112 +0,0 @@
/* Copyright 2022 @toinux
*
* 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 "keycodes.h"
#include "oled.h"
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
if (!is_keyboard_master()) {
return OLED_ROTATION_180; // flips the display 180 degrees if offhand
}
return rotation;
}
void oled_render_mod_status(void) {
const uint8_t modifiers = get_mods() | get_oneshot_mods();
for (uint8_t i = 0; i < 2; i++) {
oled_set_cursor(9,i);
oled_write_P(gui_icon[(modifiers & MOD_MASK_GUI) ? 1 : 0][i], false);
oled_write_P(ctrl_icon[(modifiers & MOD_MASK_CTRL) ? 1 : 0][i], false);
oled_set_cursor(9,i+2);
oled_write_P(alt_icon[(modifiers & MOD_MASK_ALT) ? 1 : 0][i], false);
oled_write_P(shift_icon[(modifiers & MOD_MASK_SHIFT) ? 1 : 0][i], false);
}
}
void oled_render_layer_state(void) {
char c = 0x9F - get_highest_layer(layer_state|default_layer_state);
oled_set_cursor(20,0);
oled_write_char(0X00, false);
oled_set_cursor(20,1);
oled_write_char(c, false);
c += 32;
oled_set_cursor(20,2);
oled_write_char(c, false);
c += 32;
oled_set_cursor(20,3);
oled_write_char(c, false);
}
void oled_render_led_state(void) {
// oled_advance_page(false) instead of oled_write_ln_P to not break OLED_TIMEOUT
oled_write_P(PSTR("NUM"), host_keyboard_led_state().num_lock);
oled_advance_page(false);
oled_write_P(PSTR("CAP"), host_keyboard_led_state().caps_lock);
oled_advance_page(false);
oled_write_P(PSTR("SCL"), host_keyboard_led_state().scroll_lock);
oled_advance_page(false);
}
uint8_t last_row = 0;
uint8_t last_col = 0;
void set_keylog(uint16_t keycode, keyrecord_t *record) {
last_row = record->event.key.row;
last_col = record->event.key.col;
}
void oled_render_keylog(void) {
oled_write_char(last_row + '0', false);
oled_write_char('x', false);
oled_write_char(last_col + '0', false);
}
void oled_render_logo(void) {
static const char PROGMEM kpu_logo[][3] = {
{0x82, 0x83, 0},
{0x80, 0x81, 0},
{0xa0, 0xa1, 0},
{0xc0, 0xc1, 0}
};
for (uint8_t i = 0; i < 4; i++) {
oled_write_ln_P(kpu_logo[i], false);
}
}
bool oled_task_user(void) {
if (is_keyboard_master ()) {
oled_render_led_state();
oled_render_keylog();
oled_render_mod_status();
oled_render_layer_state();
} else {
oled_render_logo();
oled_scroll_right();
oled_scroll_set_speed(4);
}
return false;
}

View file

@ -1,71 +0,0 @@
/* Copyright 2022 @toinux
*
* 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
static const char PROGMEM ctrl_icon[2][2][4] = {
{
// off
{0x93, 0x94, 0x95, 0},
{0xB3, 0xB4, 0xB5, 0},
},
{
// on
{0x8F ,0x90, 0x91, 0},
{0xAF ,0xB0, 0xB1, 0},
}
};
static const char PROGMEM shift_icon[2][2][4] = {
{
// off
{0xD3, 0xD4, 0xB5, 0},
{0xA8, 0xA9, 0xD5, 0},
},
{
// on
{0xCF ,0xD0, 0xB1, 0},
{0xC8 ,0xC9, 0xD1, 0},
}
};
static const char PROGMEM gui_icon[2][2][4] = {
{
// off
{0x92, 0x8C, 0x8D, 0},
{0xB2, 0xAC, 0xAD, 0},
},
{
// on
{0x8E ,0x8A, 0x8B, 0},
{0xAE ,0xAA, 0xAB, 0},
}
};
static const char PROGMEM alt_icon[2][2][4] = {
{
// off
{0xB2, 0xCC, 0xCD, 0},
{0xD2, 0x88, 0x89, 0},
},
{
// on
{0xAE ,0xCA, 0xCB, 0},
{0xCE ,0x86, 0x87, 0},
}
};
void set_keylog(uint16_t keycode, keyrecord_t *record);

View file

@ -1,72 +0,0 @@
/* Copyright 2022 @toinux
*
* 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 "keycodes.h"
static const char gaming_leds[] = {18, 22, 19, 16};
static const char gaming2_leds[] = {23, 18, 17, 10, 9, 22, 19, 16, 11, 8};
static const char nav_leds[] = {38, 43, 44, 46};
static const char fun_leds[] = {45, 44, 37, 46, 43, 38, 47, 42, 39, 40};
static const char mouse_leds[] = {11, 16, 17, 19};
static const char adjust_leds[] = {6, 33};
bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
if (host_keyboard_led_state().caps_lock) {
rgb_matrix_set_color(26, RGB_RED);
}
switch(get_highest_layer(layer_state|default_layer_state)) {
case _GAMING:
if (is_keyboard_master()) {
for (uint8_t i = 0; i < 4; i++) {
rgb_matrix_set_color(gaming_leds[i], 0x88, 0x00, 0x00);
}
}
break;
case _GAMING2:
if (is_keyboard_master()) {
for (uint8_t i = 0; i < 10; i++) {
rgb_matrix_set_color(gaming2_leds[i], RGB_GREEN);
}
}
break;
case _NAV:
for (uint8_t i = 0; i < 4; i++) {
rgb_matrix_set_color(nav_leds[i], RGB_BLUE);
}
break;
case _FUN:
for (uint8_t i = 0; i < 10; i++) {
rgb_matrix_set_color(fun_leds[i], RGB_GREEN);
}
break;
case _ADJUST:
for (uint8_t i = 0; i < 2; i++) {
rgb_matrix_set_color(adjust_leds[i], RGB_RED);
}
break;
case _MOUSE:
if (is_keyboard_master()) {
for (uint8_t i = 0; i < 4; i++) {
rgb_matrix_set_color(mouse_leds[i], RGB_PURPLE);
}
}
break;
}
return false;
}

View file

@ -1,8 +0,0 @@
MOUSEKEY_ENABLE = yes # Mouse keys
RGBLIGHT_ENABLE = no
RGB_MATRIX_ENABLE = yes
OLED_ENABLE = yes
LTO_ENABLE = yes
BOOTLOADER = atmel-dfu
SRC += ./oled.c ./rgb.c

View file

@ -1,46 +0,0 @@
#include QMK_KEYBOARD_H
#include "tominabox1.h"
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_BASE] = LAYOUT_wrapper(
___________________CRKBD1__________________,
___________________CRKBD2__________________,
___________________CRKBD3__________________,
___________________CRKBD4__________________
),
[_RAISE] = LAYOUT_wrapper(
___________________RAISE1__________________,
___________________RAISE2__________________,
___________________CRKBD_RAISE3____________,
___________________CRKBD_RAISE4____________
),
[_LOWER] = LAYOUT_wrapper(
_________________LOWER_1___________________,
_________________LOWER_2___________________,
___________________CRKBD_LOW3______________,
___________________CRKBD_LOW4______________
),
[_ADJUST] = LAYOUT_wrapper(
___________________ADJST1__________________,
___________________CRKBD_ADJST2____________,
___________________CRKBD_ADJST3____________,
___________________CRKBD_ADJST4____________
),
[_ARROW] = LAYOUT_wrapper(
___________________ARROW1__________________,
___________________ARROW2__________________,
___________________ARROW3__________________,
___________________ARROW4__________________
),
[_FKEY] = LAYOUT_wrapper(
___________________FKEY1___________________,
___________________FKEY2___________________,
___________________CRKBD_FKEY3_____________,
___________________CRKBD_FKEY4_____________
)
};

View file

@ -1,44 +0,0 @@
// Copyright 2022 LucW (@luc-languagetools)
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
/* Select hand configuration */
// #define MASTER_LEFT
#define MASTER_RIGHT
// #define EE_HANDS
//#define QUICK_TAP_TERM 0
//#define TAPPING_TERM 100
// #define DOUBLE_TAP_SHIFT_TURNS_ON_CAPS_WORD
#define BOTH_SHIFTS_TURNS_ON_CAPS_WORD
// MOUSE SETTINGS
// ==============
#define MOUSEKEY_TIME_TO_MAX 200
#define RGBLIGHT_LAYERS
#ifdef RGBLIGHT_ENABLE
#define RGBLIGHT_LIMIT_VAL 90
// #define RGBLIGHT_LIMIT_VAL 0
#define RGBLIGHT_HUE_STEP 10
#define RGBLIGHT_SAT_STEP 17
#define RGBLIGHT_VAL_STEP 17
#endif
#ifdef RGB_MATRIX_ENABLE
// #define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
// #define RGB_MATRIX_KEYPRESSES // reacts to keypresses
// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
// #define ENABLE_RGB_MATRIX_SPLASH
//#define ENABLE_RGB_MATRIX_SOLID_SPLASH
#endif
#define OLED_FONT_H "keyboards/crkbd/lib/glcdfont.c"

View file

@ -1,289 +0,0 @@
// Copyright 2022 LucW (@luc-languagetools)
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
#include <stdio.h>
#include "dvorak_42_key.h"
// to build: qmk compile -kb crkbd/rev1 -km dvorak_42_key
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[BASE] = LAYOUT_split_3x6_3(
//,-----------------------------------------------------. ,-----------------------------------------------------.
OSL(VSCODE), KC_QUOTE, KC_COMMA, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_TAB,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
OSL(SHELL_NAV), KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, TD(TD_DEL_WORD_DEL),
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
OSM(MOD_LSFT),KC_SEMICOLON, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, OSM(MOD_LSFT),
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
MO(BROWSER_CONTROL), MO(COMBINED),MO(KEYNAV), KC_ENTER, KC_SPACE, OSL(SHORTCUTS)
//`--------------------------' `--------------------------'
),
[KEYNAV] = LAYOUT_split_3x6_3(
//,-----------------------------------------------------. ,-----------------------------------------------------.
KC_ESC, RCTL(KC_ENTER), RCTL(KC_K), RCTL(KC_Z), RCTL(KC_S), RCTL(KC_N), KC_TRNS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_DELETE,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_TRNS, MO(KEYSEL), KC_TRNS, RSFT(KC_TAB), KC_TAB, RCTL(KC_F), LCTL(KC_LEFT), KC_LEFT, KC_DOWN, KC_RIGHT, LCTL(KC_RIGHT), KC_BSPC,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_TRNS, RCTL(KC_P), RCTL(KC_O), RCTL(KC_A), RCTL(KC_B), NP_DUPE_LINE, KC_TRNS, RCTL(KC_C), RCTL(KC_X), RCTL(KC_V), KC_PGDN, RCTL(KC_DELETE),
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
//`--------------------------' `--------------------------'
),
[KEYSEL] = LAYOUT_split_3x6_3(
//,-----------------------------------------------------. ,-----------------------------------------------------.
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RSFT(KC_HOME), RSFT(KC_UP), RSFT(KC_END), RSFT(KC_PGUP), KC_TRNS,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RSFT(RCTL(KC_LEFT)), RSFT(KC_LEFT), RSFT(KC_DOWN), RSFT(KC_RIGHT), RSFT(RCTL(KC_RIGHT)), KC_TRNS,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RCTL(KC_C), RCTL(KC_X), RCTL(KC_V), RSFT(KC_PGDN), KC_TRNS,
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
//`--------------------------' `--------------------------'
),
[SHELL_NAV] = LAYOUT_split_3x6_3(
//,-----------------------------------------------------. ,-----------------------------------------------------.
TO(BASE),SHELL_GIT_DIFF, SHELL_PGREP, SHELL_PLESS, SHELL_LESS, KC_TRNS, RCTL(KC_D), KC_HOME, KC_UP, KC_END, RCTL(KC_L), RCTL(KC_X),
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
OSL(SHELL_SCREEN),SHELL_GIT_STATUS,SHELL_CDPRE,SHELL_LSLTR,SHELL_LS, SHELL_LSLA, LALT(KC_B), KC_LEFT, KC_DOWN, KC_RIGHT, LALT(KC_F), RCTL(KC_W),
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_TRNS,SHELL_SCREEN_LIST, SHELL_SCREENRD, SHELL_SCREEN_NEW, SHELL_TAILF, KC_TRNS, RCTL(KC_U), LALT(KC_DOT), RCTL(KC_R), KC_BTN2, RCTL(KC_K), RCTL(KC_C),
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
KC_TRNS, KC_TRNS, KC_TRNS, LCTL(LSFT(KC_V)), KC_TRNS, KC_TRNS
//`--------------------------' `--------------------------'
),
[SHELL_SCREEN] = LAYOUT_split_3x6_3(
//,-----------------------------------------------------. ,-----------------------------------------------------.
TO(BASE),KC_TRNS, SCREEN_READREG_3, SCREEN_READREG_2, SCREEN_READREG_1,KC_TRNS, KC_TRNS, SCREEN_7, SCREEN_8, SCREEN_9, SCREEN_RENAME, KC_TRNS,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
TO(BASE),KC_TRNS,SCREEN_PASTEREG_3,SCREEN_PASTEREG_2,SCREEN_PASTEREG_1,SCREEN_DETACH, SCREEN_TAB_LEFT, SCREEN_4, SCREEN_5, SCREEN_6, SCREEN_TAB_RIGHT, SCREEN_COPY_MODE,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, SCREEN_1, SCREEN_2, SCREEN_3, SCREEN_NUMBER, SCREEN_PASTE,
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
KC_TRNS, KC_TRNS, KC_TRNS, SCREEN_KILL, SCREEN_NEW_TAB, SCREEN_0
//`--------------------------' `--------------------------'
),
[VSCODE] = LAYOUT_split_3x6_3(
//,-----------------------------------------------------. ,-----------------------------------------------------.
TO(BASE), KC_TRNS, VS_FIND_FILES, VS_CMT_BLOCK, VS_CMT_LINE, VS_BM_LISTALL, VS_COPYLINEDOWN, VS_REFERENCES, VS_DEFINITION, VS_IMPLEMENTATION, VS_LINE, VS_BRACKET,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_TRNS, KC_TRNS, VS_TOGGLE_TERMINAL, VS_FOCUS_TERMINAL, VS_FOCUS_EDITOR, VS_BM_LIST, VS_CLOSETAB, VS_TABLEFT, VS_TABRIGHT, VS_SYMBOLEDITOR, VS_FILE, VS_BACK,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, VS_BM_CLEARALL, VS_JUMPY, VS_BM_PREV, VS_BM_NEXT, VS_GROUP_1, VS_GROUP_2, VS_BM_TOGGLE,
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
KC_TRNS, VS_DEL_LEFT, VS_DEL_RIGHT, VS_DEL_LINE, VS_JUMPY, VS_COMMANDS
//`--------------------------' `--------------------------'
),
[COMBINED] = LAYOUT_split_3x6_3(
//,-----------------------------------------------------. ,-----------------------------------------------------.
KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_PLUS, KC_7, KC_8, KC_9, KC_ASTR, KC_PIPE,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_GRAVE, KC_LPRN, KC_RPRN, KC_LBRC, KC_RBRC, KC_UNDS, KC_MINUS, KC_4, KC_5, KC_6, KC_SLSH, KC_BSLS,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_CIRC, KC_COLN, KC_DQUO, KC_LCBR, KC_RCBR, KC_AMPR, KC_EQUAL, KC_1, KC_2, KC_3, KC_QUES, KC_DOT,
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_0
//`--------------------------' `--------------------------'
),
// chrome OS keyboard shortcuts: https://support.google.com/chromebook/answer/183101?hl=en
// search key == windows key
[BROWSER_CONTROL] = LAYOUT_split_3x6_3(
//,-----------------------------------------------------. ,-----------------------------------------------------.
KC_TRNS, KC_TRNS, KC_BTN3, KC_MS_U, KC_BTN1, KC_BTN2, KC_UP, KC_PGUP, KC_PGDN, KC_MS_WH_UP, KC_TRNS, KC_TRNS,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
CO_WS_LEFT, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, KC_DOWN, RCTL(KC_PGUP), RCTL(KC_PGDN), KC_MS_WH_DOWN, LALT(KC_LEFT), CO_WS_RIGHT,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_TRNS, RCTL(LSFT(KC_TAB)), RCTL(KC_TAB), WINDOWS10_WORKSPACE_LEFT, WINDOWS10_WORKSPACE_RIGHT, WINDOWS10_TASK_VIEW, KC_TRNS, RCTL(KC_1), RCTL(KC_9), LCTL(KC_L), KC_F5, KC_TRNS,
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
KC_TRNS, KC_TRNS, KC_TRNS, RCTL(KC_W), RCTL(KC_T), KC_TRNS
//`--------------------------' `--------------------------'
),
[SHORTCUTS] = LAYOUT_split_3x6_3(
//,-----------------------------------------------------. ,-----------------------------------------------------.
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, MEH(KC_F1), MEH(KC_F2), MEH(KC_F3), MEH(KC_F4), MEH(KC_F5), MEH(KC_F6),
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, MEH(KC_F7), MEH(KC_F8), MEH(KC_F9), MEH(KC_F10), MEH(KC_F11), MEH(KC_F12),
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_TRNS, OSM(MOD_LSFT), OSM(MOD_LGUI), OSM(MOD_LALT), OSM(MOD_LCTL), KC_TRNS, MEH(KC_F13), MEH(KC_F14), MEH(KC_F15), MEH(KC_F16), MEH(KC_F17), MEH(KC_F18),
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, TO(SHORTCUTS), TO(BASE)
//`--------------------------' `--------------------------'
),
/*
// empty layer
[15] = LAYOUT_split_3x6_3(
//,-----------------------------------------------------. ,-----------------------------------------------------.
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
//`--------------------------' `--------------------------'
),
*/
};
#ifdef OLED_ENABLE
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
if (!is_keyboard_master()) {
return OLED_ROTATION_180; // flips the display 180 degrees if offhand
}
// return rotation;
return OLED_ROTATION_180;
}
#define DISPLAY_LAYER_NAME(LAYER_NAME, LAYER_STRING) \
if(get_highest_layer(layer_state) == LAYER_NAME) { \
oled_write_ln_P(PSTR(LAYER_STRING), false); \
return;\
}\
void oled_render_layer_state(void) {
// if caps word is enabled, show
if(is_caps_word_on()) {
oled_write_ln_P(PSTR("CAPS WORD"), false);
return;
}
DISPLAY_LAYER_NAME(SHORTCUTS, "SHORTCUTS");
DISPLAY_LAYER_NAME(VSCODE, "VSCODE");
DISPLAY_LAYER_NAME(COMBINED, "SYMBOLS");
DISPLAY_LAYER_NAME(BROWSER_CONTROL, "BROWSER");
DISPLAY_LAYER_NAME(SHELL_SCREEN, "SHELL SCREEN");
DISPLAY_LAYER_NAME(SHELL_NAV, "SHELL NAV");
DISPLAY_LAYER_NAME(KEYSEL, "KEYSEL");
DISPLAY_LAYER_NAME(KEYNAV, "KEYNAV");
DISPLAY_LAYER_NAME(BASE, "BASE");
}
const rgblight_segment_t PROGMEM rgb_layer_off[] = RGBLIGHT_LAYER_SEGMENTS(
{0, 0, 0}
);
const rgblight_segment_t PROGMEM rgb_layer_blue[] = RGBLIGHT_LAYER_SEGMENTS(
{0, RGBLED_NUM, HSV_BLUE}
);
const rgblight_segment_t PROGMEM rgb_layer_purple[] = RGBLIGHT_LAYER_SEGMENTS(
{0, RGBLED_NUM, HSV_PURPLE}
);
const rgblight_segment_t PROGMEM rgb_layer_red[] = RGBLIGHT_LAYER_SEGMENTS(
{0, RGBLED_NUM, HSV_RED}
);
const rgblight_segment_t PROGMEM rgb_layer_orange[] = RGBLIGHT_LAYER_SEGMENTS(
{0, RGBLED_NUM, HSV_ORANGE}
);
const rgblight_segment_t PROGMEM rgb_layer_yellow[] = RGBLIGHT_LAYER_SEGMENTS(
{0, RGBLED_NUM, HSV_YELLOW}
);
const rgblight_segment_t PROGMEM rgb_layer_green[] = RGBLIGHT_LAYER_SEGMENTS(
{0, RGBLED_NUM, HSV_GREEN}
);
const rgblight_segment_t PROGMEM rgb_layer_pink[] = RGBLIGHT_LAYER_SEGMENTS(
{0, RGBLED_NUM, HSV_PINK}
);
// Now define the array of layers. Later layers take precedence
const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST(
rgb_layer_off,
rgb_layer_blue,
rgb_layer_purple,
rgb_layer_red,
rgb_layer_orange,
rgb_layer_yellow,
rgb_layer_green,
rgb_layer_pink
);
void keyboard_post_init_user(void) {
// Enable the LED layers
rgblight_layers = my_rgb_layers;
}
layer_state_t default_layer_state_set_user(layer_state_t state) {
rgblight_set_layer_state(0, layer_state_cmp(state, BASE));
return state;
}
layer_state_t layer_state_set_user(layer_state_t state) {
rgblight_set_layer_state(1, layer_state_cmp(state, KEYNAV));
rgblight_set_layer_state(2, layer_state_cmp(state, KEYSEL));
rgblight_set_layer_state(3, layer_state_cmp(state, SHELL_NAV));
rgblight_set_layer_state(4, layer_state_cmp(state, SHELL_SCREEN));
rgblight_set_layer_state(5, layer_state_cmp(state, SHORTCUTS));
rgblight_set_layer_state(6, layer_state_cmp(state, VSCODE));
return state;
}
void caps_word_set_user(bool active) {
// will enable/disable rgb layer 7 based on whether caps word is active
rgblight_set_layer_state(7, active);
}
void render_bootmagic_status(bool status) {
/* Show Ctrl-Gui Swap options */
static const char PROGMEM logo[][2][3] = {
{{0x97, 0x98, 0}, {0xb7, 0xb8, 0}},
{{0x95, 0x96, 0}, {0xb5, 0xb6, 0}},
};
if (status) {
oled_write_ln_P(logo[0][0], false);
oled_write_ln_P(logo[0][1], false);
} else {
oled_write_ln_P(logo[1][0], false);
oled_write_ln_P(logo[1][1], false);
}
}
void oled_render_logo(void) {
static const char PROGMEM crkbd_logo[] = {
0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94,
0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4,
0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4,
0};
oled_write_P(crkbd_logo, false);
}
bool oled_task_user(void) {
if (is_keyboard_master( )) {
oled_render_layer_state();
} else {
oled_render_logo();
}
return false;
}
#endif // OLED_ENABLE

View file

@ -1,8 +0,0 @@
# Copyright 2022 LucW (@luc-languagetools)
# SPDX-License-Identifier: GPL-2.0-or-later
MOUSEKEY_ENABLE = yes # Mouse keys
RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
# RGB_MATRIX_ENABLE = no
OLED_ENABLE = yes
LTO_ENABLE = yes