[Keymap] Update/refactor userspace and add keymaps for rmeli (#18398)

Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Elliot Powell <johnp8727@gmail.com>
This commit is contained in:
Rocco Meli 2022-11-13 02:00:13 +01:00 committed by GitHub
parent ddcb8dd7ca
commit 317b800bbb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
18 changed files with 777 additions and 100 deletions

View File

@ -0,0 +1,45 @@
/*
Copyright 2022 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
// Configure RGB Matrix
# define RGB_MATRIX_KEYPRESSES // enable keypress effects
# define RGB_MATRIX_LED_FLUSH_LIMIT 16
# define RGB_DISABLE_WHEN_USB_SUSPENDED
# define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_SOLID_COLOR
# define RGB_MATRIX_STARTUP_HUE 10
# define RGB_MATRIX_STARTUP_SAT 255
# define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS
// Disable RGB Matrix effects (from lulu/config.h)
# 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
// Enable RGB Matrix effects
# define ENABLE_RGB_MATRIX_BREATHING
# define ENABLE_RGB_MATRIX_TYPING_HEATMAP
# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
# define ENABLE_RGB_MATRIX_SOLID_COLOR
# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
#endif

View File

@ -0,0 +1,108 @@
/*
Copyright 2022 Cole Smith <cole@boadsource.xyz>
Copyright 2022 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"
enum layers {
_QWERTY,
_COLEMAK_DH,
_RAISE,
_LOWER,
_ADJUST,
};
#define RAISE MO(_RAISE)
#define LOWER MO(_LOWER)
#define QWY_DF DF(_QWERTY)
#define CMK_DF DF(_COLEMAK_DH)
// clang-format off
#define __________THUMB_LEFT_x4___________ KC_LALT, KC_LGUI, LOWER, KC_SPC
#define __________THUMB_RIGHT_x4__________ KC_ENT, RAISE, KC_LCTL, KC_RGUI
// clang-format on
/* LAYOUT
*
* ,-----------------------------. ,-----------------------------.
* | | | | | | | | | | | | | |
* |----+----+----+----+----+----| |----+----+----+----+----+----|
* | | | | | | | | | | | | | |
* |----+----+----+----+----+----| |----+----+----+----+----+----|
* | | | | | | |-----. ,-----| | | | | | |
* |----+----+----+----+----+----| | | |----+----+----+----+----+----|
* | | | | | | |-----| |-----| | | | | | |
* `----------------------------/ / \ \----------------------------'
* | | | | / / \ \ | | | |
* | | | |/ / \ \ | | | |
* `--------------''-----' '------''--------------'
*/
// Define wrapper for standard LULU layout
#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__)
// clang-format off
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_QWERTY] = LAYOUT_wrapper(
___________________NUMBER_LEFT_x6___________________, ___________________NUMBER_RIGHT_x6__________________,
___________________QWERTY_L1_x6_____________________, ___________________QWERTY_R1_x6_____________________,
___________________QWERTY_L2_x6_____________________, ___________________QWERTY_R2_x6_____________________,
___________________QWERTY_L3_x6_____________________, KC_LBRC, KC_RBRC, ___________________QWERTY_R3_x6_____________________,
__________THUMB_LEFT_x4___________, __________THUMB_RIGHT_x4__________
),
[_COLEMAK_DH] = LAYOUT_wrapper(
___________________NUMBER_LEFT_x6___________________, ___________________NUMBER_RIGHT_x6__________________,
________________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________________, KC_LBRC, KC_RBRC, ________________COLEMAK_MOD_DH_R3_x6________________,
__________THUMB_LEFT_x4___________, __________THUMB_RIGHT_x4__________
),
[_LOWER] = LAYOUT_wrapper(
____________________FUNC_LEFT_x6____________________, ____________________FUNC_RIGHT_x6___________________,
_______, ______________NUMBER_LEFT_x5_______________, ______________NUMBER_RIGHT_x5______________, _______,
_______, ______________UNICODE_L2_x5________________, ________________NAV_R2_x5__________________, XXXXXXX,
_______, ______________UNICODE_L3_x5________________, _______, _______, ________________NAV_R3_x5__________________, _______,
_______, _______, _______, _______, _______, _______, _______, _______
),
[_RAISE] = LAYOUT_wrapper(
___________________NUMBER_LEFT_x6___________________, ___________________NUMBER_RIGHT_x6__________________,
___________________SYMBOL_LEFT_x6___________________, ___________________SYMBOL_RIGHT_x6__________________,
_______, ____________NAV_VIM_x4____________, XXXXXXX, ____________________SYMBOL_R2_x6____________________,
_______, _________________NONE_5x___________________, _______, _______, ____________________SYMBOL_R3_x6____________________,
_______, _______, _______, _______, _______, _______, _______, _______
),
[_ADJUST] = LAYOUT_wrapper(
QK_BOOT, _________________NONE_5x___________________, ______________________NONE_6x_______________________,
XXXXXXX, _________________NONE_5x___________________, _______________CONFIG_R1_x5________________, QWY_DF,
RGB_TOG, ________________RGB_L2_x5__________________, _______________CONFIG_R2_x5________________, XXXXXXX,
XXXXXXX, ________________RGB_L3_x5__________________, _______, _______, _______________CONFIG_R3_x5________________, CMK_DF,
_______, _______, _______, _______, _______, _______, _______, _______
)
};
// clang-format on
layer_state_t layer_state_set_user(layer_state_t state) {
return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
}

View File

@ -0,0 +1,9 @@
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

@ -21,32 +21,19 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#pragma once #pragma once
#define MASTER_LEFT // Left side is the master #define MASTER_LEFT // Left side is the master
#define SPLIT_LED_STATE_ENABLE #define SPLIT_LED_STATE_ENABLE
#define TAPPING_TERM 200
#define UNICODE_SELECTED_MODES UC_MAC, UC_LNX
#define AUTO_SHIFT_REPEAT
#ifdef RGBLIGHT_ENABLE
# 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 #ifdef RGB_MATRIX_ENABLE
// RGB matrix options // RGB matrix options
# define RGB_MATRIX_KEYPRESSES // enable keypress effects # define RGB_MATRIX_KEYPRESSES // enable keypress effects
# define RGB_MATRIX_LED_FLUSH_LIMIT 16 # define RGB_MATRIX_LED_FLUSH_LIMIT 16
# define RGB_DISABLE_WHEN_USB_SUSPENDED # define RGB_DISABLE_WHEN_USB_SUSPENDED
// Disable unwanted R2G effects (from r2g/config.h) // Disable unwanted R2G effects (from r2g/config.h)
# undef ENABLE_RGB_MATRIX_ALPHAS_MODS # undef ENABLE_RGB_MATRIX_ALPHAS_MODS
# undef ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN # undef ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
# undef ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT # undef ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
# undef ENABLE_RGB_MATRIX_BREATHING # define ENABLE_RGB_MATRIX_BREATHING
# undef ENABLE_RGB_MATRIX_BAND_SAT # undef ENABLE_RGB_MATRIX_BAND_SAT
# undef ENABLE_RGB_MATRIX_BAND_VAL # undef ENABLE_RGB_MATRIX_BAND_VAL
# undef ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT # undef ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
@ -57,8 +44,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
# undef ENABLE_RGB_MATRIX_RAINDROPS # undef ENABLE_RGB_MATRIX_RAINDROPS
# undef ENABLE_RGB_MATRIX_HUE_BREATHING # undef ENABLE_RGB_MATRIX_HUE_BREATHING
# undef ENABLE_RGB_MATRIX_PIXEL_FRACTAL # undef ENABLE_RGB_MATRIX_PIXEL_FRACTAL
//# undef ENABLE_RGB_MATRIX_TYPING_HEATMAP # define ENABLE_RGB_MATRIX_TYPING_HEATMAP
# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE # define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE # undef ENABLE_RGB_MATRIX_SOLID_REACTIVE
# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS # undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
# undef ENABLE_RGB_MATRIX_SPLASH # undef ENABLE_RGB_MATRIX_SPLASH
@ -77,4 +64,4 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#undef LOCKING_SUPPORT_ENABLE #undef LOCKING_SUPPORT_ENABLE
#undef LOCKING_RESYNC_ENABLE #undef LOCKING_RESYNC_ENABLE
#define NO_MUSIC_MODE #define NO_MUSIC_MODE
#define LAYER_STATE_8BIT // Limit to 8 layers #define LAYER_STATE_8BIT // Limit to 8 layers

View File

@ -1,6 +1,6 @@
/* /*
Copyright 2019 @foostan Copyright 2019 @foostan
Copyright 2020 Drashna Jaelre <@drashna> Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
Copyright 2021 Rocco Meli <@RMeli> Copyright 2021 Rocco Meli <@RMeli>
This program is free software: you can redistribute it and/or modify This program is free software: you can redistribute it and/or modify
@ -68,64 +68,61 @@ enum layer_names {
#define _CMK 1 #define _CMK 1
#define _CFG 4 #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] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_QWERTY] = LAYOUT_split_3x6_3(
//|-----------------------------------------------------| |-----------------------------------------------------| [_QWERTY] = LAYOUT_wrapper(
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, // clang-format off
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| ___________________QWERTY_L1_x6_____________________, ___________________QWERTY_R1_x6_____________________,
TD_ED, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, ___________________QWERTY_L2_x6_____________________, ___________________QWERTY_R2_x6_____________________,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| ___________________QWERTY_L3_x6_____________________, ___________________QWERTY_R3_x6_____________________,
TD_LSPC, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, TD_RSPC, ______THUMB_LEFT_x3______, ______THUMB_RIGHT_x3_____
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
KC_LGUI,MO(_DWN), KC_SPC, KC_ENT,MO(_UP), KC_RCTL
//|--------------------------| |--------------------------|
), ),
[_COLEMAK_DH] = LAYOUT_split_3x6_3( [_COLEMAK_DH] = LAYOUT_wrapper(
//|-----------------------------------------------------| |-----------------------------------------------------| ________________COLEMAK_MOD_DH_L1_x6________________, ________________COLEMAK_MOD_DH_R1_x6________________,
KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_SCLN, KC_P, KC_BSPC, ________________COLEMAK_MOD_DH_L2_x6________________, ________________COLEMAK_MOD_DH_R2_x6________________,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| ________________COLEMAK_MOD_DH_L3_x6________________, ________________COLEMAK_MOD_DH_R3_x6________________,
TD_ED, KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O, KC_QUOT, ______THUMB_LEFT_x3______, ______THUMB_RIGHT_x3_____
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
TD_LSPC, KC_Z, KC_X, KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, TD_RSPC,
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
KC_LGUI,MO(_DWN), KC_SPC, KC_ENT,MO(_UP), KC_RCTL
//|--------------------------| |--------------------------|
), ),
[_DWN] = LAYOUT_split_3x6_3( [_DWN] = LAYOUT_wrapper(
//|-----------------------------------------------------| |-----------------------------------------------------| _______, ______________NUMBER_LEFT_x5_______________, ______________NUMBER_RIGHT_x5______________, _______,
_______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, _______, ______________UNICODE_L2_x5________________, ________________NAV_R2_x5__________________, XXXXXXX,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| _______, ______________UNICODE_L3_x5________________, ________________NAV_R3_x5__________________, _______,
_______, A_GRV, E_GRV, I_GRV, O_GRV, U_GRV, XXXXXXX, XXXXXXX, KC_UP, XXXXXXX, KC_PGUP, XXXXXXX, KC_LGUI, _______, _______, _______,MO(_CFG), _______
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
_______, A_UML, E_ACT, I_CIR, O_UML, U_UML, XXXXXXX, KC_LEFT, KC_DOWN,KC_RIGHT, KC_PGDN, _______,
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
KC_LGUI, _______, _______, _______,MO(_CFG), _______
//|--------------------------| |--------------------------|
), ),
[_UP] = LAYOUT_split_3x6_3( [_UP] = LAYOUT_wrapper(
//|-----------------------------------------------------| |-----------------------------------------------------| ___________________SYMBOL_LEFT_x6___________________, ___________________SYMBOL_RIGHT_x6__________________,
_______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, _______, ____________NAV_VIM_x4____________, XXXXXXX, ____________________SYMBOL_R2_x6____________________,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| _______, _________________NONE_5x___________________, ____________________SYMBOL_R3_x6____________________,
_______, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, XXXXXXX, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, KC_GRV, _______,MO(_CFG), _______, _______, _______, _______
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, KC_TILD,
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
_______,MO(_CFG), _______, _______, _______, _______
//|--------------------------| |--------------------------|
), ),
[_CONFIG] = LAYOUT_split_3x6_3( [_CONFIG] = LAYOUT_wrapper(
//|-----------------------------------------------------| |-----------------------------------------------------| QK_BOOT, _________________NONE_5x___________________, _______________CONFIG_R1_x5________________,DF(_QWY),
QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, UC_MOD, KC_ASUP, NK_ON, XXXXXXX, XXXXXXX,DF(_QWY), RGB_TOG, ________________RGB_L2_x5__________________, _______________CONFIG_R2_x5________________, XXXXXXX,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| XXXXXXX, ________________RGB_L3_x5__________________, _______________CONFIG_R3_x5________________,DF(_CMK),
RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, XXXXXXX, KC_ASTG, NK_TOGG, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, _______, _______, _______, _______
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
XXXXXXX,RGB_RMOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, UC_RMOD, KC_ASDN, NK_OFF, XXXXXXX, XXXXXXX,DF(_CMK),
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
_______, _______, _______, _______, _______, _______
//|--------------------------| |--------------------------|
) )
}; };
// clang-format on

View File

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

View File

@ -0,0 +1,45 @@
/* Copyright 2015-2021 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
#ifdef AUDIO_ENABLE
# define STARTUP_SONG SONG(PREONIC_SOUND)
// #define STARTUP_SONG SONG(NO_SOUND)
# define DEFAULT_LAYER_SONGS \
{ SONG(QWERTY_SOUND), SONG(COLEMAK_SOUND), SONG(DVORAK_SOUND) }
#endif
#define MUSIC_MASK (keycode != KC_NO)
/*
* MIDI options
*/
/* enable basic MIDI features:
- MIDI notes can be sent when in Music mode is on
*/
#define MIDI_BASIC
/* enable advanced MIDI features:
- MIDI notes can be added to the keymap
- Octave shift and transpose
- Virtual sustain, portamento, and modulation wheel
- etc.
*/
//#define MIDI_ADVANCED

View File

@ -0,0 +1,231 @@
/* Copyright 2015-2021 Jack Humbert
* Copyright 2022 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 "muse.h"
#include "rmeli.h"
enum preonic_layers { _QWERTY, _COLEMAK, _LOWER, _RAISE, _ADJUST };
enum preonic_keycodes { QWERTY = SAFE_RANGE, COLEMAK, LOWER, RAISE, BACKLIT };
#define ____________________BOTTOM_L_x6_____________________ BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC
#define ____________________BOTTOM_R_x6_____________________ KC_ENT, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
/* LAYOUT
*
* ,-----------------------------------------------------------.
* | | | | | | | | | | | | |
* |----+----+----+----+----+----+----+----+----+----+----+----|
* | | | | | | | | | | | | |
* |----+----+----+----+----+----+----+----+----+----+----+----|
* | | | | | | | | | | | | |
* |----+----+----+----+----+----+----+----+----+----+----+----|
* | | | | | | | | | | | | |
* |----+----+----+----+----+----+----+----+----+----+----+----|
* | | | | | | | | | | | | |
* `----+----+----+----+----+----+----+----+----+----+----+----'
*/
// Define wrapper for standard CRKB layout
#define LAYOUT_wrapper(...) LAYOUT_preonic_grid(__VA_ARGS__)
// clang-format off
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_QWERTY] = LAYOUT_wrapper(
___________________NUMBER_LEFT_x6___________________, ___________________NUMBER_RIGHT_x6__________________,
___________________QWERTY_L1_x6_____________________, ___________________QWERTY_R1_x6_____________________,
___________________QWERTY_L2_x6_____________________, ___________________QWERTY_R2_x6_____________________,
___________________QWERTY_L3_x6_____________________, ___________________QWERTY_R3_x6_____________________,
____________________BOTTOM_L_x6_____________________, ____________________BOTTOM_R_x6_____________________
),
[_COLEMAK] = LAYOUT_wrapper(
___________________NUMBER_LEFT_x6___________________, ___________________NUMBER_RIGHT_x6__________________,
________________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________________,
____________________BOTTOM_L_x6_____________________, ____________________BOTTOM_R_x6_____________________
),
[_LOWER] = LAYOUT_wrapper(
____________________FUNC_LEFT_x6____________________, ____________________FUNC_RIGHT_x6___________________,
___________________NUMBER_LEFT_x6___________________, ___________________NUMBER_RIGHT_x6__________________,
_______, ______________UNICODE_L2_x5________________, ________________NAV_R2_x5__________________, XXXXXXX,
_______, ______________UNICODE_L3_x5________________, ________________NAV_R3_x5__________________, _______,
______________________BLANK_6x______________________, ______________________BLANK_6x______________________
),
[_RAISE] = LAYOUT_wrapper(
___________________NUMBER_LEFT_x6___________________, ___________________NUMBER_RIGHT_x6__________________,
___________________SYMBOL_LEFT_x6___________________, ___________________SYMBOL_RIGHT_x6__________________,
_______, ____________NAV_VIM_x4____________, XXXXXXX, ____________________SYMBOL_R2_x6____________________,
_______, _________________NONE_5x___________________, ____________________SYMBOL_R3_x6____________________,
______________________BLANK_6x______________________, ______________________BLANK_6x______________________
),
[_ADJUST] = LAYOUT_wrapper(
QK_BOOT, _________________NONE_5x___________________, ______________________NONE_6x_______________________,
XXXXXXX, MU_ON, AU_ON, MI_ON, XXXXXXX, XXXXXXX, _______________CONFIG_R1_x5________________, QWERTY,
RESET, MU_MOD, AU_TOG, MI_TOG, XXXXXXX, XXXXXXX, _______________CONFIG_R2_x5________________, XXXXXXX,
XXXXXXX, MU_OFF, AU_OFF, MI_OFF, XXXXXXX, XXXXXXX, _______________CONFIG_R3_x5________________, COLEMAK,
______________________BLANK_6x______________________, ______________________BLANK_6x______________________
)
};
// clang-format on
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case QWERTY:
if (record->event.pressed) {
set_single_persistent_default_layer(_QWERTY);
}
return false;
break;
case COLEMAK:
if (record->event.pressed) {
set_single_persistent_default_layer(_COLEMAK);
}
return false;
break;
case LOWER:
if (record->event.pressed) {
layer_on(_LOWER);
update_tri_layer(_LOWER, _RAISE, _ADJUST);
} else {
layer_off(_LOWER);
update_tri_layer(_LOWER, _RAISE, _ADJUST);
}
return false;
break;
case RAISE:
if (record->event.pressed) {
layer_on(_RAISE);
update_tri_layer(_LOWER, _RAISE, _ADJUST);
} else {
layer_off(_RAISE);
update_tri_layer(_LOWER, _RAISE, _ADJUST);
}
return false;
break;
case BACKLIT:
if (record->event.pressed) {
register_code(KC_RSFT);
#ifdef BACKLIGHT_ENABLE
backlight_step();
#endif
#ifdef RGBLIGHT_ENABLE
rgblight_step();
#endif
#ifdef __AVR__
writePinLow(E6);
#endif
} else {
unregister_code(KC_RSFT);
#ifdef __AVR__
writePinHigh(E6);
#endif
}
return false;
break;
}
return true;
};
bool muse_mode = false;
uint8_t last_muse_note = 0;
uint16_t muse_counter = 0;
uint8_t muse_offset = 70;
uint16_t muse_tempo = 50;
bool encoder_update_user(uint8_t index, bool clockwise) {
if (muse_mode) {
if (IS_LAYER_ON(_RAISE)) {
if (clockwise) {
muse_offset++;
} else {
muse_offset--;
}
} else {
if (clockwise) {
muse_tempo += 1;
} else {
muse_tempo -= 1;
}
}
} else {
if (clockwise) {
register_code(KC_PGDN);
unregister_code(KC_PGDN);
} else {
register_code(KC_PGUP);
unregister_code(KC_PGUP);
}
}
return true;
}
bool dip_switch_update_user(uint8_t index, bool active) {
switch (index) {
case 0:
if (active) {
layer_on(_ADJUST);
} else {
layer_off(_ADJUST);
}
break;
case 1:
if (active) {
muse_mode = true;
} else {
muse_mode = false;
}
}
return true;
}
void matrix_scan_user(void) {
#ifdef AUDIO_ENABLE
if (muse_mode) {
if (muse_counter == 0) {
uint8_t muse_note = muse_offset + SCALE[muse_clock_pulse()];
if (muse_note != last_muse_note) {
stop_note(compute_freq_for_midi_note(last_muse_note));
play_note(compute_freq_for_midi_note(muse_note), 0xF);
last_muse_note = muse_note;
}
}
muse_counter = (muse_counter + 1) % muse_tempo;
} else {
if (muse_counter) {
stop_all_notes();
muse_counter = 0;
}
}
#endif
}
bool music_mask_user(uint16_t keycode) {
switch (keycode) {
case RAISE:
case LOWER:
return false;
default:
return true;
}
}

View File

@ -0,0 +1 @@
# The default Preonic layout - largely based on the Planck's

View File

@ -0,0 +1,12 @@
TAP_DANCE_ENABLE = yes
AUTO_SHIFT_ENABLE = no
MAGIC_ENABLE = yes
UNICODEMAP_ENABLE = yes
# Turn off rev3_drop options
RGBLIGHT_ENABLE = no
MOUSEKEY_ENABLE = no
SRC += muse.c

2
users/rmeli/.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
# Ignore symlinks to keymaps
km_*

44
users/rmeli/config.h Normal file
View File

@ -0,0 +1,44 @@
/*
Copyright 2021-2022 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 TAPPING_TERM 200
#ifdef UNICODEMAP_ENABLE
# define UNICODE_SELECTED_MODES UC_MAC, UC_LNX
#endif
#ifdef AUTO_SHIFT_ENABLED
# define AUTO_SHIFT_REPEAT
#endif
#ifdef HOME_ROW_MODS_ENABLED
# define IGNORE_MOD_TAP_INTERRUPT
#endif
#ifdef CAPS_WORD_ENABLE
# define BOTH_SHIFTS_TURNS_ON_CAPS_WORD
//#define DOUBLE_TAP_SHIFT_TURNS_ON_CAPS_WORD
#endif
#ifdef RGBLIGHT_ENABLE
# define RGBLIGHT_LIMIT_VAL 120
# define RGBLIGHT_HUE_STEP 10
# define RGBLIGHT_SAT_STEP 17
# define RGBLIGHT_VAL_STEP 17
#endif

View File

@ -16,6 +16,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
#pragma once #pragma once
#include QMK_KEYBOARD_H #include QMK_KEYBOARD_H
// https://beta.docs.qmk.fm/using-qmk/software-features/feature_tap_dance#example-4-quad-function-tap-dance-id-example-4 // https://beta.docs.qmk.fm/using-qmk/software-features/feature_tap_dance#example-4-quad-function-tap-dance-id-example-4
@ -26,9 +27,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// Tap dance enums // Tap dance enums
enum { enum {
TD_LSPO_CAPS, // Tap once for (, hold once for LSFT, tap twice for CAPS TD_LSPO_CAPS, // Tap once for (, hold once for LSFT, tap twice for CAPS
TD_RSPC_CAPS, // Tap once for ), hold once for RSFT, tap twice for CAPS TD_RSPC_CAPS, // Tap once for ), hold once for RSFT, tap twice for CAPS
TD_ESC_DEL, // Tap once for KC_ESC, twice for KC_DEL TD_ESC_DEL, // Tap once for KC_ESC, twice for KC_DEL
}; };
// Rename tap dances for keymap with shortcuts // Rename tap dances for keymap with shortcuts

View File

@ -16,6 +16,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
#pragma once #pragma once
#include QMK_KEYBOARD_H #include QMK_KEYBOARD_H
// Needs to be active on the OS side as well // Needs to be active on the OS side as well
@ -46,30 +47,30 @@ enum unicode_names {
const uint32_t PROGMEM unicode_map[] = { const uint32_t PROGMEM unicode_map[] = {
// KC_A // KC_A
[aGRV] = 0x00E0, // à [aGRV] = 0x00E0, // à
[AGRV] = 0x00C0, // À [AGRV] = 0x00C0, // À
[aUML] = 0x00E4, // ä [aUML] = 0x00E4, // ä
[AUML] = 0x00C4, // Ä [AUML] = 0x00C4, // Ä
// KC_E // KC_E
[eGRV] = 0x00E8, // è [eGRV] = 0x00E8, // è
[EGRV] = 0x00C8, // È [EGRV] = 0x00C8, // È
[eACT] = 0x00E9, // é [eACT] = 0x00E9, // é
[EACT] = 0x00C9, // É [EACT] = 0x00C9, // É
// KC_I // KC_I
[iGRV] = 0x00EC, // ì [iGRV] = 0x00EC, // ì
[IGRV] = 0x00CC, // Ì [IGRV] = 0x00CC, // Ì
[iCIR] = 0x00EE, // î [iCIR] = 0x00EE, // î
[ICIR] = 0x00CE, // Î [ICIR] = 0x00CE, // Î
// KC_O // KC_O
[oGRV] = 0x00F2, // ò [oGRV] = 0x00F2, // ò
[OGRV] = 0x00D2, // Ò [OGRV] = 0x00D2, // Ò
[oUML] = 0x00F6, // ö [oUML] = 0x00F6, // ö
[OUML] = 0x00D6, // Ö [OUML] = 0x00D6, // Ö
// KC_U // KC_U
[uGRV] = 0x00F9, // ù [uGRV] = 0x00F9, // ù
[UGRV] = 0x00D9, // Ù [UGRV] = 0x00D9, // Ù
[uUML] = 0x00FC, // ü [uUML] = 0x00FC, // ü
[UUML] = 0x00DC, // Ü [UUML] = 0x00DC, // Ü
}; };
// Accents // Accents

View File

@ -0,0 +1,178 @@
/*
Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
Copyright 2020 @jola5
Copyright 2021-2022 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
#ifdef UNICODEMAP_ENABLE
# include "keyrecords/unicode.h"
#endif
// + ------------- +
// + HOME ROW MODS |
// + ------------- +
// https://precondition.github.io/home-row-mods
// Left, QWERTY
#define HM_A LCTL_T(KC_A)
#define HM_S LALT_T(KC_S)
#define HM_D LGUI_T(KC_D)
#define HM_F LSFT_T(KC_F)
// Left, COLEMAK
#define HMCMK_A LCTL_T(KC_A)
#define HMCMK_R LALT_T(KC_R)
#define HMCMK_S LGUI_T(KC_S)
#define HMCMK_T LSFT_T(KC_T)
// Right, QWERTY
#define HM_J RSFT_T(KC_J)
#define HM_K RGUI_T(KC_K)
#define HM_L LALT_T(KC_L) // LALT, not RALT
#define HM_SCLN RCTL_T(KC_SCLN)
// Right, COLEMAK
#define HMCMK_N RSFT_T(KC_N)
#define HMCMK_E RGUI_T(KC_E)
#define HMCMK_I LALT_T(KC_I) // LALT, not RALT
#define HMCMK_O RCTL_T(KC_O)
// clang-format off
// + ------ +
// + QWERTY |
// + ------ +
#define _________QWERTY_HRM_LEFT__________ HM_A, HM_S, HM_D, HM_F
#define _________QWERTY_HRM_RIGHT_________ HM_J, HM_K, HM_L, HM_SCLN
#define _______________QWERTY_L1_x5________________ KC_Q, KC_W, KC_E, KC_R, KC_T
#ifdef HOME_ROW_MODS_ENABLED
#define _______________QWERTY_L2_x5________________ _________QWERTY_HRM_LEFT__________, KC_G
#else
#define _______________QWERTY_L2_x5________________ KC_A, KC_S, KC_D, KC_F, KC_G
#endif
#define _______________QWERTY_L3_x5________________ KC_Z, KC_X, KC_C, KC_V, KC_B
#define _______________QWERTY_R1_x5________________ KC_Y, KC_U, KC_I, KC_O, KC_P
#ifdef HOME_ROW_MODS_ENABLED
#define _______________QWERTY_R2_x5________________ KC_H, _________QWERTY_HRM_RIGHT_________
#else
#define _______________QWERTY_R2_x5________________ KC_H, KC_J, KC_K, KC_L, KC_SCLN
#endif
#define _______________QWERTY_R3_x5________________ KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH
// + ------ +
#define ___________________QWERTY_L1_x6_____________________ KC_TAB, _______________QWERTY_L1_x5________________
#define ___________________QWERTY_L2_x6_____________________ TD_ED, _______________QWERTY_L2_x5________________
#define ___________________QWERTY_L3_x6_____________________ TD_LSPC, _______________QWERTY_L3_x5________________
#define ___________________QWERTY_R1_x6_____________________ _______________QWERTY_R1_x5________________, KC_BSPC
#define ___________________QWERTY_R2_x6_____________________ _______________QWERTY_R2_x5________________, KC_QUOT
#define ___________________QWERTY_R3_x6_____________________ _______________QWERTY_R3_x5________________, TD_RSPC
// + -------------- +
// + COLEMAK_MOD_DH |
// + -------------- +
#define _____COLEMAK_MOD_DH_HRM_LEFT______ HMCMK_A, HMCMK_R, HMCMK_S, HMCMK_T
#define _____COLEMAK_MOD_DH_HMR_RIGHT_____ HMCMK_N, HMCMK_E, HMCMK_I, HMCMK_O
#define ____________COLEMAK_MOD_DH_L1_x5___________ KC_Q, KC_W, KC_F, KC_P, KC_B
#ifdef HOME_ROW_MODS_ENABLED
#define ____________COLEMAK_MOD_DH_L2_x5___________ _____COLEMAK_MOD_DH_HRM_LEFT______, KC_G
#else
#define ____________COLEMAK_MOD_DH_L2_x5___________ KC_A, KC_R, KC_S, KC_T, KC_G
#endif
#define ____________COLEMAK_MOD_DH_L3_x5___________ KC_Z, KC_X, KC_C, KC_D, KC_V
#define ____________COLEMAK_MOD_DH_R1_x5___________ KC_J, KC_L, KC_U, KC_Y, KC_SCLN
#ifdef HOME_ROW_MODS_ENABLED
#define ____________COLEMAK_MOD_DH_R2_x5___________ KC_M, _____COLEMAK_MOD_DH_HMR_RIGHT_____
#else
#define ____________COLEMAK_MOD_DH_R2_x5___________ KC_M, KC_N, KC_E, KC_I, KC_O
#endif
#define ____________COLEMAK_MOD_DH_R3_x5___________ KC_K, KC_H, KC_COMM, KC_DOT,KC_SLASH
// + ------- +
#define ________________COLEMAK_MOD_DH_L1_x6________________ KC_TAB, ____________COLEMAK_MOD_DH_L1_x5___________
#define ________________COLEMAK_MOD_DH_L2_x6________________ TD_ED, ____________COLEMAK_MOD_DH_L2_x5___________
#define ________________COLEMAK_MOD_DH_L3_x6________________ TD_LSPC, ____________COLEMAK_MOD_DH_L3_x5___________
#define ________________COLEMAK_MOD_DH_R1_x6________________ ____________COLEMAK_MOD_DH_R1_x5___________, KC_BSPC
#define ________________COLEMAK_MOD_DH_R2_x6________________ ____________COLEMAK_MOD_DH_R2_x5___________, KC_QUOT
#define ________________COLEMAK_MOD_DH_R3_x6________________ ____________COLEMAK_MOD_DH_R3_x5___________, TD_RSPC
// + --------------- +
// + NUMBERS/SYMBOLS |
// + --------------- +
#define ______________NUMBER_LEFT_x5_______________ KC_1, KC_2, KC_3, KC_4, KC_5
#define ______________NUMBER_RIGHT_x5______________ KC_6, KC_7, KC_8, KC_9, KC_0
#define ___________________NUMBER_LEFT_x6___________________ KC_GRV, ______________NUMBER_LEFT_x5_______________
#define ___________________NUMBER_RIGHT_x6__________________ ______________NUMBER_RIGHT_x5______________, KC_MINS
#define ______________SYMBOL_LEFT_x5_______________ KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC
#define ______________SYMBOL_RIGHT_x5______________ KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN
#define ___________________SYMBOL_LEFT_x6___________________ KC_GRV, ______________SYMBOL_LEFT_x5_______________
#define ___________________SYMBOL_RIGHT_x6__________________ ______________SYMBOL_RIGHT_x5______________, KC_TILD
#define ____________________SYMBOL_R2_x6____________________ KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, KC_GRV
#define ____________________SYMBOL_R3_x6____________________ KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, KC_TILD
// + ------- +
// + UNICODE |
// + ------- +
#ifdef UNICODEMAP_ENABLE
#define ______________UNICODE_L2_x5________________ A_GRV, E_GRV, I_GRV, O_GRV, U_GRV
#define ______________UNICODE_L3_x5________________ A_UML, E_ACT, I_CIR, O_UML, U_UML
#endif
// + ---- +
// + FUNC |
// + ---- +
#define ______________FUNC_LEFT_5x_________________ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5
#define ______________FUNC_RIGHT_5x________________ KC_F6, KC_F7, KC_F8, KC_F9, KC_F10
#define ____________________FUNC_LEFT_x6____________________ ______________FUNC_LEFT_5x_________________, KC_F6
#define ____________________FUNC_RIGHT_x6___________________ KC_F7, ______________FUNC_RIGHT_5x________________
// + ---- +
// + MISC |
// + ---- +
#define _________________BLANK_5x__________________ _______, _______, _______, _______, _______
#define ______________________BLANK_6x______________________ _________________BLANK_5x__________________, _______
#define _________________NONE_5x___________________ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
#define ______________________NONE_6x_______________________ _________________NONE_5x___________________, XXXXXXX
#define ________________NAV_R2_x5__________________ XXXXXXX, XXXXXXX, KC_UP, XXXXXXX, KC_PGUP
#define ________________NAV_R3_x5__________________ XXXXXXX, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN
#define ____________NAV_VIM_x4____________ KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT
#define _______________CONFIG_R1_x5________________ UC_MOD, KC_ASUP, NK_ON, XXXXXXX, XXXXXXX
#define _______________CONFIG_R2_x5________________ XXXXXXX, KC_ASTG, NK_TOGG, CG_TOGG, XXXXXXX
#define _______________CONFIG_R3_x5________________ UC_RMOD, KC_ASDN, NK_OFF, CG_NORM, XXXXXXX
#define ________________RGB_L2_x5__________________ RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI
#define ________________RGB_L3_x5__________________ RGB_RMOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD
// clang-format on

View File

@ -18,6 +18,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "oled/oled.h" #include "oled/oled.h"
void oled_render_rocco(void) { void oled_render_rocco(void) {
// clang-format off
static const char PROGMEM rocco[] = { static const char PROGMEM rocco[] = {
// 'rocco', 128x32px // 'rocco', 128x32px
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0xf8, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0xf8, 0x18,
@ -53,10 +54,13 @@ void oled_render_rocco(void) {
0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0f, 0x0e, 0x1c, 0x1c, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0f, 0x0e, 0x1c, 0x1c, 0x18, 0x18, 0x18, 0x18, 0x18,
0x1c, 0x0e, 0x0f, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x0e, 0x0f, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
}; };
// clang-format on
oled_write_raw_P(rocco, sizeof(rocco)); oled_write_raw_P(rocco, sizeof(rocco));
} }
void oled_render_meli(void) { void oled_render_meli(void) {
// clang-format off
static const char PROGMEM meli[] = { static const char PROGMEM meli[] = {
// 'meli', 128x32px // 'meli', 128x32px
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@ -92,5 +96,7 @@ void oled_render_meli(void) {
0x18, 0x1f, 0x1f, 0x1f, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x1f, 0x1f, 0x1f, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
}; };
// clang-format on
oled_write_raw_P(meli, sizeof(meli)); oled_write_raw_P(meli, sizeof(meli));
} }

View File

@ -15,6 +15,10 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
#pragma once
#include "keyrecords/wrappers.h"
#ifdef UNICODEMAP_ENABLE #ifdef UNICODEMAP_ENABLE
# include "keyrecords/unicode.h" # include "keyrecords/unicode.h"
#endif #endif
@ -25,4 +29,4 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#ifdef TAP_DANCE_ENABLE #ifdef TAP_DANCE_ENABLE
# include "keyrecords/tap_dances.h" # include "keyrecords/tap_dances.h"
#endif #endif

View File

@ -1,11 +1,12 @@
# https://github.com/qmk/qmk_firmware/blob/develop/docs/squeezing_avr.md # https://github.com/qmk/qmk_firmware/blob/develop/docs/squeezing_avr.md
CONSOLE_ENABLE = no CONSOLE_ENABLE = no
COMMAND_ENABLE = no # Needed for Space Cadet Shift COMMAND_ENABLE = no # Turned off for Space Cadet Shift and Caps Word
MOUSEKEY_ENABLE = no MOUSEKEY_ENABLE = no
SPACE_CADET_ENABLE = no # Implemented with tap dance SPACE_CADET_ENABLE = no # Implemented with tap dance
GRAVE_ESC_ENABLE = no GRAVE_ESC_ENABLE = no
MAGIC_ENABLE = no
MUSIC_ENABLE = no MUSIC_ENABLE = no
CAPS_WORD_ENABLE = yes
HOME_ROW_MODS_ENABLE = yes
# VIA only support 4 layers by default # VIA only support 4 layers by default
# Use "#define DYNAMIC_KEYMAP_LAYER_COUNT" in config.h to change the limit # Use "#define DYNAMIC_KEYMAP_LAYER_COUNT" in config.h to change the limit
@ -17,4 +18,9 @@ endif
ifeq ($(strip $(TAP_DANCE_ENABLE)), yes) ifeq ($(strip $(TAP_DANCE_ENABLE)), yes)
SRC += $(USER_PATH)/keyrecords/tap_dances.c SRC += $(USER_PATH)/keyrecords/tap_dances.c
endif
ifeq ($(strip $(HOME_ROW_MODS_ENABLE)), yes)
# Define custom variable
OPT_DEFS += -DHOME_ROW_MODS_ENABLED
endif endif