mirror of
https://github.com/qmk/qmk_firmware.git
synced 2025-09-10 17:15:43 +00:00
Compare commits
10 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
74e3cad728 | ||
|
|
0010d0c45e | ||
|
|
8a749a7a8e | ||
|
|
964ed17716 | ||
|
|
50554ca270 | ||
|
|
c6f389b527 | ||
|
|
5780c94423 | ||
|
|
acef512730 | ||
|
|
fa9c74c6a2 | ||
|
|
b2ce2f8a34 |
3
.gitignore
vendored
3
.gitignore
vendored
@@ -63,9 +63,6 @@ util/Win_Check_Output.txt
|
||||
*.gif
|
||||
*.jpg
|
||||
|
||||
# Do not ignore MiniDox left/right hand eeprom files
|
||||
!keyboards/minidox/*.eep
|
||||
|
||||
# things travis sees
|
||||
secrets.tar
|
||||
id_rsa_*
|
||||
|
||||
@@ -30,9 +30,7 @@
|
||||
MODS // LAYERS // MODS //
|
||||
*/
|
||||
|
||||
#ifdef LAYOUT
|
||||
#undef LAYOUT
|
||||
#define LAYOUT( \
|
||||
#define LAYOUT_atreus( \
|
||||
K00, K01, K02, K03, K04, K40, K41, K42, K43, K44, \
|
||||
K10, K11, K12, K13, K14, K50, K51, K52, K53, K54, \
|
||||
K20, K21, K22, K23, K24, K60, K61, K62, K63, K64, \
|
||||
@@ -47,70 +45,109 @@
|
||||
{ K64, K63, K62, K61, K60, KC_NO }, \
|
||||
{ K75, K74, K73, K72, K71, K70 } \
|
||||
}
|
||||
#endif
|
||||
|
||||
//#define ALPHA XP(UCM_LDEL, UCM_UDEL)
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[_QWERTY] = LAYOUT( /* Qwerty */
|
||||
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
|
||||
ED_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, NM_SCLN,
|
||||
LS_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, FK_DOT, RS_SLSH,
|
||||
LC_ESC, LG_TAB, LA_LBRC, LS_RBRC, NM_BSPC, ED_ESC, SC_TAB, SM_SPC, RS_MINS, RA_EQL, RG_QUOT, RC_ENT
|
||||
[_QWERTY] = LAYOUT_atreus_wrapper( /* Qwerty */
|
||||
________________ATREUS_L1__________________, ________________ATREUS_R1__________________,
|
||||
________________ATREUS_L2__________________, ________________ATREUS_R2__________________,
|
||||
________________ATREUS_L3__________________, ________________ATREUS_R3__________________,
|
||||
________________BOTTOM_L4__________________, ____THUMBS_R4___, ________________BOTTOM_R4__________________
|
||||
),
|
||||
[_EDITOR] = LAYOUT( /* ED_A, ED_ESC */
|
||||
KC_GRV, _______, KC_END, _______, KC_TAB, _______, _______, KC_INS, _______, KC_PGUP,
|
||||
KC_HOME, _______, KC_DELT, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_ENT,
|
||||
_______, _______, _______, _______, _______, KC_PGDN, _______, _______, _______, KC_BSLS,
|
||||
_______, _______, _______, _______, _______, _______, KC_ENT, _______, _______, _______, _______, _______
|
||||
[_DVORAK] = LAYOUT_atreus_wrapper( /* Qwerty */
|
||||
________________DVORAK_L1__________________, ________________DVORAK_R1__________________,
|
||||
________________DVORAK_L2__________________, ________________DVORAK_R2__________________,
|
||||
________________DVORAK_L3__________________, ________________DVORAK_R3__________________,
|
||||
________________BOTTOM_L4__________________, ____THUMBS_R4___, ________________BOTTOM_R4__________________
|
||||
),
|
||||
[_NUMBER] = LAYOUT( /* NM_SCLN, NM_BSPC */
|
||||
KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
|
||||
KC_6, KC_7, KC_8, KC_9, KC_0, _______, KC_4, KC_5, KC_6, _______,
|
||||
_______, _______, _______, _______, _______, _______, KC_1, KC_2, KC_3, KC_BSLS,
|
||||
_______, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_0, KC_0, KC_DOT, _______, _______
|
||||
[_COLEMAK] = LAYOUT_atreus_wrapper( /* Qwerty */
|
||||
________________COLEMAK_L1_________________, ________________COLEMAK_R1_________________,
|
||||
________________COLEMAK_L2_________________, ________________COLEMAK_R2_________________,
|
||||
________________COLEMAK_L3_________________, ________________COLEMAK_R3_________________,
|
||||
________________BOTTOM_L4__________________, ____THUMBS_R4___, ________________BOTTOM_R4__________________
|
||||
),
|
||||
[_SYMBOL] = LAYOUT( /* SM_SPC */
|
||||
KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN,
|
||||
KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, _______, _______, _______, KC_COLN,
|
||||
//#if defined(UNICODEMAP_ENABLE)
|
||||
//#ifdef UNICODE_H
|
||||
#ifdef UNICODEMAP_ENABLE
|
||||
[_GREEK] = LAYOUT_atreus_wrapper(
|
||||
________________GREEK_L1___________________, ________________GREEK_R1___________________,
|
||||
________________GREEK_L2___________________, ________________GREEK_R2___________________,
|
||||
________________GREEK_L3___________________, ________________GREEK_R3___________________,
|
||||
________________BOTTOM_L4__________________, ____THUMBS_R4___, ________________BOTTOM_R4__________________
|
||||
),
|
||||
[_RUSSIAN] = LAYOUT_atreus_wrapper(
|
||||
________________CYRLC_L1___________________, ________________CYRLC_R1___________________,
|
||||
________________CYRLC_L2___________________, ________________CYRLC_R2___________________,
|
||||
________________CYRLC_L3___________________, ________________CYRLC_R3___________________,
|
||||
________________BOTTOM_L4__________________, ____THUMBS_R4___, ________________CYRLC_R4___________________
|
||||
),
|
||||
[_RUNES] = LAYOUT_atreus_wrapper(
|
||||
________________FTHRK_L1___________________, ________________FTHRK_R1___________________,
|
||||
________________FTHRK_L2___________________, ________________FTHRK_R2___________________,
|
||||
________________FTHRK_L3___________________, ________________FTHRK_R3___________________,
|
||||
________________BOTTOM_L4__________________, ____THUMBS_R4___, ________________BOTTOM_R4__________________
|
||||
),
|
||||
[_HIRA1] = LAYOUT_atreus_wrapper(
|
||||
________________JIS1_L1____________________, ________________JIS1_R1____________________,
|
||||
________________JIS1_L2____________________, ________________JIS1_R2____________________,
|
||||
________________JIS1_L3____________________, ________________JIS1_R3____________________,
|
||||
________________BOTTOM_L4__________________, ____THUMBS_R4___, ________________BOTTOM_R4__________________
|
||||
),
|
||||
[_HIRA2] = LAYOUT_atreus_wrapper(
|
||||
________________JIS2_L1____________________, ________________JIS2_R1____________________,
|
||||
________________JIS2_L2____________________, ________________JIS2_R2____________________,
|
||||
________________JIS2_L3____________________, ________________JIS2_R3____________________,
|
||||
________________BOTTOM_L4__________________, ____THUMBS_R4___, ________________BOTTOM_R4__________________
|
||||
),
|
||||
#endif
|
||||
[_EDITOR] = LAYOUT_atreus_wrapper( /* ED_A, ED_ESC */
|
||||
________________EDITOR_L1__________________, ________________EDITOR_R1__________________,
|
||||
________________EDITOR_L2__________________, ________________EDITOR_R2__________________,
|
||||
________________EDITOR_L3__________________, ________________EDITOR_R3__________________,
|
||||
_______, _______, _______, _______, _______, ________________, _______, _______, _______, _______, _______
|
||||
),
|
||||
[_NUMBER] = LAYOUT_atreus_wrapper( /* NM_SCLN, NM_BSPC */
|
||||
________________NUMROW_L1__________________, ________________NUMROW_R1__________________,
|
||||
________________NUMROW_R1__________________, ________________NUMPAD_R2__________________,
|
||||
___________________________________________, ________________NUMPAD_R3__________________,
|
||||
___________________________________________, ________________, ________________NUMPAD_R4__________________
|
||||
),
|
||||
[_SYMBOL] = LAYOUT_atreus_wrapper( /* SM_SPC */
|
||||
________________SYMROW_L1__________________, ________________SYMROW_R1__________________,
|
||||
________________SYMROW_R1__________________, ________________SYMROW_R1__________________,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, KC_BSLS,
|
||||
_______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, _______, _______, _______, _______, _______
|
||||
KC_LBRC, _______, _______, _______, _______, ________________, _______, _______, _______, _______, KC_RBRC
|
||||
),
|
||||
[_F_KEYS] = LAYOUT( /* FK_DOT */
|
||||
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10,
|
||||
KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, _______, _______, _______, KC_F11,
|
||||
KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, KC_F12,
|
||||
[_F_KEYS] = LAYOUT_atreus_wrapper( /* FK_DOT */
|
||||
________________FKEYROW_L1_________________, ________________FKEYROW_R1_________________,
|
||||
________________FKEYROW_R1_________________, ________________FKEYROW_L1_________________,
|
||||
KC_F11, KC_F12, _______, _______, _______, KC_F11, KC_F12, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
[_SECRET] = LAYOUT( /* shhhh... */
|
||||
RESET, _______, _______, RUSTY, FUEL, KC_F13, _______, _______, _______, _______,
|
||||
[_DEBUG] = LAYOUT_atreus_wrapper( /* shhhh... */
|
||||
________________DEBUG_L1___________________, ________________DEBUG_R1___________________,
|
||||
________________DEBUG_L2___________________, ________________DEBUG_R2___________________,
|
||||
________________DEBUG_L3___________________, ________________DEBUG_R3___________________,
|
||||
_______, _______, _______, _______, _______, ________________, _______, _______, _______, _______, _______
|
||||
),
|
||||
[_SECRET] = LAYOUT_atreus_wrapper( /* shhhh... */
|
||||
/*
|
||||
_______, _______, _______, RUSTY, FUEL, _______, _______, _______, _______, _______,
|
||||
AR1ST, SYSNOC, _______, _______, _______, _______, _______, _______, OS_LAB, _______,
|
||||
CDLOCAL, _______, C0RE, VAXIS, _______, _______, MUNKY, _______, _______, _______,
|
||||
CDLOCAL, _______, C0RE, VAXIS, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
*/
|
||||
________________SECRET_L1__________________, ________________SECRET_R1__________________,
|
||||
________________SECRET_L2__________________, ________________SECRET_R2__________________,
|
||||
________________SECRET_L3__________________, ________________SECRET_R3__________________,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
|
||||
),
|
||||
[_FINAL] = LAYOUT( /* . */
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
[_FINAL] = LAYOUT_atreus( /* . */
|
||||
_______, _______, _______, _______, TESTING, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
)
|
||||
};
|
||||
|
||||
// custom tap/hold keys
|
||||
uint16_t key_timer;
|
||||
bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
|
||||
switch(keycode) {
|
||||
case RG_QUOT:
|
||||
if (record->event.pressed) {
|
||||
key_timer = timer_read();
|
||||
layer_on(_NUMBER);
|
||||
register_mods(MOD_BIT(KC_RGUI));
|
||||
} else {
|
||||
unregister_mods(MOD_BIT(KC_RGUI));
|
||||
layer_off(_NUMBER);
|
||||
if (timer_elapsed(key_timer) < TAPPING_TERM) {
|
||||
tap_code(KC_QUOT);
|
||||
}
|
||||
}
|
||||
return false; break;
|
||||
}
|
||||
return true;
|
||||
};
|
||||
|
||||
@@ -5,13 +5,14 @@ MCU = STM32F303
|
||||
#
|
||||
BACKLIGHT_ENABLE = no
|
||||
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
|
||||
#MOUSEKEY_ENABLE = yes # Mouse keys
|
||||
MOUSEKEY_ENABLE = no # Mouse keys
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||
CONSOLE_ENABLE = yes # Console for debug
|
||||
COMMAND_ENABLE = yes # Commands for debug and configuration
|
||||
#SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
|
||||
CONSOLE_ENABLE = no # Console for debug
|
||||
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||
NKRO_ENABLE = yes # USB Nkey Rollover
|
||||
AUDIO_ENABLE = yes
|
||||
AUDIO_ENABLE = yes # Doot
|
||||
RGBLIGHT_ENABLE = no
|
||||
# SERIAL_LINK_ENABLE = yes
|
||||
#TAP_DANCE_ENABLE = yes
|
||||
TAP_DANCE_ENABLE = no
|
||||
UNICODE_ENABLE = no
|
||||
UNICODEMAP_ENABLE = yes
|
||||
|
||||
|
||||
@@ -20,13 +20,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
#pragma once
|
||||
|
||||
//#define USE_MATRIX_I2C
|
||||
|
||||
/* Select hand configuration */
|
||||
#define TAPPING_TERM 200
|
||||
|
||||
#define MASTER_LEFT
|
||||
// #define MASTER_RIGHT
|
||||
// #define EE_HANDS
|
||||
|
||||
#define USE_SERIAL_PD2
|
||||
|
||||
|
||||
34
keyboards/fc660c/keymaps/mikefightsbears/keymap.c
Normal file
34
keyboards/fc660c/keymaps/mikefightsbears/keymap.c
Normal file
@@ -0,0 +1,34 @@
|
||||
/*
|
||||
Copyright 2017 Balz Guenat
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = LAYOUT(
|
||||
KC_GESC,KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,KC_EQL, KC_BSPC, KC_INS,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,KC_RBRC,KC_BSLS, KC_DEL,
|
||||
KC_LCTL,KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT, KC_ENT,
|
||||
KC_LSFT,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH,KC_RSFT, KC_UP,
|
||||
KC_CAPS,KC_LGUI,KC_LALT, KC_SPC, KC_RALT,KC_RCTL,MO(1), KC_LEFT,KC_DOWN,KC_RGHT
|
||||
),
|
||||
[1] = LAYOUT(
|
||||
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______,
|
||||
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,KC_PSCR,KC_SLCK,KC_PAUS,_______, _______,
|
||||
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,
|
||||
_______,_______,_______,_______,_______,_______,_______,KC_MUTE,KC_MPRV,KC_MNXT,KC_MPLY,_______, KC_PGUP,
|
||||
_______,_______,_______, _______, _______,_______,_______, KC_HOME,KC_PGDN,KC_END
|
||||
)
|
||||
};
|
||||
6
keyboards/fc660c/keymaps/mikefightsbears/rules.mk
Normal file
6
keyboards/fc660c/keymaps/mikefightsbears/rules.mk
Normal file
@@ -0,0 +1,6 @@
|
||||
# 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
|
||||
# #
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||
@@ -0,0 +1,7 @@
|
||||
#pragma once
|
||||
|
||||
#undef MATRIX_COL_PINS
|
||||
#define MATRIX_COL_PINS { B3, B7, D0, D1, D2, D3, C6, C7, B5, B6, F7, F6 }
|
||||
|
||||
#undef MATRIX_ROW_PINS
|
||||
#define MATRIX_ROW_PINS { F0, F1, F4, F5 }
|
||||
123
keyboards/handwired/minorca/keymaps/ridingqwerty/keymap.c
Normal file
123
keyboards/handwired/minorca/keymaps/ridingqwerty/keymap.c
Normal file
@@ -0,0 +1,123 @@
|
||||
/* Copyright 2019 George Koenig
|
||||
*
|
||||
* 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 "ridingqwerty.h"
|
||||
|
||||
/* MinOrca
|
||||
┏━━━━━━━━┯━━━━━━━━┯━━━━━━━━┯━━━━━━━━┯━━━━━━━━┯━━━━━━━━┯━━━━━━━━┯━━━━━━━━┯━━━━━━━━┯━━━━━━━━┯━━━━━━━━┯━━━━━━━━┓
|
||||
┃ ⎋ │ 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 │ , │ 𝔽 . │ ⇧ / ┃
|
||||
┠──────────┬───┴──────┬─┴────────┼────────┴────────┴──┬─────┴────────┴─────┬──┴───────┬┴───────┬┴───────────┨
|
||||
┃ { ⎈ │ [ ⌘ │ ( ⌥ │ 🔢 ␣ │ ★ ␣ │ ) ⌥ │ ] ⌘ │ } ⎈ ┃
|
||||
┗━━━━━━━━━━┷━━━━━━━━━━┷━━━━━━━━━━┷━━━━━━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━━━━━━┷━━━━━━━━━━┷━━━━━━━━┷━━━━━━━━━━━━┛
|
||||
*/
|
||||
|
||||
#define LAYOUT_minorca( \
|
||||
KA00, KA01, KA02, KA03, KA04, KA05, KA06, KA07, KA08, KA09, KA10, KA11, \
|
||||
KB00, KB01, KB02, KB03, KB04, KB05, KB06, KB07, KB08, KB09, KB11, \
|
||||
KC00, KC02, KC03, KC04, KC05, KC06, KC07, KC08, KC09, KC10, KC11, \
|
||||
KD00, KD02, KD03, KD04, KD07, KD09, KD10, KD11 \
|
||||
) { \
|
||||
{ KA00, KA01, KA02, KA03, KA04, KA05, KA06, KA07, KA08, KA09, KA10, KA11 }, \
|
||||
{ KB00, KB01, KB02, KB03, KB04, KB05, KB06, KB07, KB08, KB09, KC_NO, KB11 }, \
|
||||
{ KC00, KC_NO, KC02, KC03, KC04, KC05, KC06, KC07, KC08, KC09, KC10, KC11 }, \
|
||||
{ KD00, KC_NO, KD02, KD03, KD04, KC_NO, KC_NO, KD07, KC_NO, KD09, KD10, KD11 } \
|
||||
}
|
||||
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[_QWERTY] = {
|
||||
{KC_GESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, SC(BSPC) },
|
||||
{ED(TAB), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, XXXXXXX, NM(SCLN) },
|
||||
{LS(QUOT), XXXXXXX, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, FK(DOT), RS(SLSH) },
|
||||
{LC(ESC), XXXXXXX, LG(LBRC), LA(RBRC), NM(BSPC), XXXXXXX, XXXXXXX, SM(SPC), XXXXXXX, RA(MINS), RG(EQL), RC(ENT) }
|
||||
/*
|
||||
//┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐
|
||||
//├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┴────────┤
|
||||
//├────────┴────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┬────────┤
|
||||
//├─────────────────┼────────┼────────┼────────┴────────┼────────┴────────┼────────┴────────┼────────┼────────┤
|
||||
//└─────────────────┴────────┴────────┴─────────────────┴─────────────────┴─────────────────┴────────┴────────┘
|
||||
*/
|
||||
|
||||
|
||||
},
|
||||
#ifdef UNICODE_H
|
||||
[_RUNE] = {
|
||||
{KC_ESC, X(INGWZ), X(WUNJO), X(EHWAZ), X(RAIDO), X(TIWAZ), X(IWAZ), X(UR), X(ISAZ), X(ETHEL), X(PERTH), SC(BSPC) },
|
||||
{ED(TAB), X(ANSUZ), X(SOWIL), X(DAGAZ), X(FE), X(GEBO), X(HAGLZ), X(JERAN), X(KAUNA), X(LAUKZ), XXXXXXX, NM(SCLN) },
|
||||
{MT_QUOT, XXXXXXX, X(ALGIZ), X(THURS), X(KAUNA), X(WUNJO), X(BEORC), X(NAUDZ), X(MANNZ), KC_COMM, FK(DOT), RS(SLSH) },
|
||||
{LC(ESC), XXXXXXX, LG(LBRC), LA(RBRC), NM(BSPC), XXXXXXX, XXXXXXX, SM(SPC), XXXXXXX, RA(MINS), RG(EQL), RC(ENT) }
|
||||
},
|
||||
#endif
|
||||
[_EDITOR] = {
|
||||
//┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐
|
||||
{KC_GRV, _______, _______, KC_END, _______, KC_F5, _______, _______, KC_INS, _______, KC_PGUP, KC_DELT },
|
||||
//├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┴────────┤
|
||||
{_______, KC_HOME, _______, KC_DELT, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, XXXXXXX, KC_SCLN },
|
||||
//├────────┴────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┬────────┤
|
||||
{_______, XXXXXXX, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, KC_PGDN, _______, KC_SCLN, KC_QUOT, KC_BSLS },
|
||||
//├─────────────────┼────────┼────────┼────────┴────────┼────────┴────────┼────────┴────────┼────────┼────────┤
|
||||
{_______, XXXXXXX, _______, _______, KC_EQL, XXXXXXX, XXXXXXX, KC_MINS, XXXXXXX, KC_COLN, KC_DQUO, KC_PIPE }
|
||||
//└─────────────────┴────────┴────────┴─────────────────┴─────────────────┴─────────────────┴────────┴────────┘
|
||||
},
|
||||
[_NUMBER] = {
|
||||
//┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐
|
||||
{KC_0, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC },
|
||||
//├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┴────────┤
|
||||
{_______, KC_4, KC_5, KC_6, KC_PAST, _______, KC_PPLS, KC_4, KC_5, KC_6, XXXXXXX, _______ },
|
||||
//├────────┴────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┬────────┤
|
||||
{_______, KC_7, KC_8, KC_9, KC_SLSH, _______, _______, KC_MINS, KC_1, KC_2, KC_3, _______ },
|
||||
//├─────────────────┼────────┼────────┼────────┴────────┼────────┴────────┼────────┴────────┼────────┼────────┤
|
||||
{_______, XXXXXXX, KC_0, _______, _______, XXXXXXX, XXXXXXX, KC_0, XXXXXXX, KC_DOT, _______, _______ }
|
||||
//└─────────────────┴────────┴────────┴─────────────────┴─────────────────┴─────────────────┴────────┴────────┘
|
||||
},
|
||||
[_SYMBOL] = {
|
||||
//┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐
|
||||
{KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DELT },
|
||||
//├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┴────────┤
|
||||
{_______, _______, _______, _______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, XXXXXXX, _______ },
|
||||
//├────────┴────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┬────────┤
|
||||
{_______, XXXXXXX, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, KC_SCLN, KC_QUOT, KC_BSLS },
|
||||
//├─────────────────┼────────┼────────┼────────┴────────┼────────┴────────┼────────┴────────┼────────┼────────┤
|
||||
{_______, XXXXXXX, _______, _______, _______, XXXXXXX, XXXXXXX, _______, XXXXXXX, KC_COLN, KC_DQUO, KC_PIPE }
|
||||
//└─────────────────┴────────┴────────┴─────────────────┴─────────────────┴─────────────────┴────────┴────────┘
|
||||
},
|
||||
[_SECRET] = {
|
||||
//┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐
|
||||
{RESET, _______, _______, _______, SECRET0, SECRET1, _______, _______, _______, _______, VERSION, _______ },
|
||||
//├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┴────────┤
|
||||
{_______, SECRET4, SECRET8, DEBUG, _______, _______, _______, _______, _______, SECRET7, XXXXXXX, MAKE },
|
||||
//├────────┴────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┬────────┤
|
||||
{_______, XXXXXXX, SECRET6, _______, SECRET2, SECRET5, _______, _______, SECRET3, _______, _______, _______ },
|
||||
//├─────────────────┼────────┼────────┼────────┴────────┼────────┴────────┼────────┴────────┼────────┼────────┤
|
||||
{_______, XXXXXXX, _______, _______, _______, XXXXXXX, XXXXXXX, _______, XXXXXXX, _______, _______, _______ }
|
||||
//└─────────────────┴────────┴────────┴─────────────────┴─────────────────┴─────────────────┴────────┴────────┘
|
||||
},
|
||||
[_F_KEYS] = {
|
||||
//┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐
|
||||
{KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11 },
|
||||
//├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┴────────┤
|
||||
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, _______ },
|
||||
//├────────┴────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┬────────┤
|
||||
{_______, XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
|
||||
//├─────────────────┼────────┼────────┼────────┴────────┼────────┴────────┼────────┴────────┼────────┼────────┤
|
||||
{_______, XXXXXXX, _______, _______, _______, XXXXXXX, XXXXXXX, _______, XXXXXXX, _______, _______, _______ }
|
||||
//└─────────────────┴────────┴────────┴─────────────────┴─────────────────┴─────────────────┴────────┴────────┘
|
||||
},
|
||||
};
|
||||
@@ -0,0 +1 @@
|
||||
# Handwire of Minorca using teensy 2.0
|
||||
10
keyboards/handwired/minorca/keymaps/ridingqwerty/rules.mk
Normal file
10
keyboards/handwired/minorca/keymaps/ridingqwerty/rules.mk
Normal file
@@ -0,0 +1,10 @@
|
||||
MCU = atmega32u4
|
||||
BOOTLOADER = halfkay
|
||||
|
||||
# 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 = lite # Virtual DIP switch configuration
|
||||
UNICODE_ENABLE = no # Unicode
|
||||
UNICODEMAP_ENABLE = yes # Unicode Map
|
||||
@@ -10,10 +10,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
),
|
||||
[1] = LAYOUT_65_ansi_blocker(
|
||||
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_DEL,
|
||||
KC_TRNS, KC_TRNS, RGB_VAI, KC_TRNS, KC_TRNS, RGB_SAI, RGB_HUI, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_TRNS, KC_END,
|
||||
KC_TRNS, RGB_SPD, RGB_VAD, RGB_SPI, KC_TRNS, RGB_SAD, RGB_HUD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU,
|
||||
KC_TRNS, RGB_RMOD, RGB_TOG, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_MPRV, KC_MNXT, KC_MPLY, KC_TRNS, KC_PGUP, KC_VOLD,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END
|
||||
_______, _______, RGB_VAI, _______, _______, RGB_SAI, RGB_HUI, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______, KC_END,
|
||||
_______, RGB_SPD, RGB_VAD, RGB_SPI, _______, RGB_SAD, RGB_HUD, _______, _______, _______, _______, _______, _______, KC_VOLU,
|
||||
_______, RGB_RMOD, RGB_TOG, RGB_MOD, _______, _______, _______, KC_MUTE, KC_MPRV, KC_MNXT, KC_MPLY, _______, KC_PGUP, KC_VOLD,
|
||||
_______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END
|
||||
)
|
||||
};
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
|
||||
#ifdef OLED_DRIVER_ENABLE
|
||||
#define OLED_DISPLAY_128X64
|
||||
#define OLED_TIMEOUT 30000
|
||||
#define OLED_TIMEOUT 15000
|
||||
#endif
|
||||
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
@@ -32,10 +32,6 @@
|
||||
# define RGBLIGHT_SPLIT
|
||||
#endif
|
||||
|
||||
// Allows to use either side as the master. Look at the documentation for info:
|
||||
// https://docs.qmk.fm/#/config_options?id=setting-handedness
|
||||
#define EE_HANDS
|
||||
|
||||
// If you are using an Elite C rev3 on the slave side, uncomment the lines below:
|
||||
#define SPLIT_USB_DETECT
|
||||
#define SPLIT_USB_TIMEOUT 1000
|
||||
|
||||
84
keyboards/kyria/keymaps/ninjonas/encoder.c
Normal file
84
keyboards/kyria/keymaps/ninjonas/encoder.c
Normal file
@@ -0,0 +1,84 @@
|
||||
/* Copyright 2020 ninjonas
|
||||
*
|
||||
* 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 "ninjonas.h"
|
||||
|
||||
#ifdef ENCODER_ENABLE
|
||||
void encoder_update_user(uint8_t index, bool clockwise) {
|
||||
if (index == 0) {
|
||||
switch (get_highest_layer(layer_state)) {
|
||||
case _LOWER:
|
||||
if (clockwise) {
|
||||
tap_code16(SGUI(KC_TAB));
|
||||
} else {
|
||||
tap_code16(LGUI(KC_TAB));
|
||||
}
|
||||
break;
|
||||
case _RAISE:
|
||||
if (clockwise) {
|
||||
tap_code(KC_PGUP);
|
||||
} else {
|
||||
tap_code(KC_PGDN);
|
||||
}
|
||||
break;
|
||||
case _ADJUST:
|
||||
if (clockwise) {
|
||||
rgblight_increase_hue();
|
||||
} else {
|
||||
rgblight_decrease_hue();
|
||||
}
|
||||
break;
|
||||
default:
|
||||
if (clockwise) {
|
||||
tap_code(KC_BRIU);
|
||||
} else {
|
||||
tap_code(KC_BRID);
|
||||
}
|
||||
break;
|
||||
}
|
||||
} else if (index == 1) {
|
||||
switch (get_highest_layer(layer_state)) {
|
||||
case _LOWER:
|
||||
if (clockwise) {
|
||||
tap_code(KC_UP);
|
||||
} else {
|
||||
tap_code(KC_DOWN);
|
||||
}
|
||||
break;
|
||||
case _RAISE:
|
||||
if (clockwise) {
|
||||
tap_code16(LCTL(KC_TAB));
|
||||
} else {
|
||||
tap_code16(LCTL(LSFT(KC_TAB)));
|
||||
}
|
||||
break;
|
||||
case _ADJUST:
|
||||
if (clockwise) {
|
||||
rgblight_increase_val();
|
||||
} else {
|
||||
rgblight_decrease_val();
|
||||
}
|
||||
break;
|
||||
default:
|
||||
if (clockwise) {
|
||||
tap_code(KC_VOLU);
|
||||
} else {
|
||||
tap_code(KC_VOLD);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
@@ -60,9 +60,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
// |--------+-----——-+——------+-——-----+——------+——-----| |------—+——------+——------+——------+——------+--------|
|
||||
_____________________LOWER_L2_______________________, _____________________LOWER_R2_______________________,
|
||||
// |--------+-----——-+——------+-——-----+——------+——-----+———-----------. ,——————————————+------—+——------+——------+——------+——------+--------|
|
||||
_____________________LOWER_L3_______________________,_______,_______, _______,_______,_____________________LOWER_R3_______________________,
|
||||
_____________________LOWER_L3_______________________,_______,_______, _______,_______,_____________________LOWER_R3_______________________,
|
||||
// `--------------------------+--------+--------+-------+-------+------| |------+-------+-------+--------+--------+--------+--------+--------'
|
||||
_______,_______,_______,_______,_______, _______,_______,_______,_______,_______
|
||||
_______,_______,_______,_______,_______, _______,_______,_______,_______,_______
|
||||
// `----------------------------------------' `----------------------------------------'
|
||||
),
|
||||
|
||||
@@ -72,9 +72,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
// |--------+-----——-+——------+-——-----+——------+——-----| |------—+——------+——------+——------+——------+--------|
|
||||
_____________________SYM_LEFT_______________________, _____________________SYM_RIGHT______________________,
|
||||
// |--------+-----——-+——------+-——-----+——------+——-----+———-----------. ,——————————————+------—+——------+——------+——------+——------+--------|
|
||||
_____________________FUNC_LEFT______________________,_______,_______, _______,_______,_____________________FUNC_RIGHT_____________________,
|
||||
_____________________FUNC_LEFT______________________,_______,_______, K_CPRF,_______,_____________________FUNC_RIGHT_____________________,
|
||||
// `--------------------------+--------+--------+-------+-------+------| |------+-------+-------+--------+--------+--------+--------+--------'
|
||||
_______,_______,_______,_______,_______, _______,_______,_______,_______,_______
|
||||
_______,_______,_______,_______,_______, _______,_______,_______,_______,_______
|
||||
// `----------------------------------------' `----------------------------------------'
|
||||
),
|
||||
|
||||
@@ -84,9 +84,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
// |--------+-----——-+——------+-——-----+——------+——-----| |------—+——------+——------+——------+——------+--------|
|
||||
_____________________ADJUST_L2______________________, _____________________ADJUST_R2______________________,
|
||||
// |--------+-----——-+——------+-——-----+——------+——-----+———-----------. ,——————————————+------—+——------+——------+——------+——------+--------|
|
||||
_____________________ADJUST_L3______________________,_______,_______, _______,_______,_____________________ADJUST_R3______________________,
|
||||
_____________________ADJUST_L3______________________,_______,_______, _______,_______,_____________________ADJUST_R3______________________,
|
||||
// `--------------------------+--------+--------+-------+-------+------| |------+-------+-------+--------+--------+--------+--------+--------'
|
||||
_______,_______,_______,_______,_______, _______,_______,_______,_______,_______
|
||||
_______,_______,_______,_______,_______, _______,_______,_______,_______,_______
|
||||
// `----------------------------------------' `----------------------------------------'
|
||||
),
|
||||
/*
|
||||
@@ -102,214 +102,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
// `----------------------------------------' `----------------------------------------'
|
||||
),
|
||||
*/
|
||||
};
|
||||
|
||||
#ifdef OLED_DRIVER_ENABLE
|
||||
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
|
||||
return OLED_ROTATION_180;
|
||||
}
|
||||
|
||||
static void render_logo(void) {
|
||||
static const char PROGMEM logo[] = {
|
||||
// Converter: https://javl.github.io/image2cpp/
|
||||
// Image Dimensions: 128x64
|
||||
// Code Output Format: Plain Bytes
|
||||
// Draw Mode: Vertical, 1 bit per pixel
|
||||
0x00, 0x00, 0x80, 0xc0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xc0, 0xc0, 0x00, 0x00, 0xe0,
|
||||
0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x80, 0xe0, 0xe0, 0xe0, 0xe0, 0x80, 0x00, 0x00, 0xe0, 0xe0, 0xe0,
|
||||
0xe0, 0x00, 0x60, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0x80, 0x00, 0x00,
|
||||
0xc0, 0xe0, 0xe0, 0xe0, 0x20, 0x60, 0xe0, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0,
|
||||
0xe0, 0x00, 0x00, 0xc0, 0xc0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xc0, 0xc0, 0x00, 0x00, 0x00,
|
||||
0x80, 0xc0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xc0, 0x80, 0x00, 0xe0, 0xe0, 0xfc, 0xfe,
|
||||
0xfe, 0xfe, 0xee, 0xee, 0x0e, 0x80, 0xc0, 0xc0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xc0, 0x80,
|
||||
0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xc0, 0x80, 0x00, 0x00,
|
||||
0x00, 0x00, 0x79, 0xfd, 0xfd, 0xfd, 0xec, 0xee, 0x76, 0x7f, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00,
|
||||
0x07, 0x3f, 0xff, 0xfc, 0xf8, 0xff, 0x7f, 0x07, 0x0f, 0x7f, 0xff, 0xf8, 0xfc, 0xff, 0x3f, 0x07,
|
||||
0x00, 0x00, 0x00, 0x03, 0x1f, 0xff, 0xfe, 0xf0, 0xff, 0x7f, 0x0f, 0x07, 0x3f, 0xff, 0xfc, 0xf8,
|
||||
0xff, 0x7f, 0x0f, 0x01, 0x00, 0x00, 0x01, 0x0f, 0x3f, 0xff, 0xfe, 0xf8, 0xff, 0xff, 0x1f, 0x03,
|
||||
0x00, 0x00, 0x1f, 0x7f, 0x7f, 0xff, 0xf6, 0xe6, 0xe6, 0xf7, 0xf7, 0x77, 0x37, 0x17, 0x00, 0x30,
|
||||
0x79, 0xfd, 0xfd, 0xfd, 0xee, 0xee, 0x76, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff,
|
||||
0xff, 0xff, 0x00, 0x00, 0x00, 0x3f, 0x7f, 0x7f, 0xff, 0xf1, 0xe0, 0xe0, 0xff, 0xff, 0x7f, 0x3f,
|
||||
0x0e, 0x00, 0x0e, 0x3f, 0x7f, 0xff, 0xff, 0xe0, 0xe0, 0xe1, 0xff, 0x7f, 0x7f, 0x3f, 0x04, 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, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0,
|
||||
0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x0e, 0x0e, 0x0f, 0x0f, 0x07, 0x03, 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, 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, 0x0c, 0x3c, 0xfc, 0xfc, 0xfc, 0xc0, 0x00, 0xe0, 0xfc, 0xfc, 0x7c, 0x1c, 0x00, 0xf0, 0xf8,
|
||||
0xf8, 0xfc, 0xdc, 0xdc, 0xdc, 0xfc, 0xfc, 0xf8, 0xf0, 0xe0, 0x00, 0x00, 0x30, 0xb8, 0xbc, 0xbc,
|
||||
0xdc, 0xdc, 0xdc, 0xfc, 0xfc, 0xf8, 0xf0, 0x00, 0x1c, 0x1c, 0xff, 0xff, 0xff, 0xff, 0x1d, 0x1d,
|
||||
0x00, 0xf0, 0xf8, 0xf8, 0xfc, 0x3c, 0x1c, 0x1c, 0xfc, 0xfc, 0xf8, 0xf0, 0xc0, 0x00, 0xe0, 0xf0,
|
||||
0xf8, 0xfc, 0x3c, 0x1c, 0x1c, 0x3c, 0xfc, 0xf8, 0xf8, 0xe0, 0x00, 0x00, 0x20, 0xb8, 0xbc, 0xbc,
|
||||
0xbc, 0xdc, 0xdc, 0xfc, 0xfc, 0xfc, 0xf8, 0xe0, 0x00, 0x0c, 0x7c, 0xfc, 0xfc, 0xc0, 0x00, 0xe0,
|
||||
0xfc, 0xfc, 0xfc, 0xfc, 0xf0, 0x80, 0x00, 0xf8, 0xfc, 0xfc, 0x3c, 0x04, 0x0c, 0x7c, 0xfc, 0xfc,
|
||||
0xf0, 0x00, 0xc0, 0xfc, 0xfc, 0x7c, 0xfc, 0xf8, 0xc0, 0x00, 0xf0, 0xfc, 0xfc, 0x7c, 0x0c, 0x00,
|
||||
0x00, 0x00, 0xc0, 0xc1, 0xc7, 0xff, 0xff, 0xff, 0x7f, 0x1f, 0x03, 0x00, 0x00, 0x00, 0x07, 0x0f,
|
||||
0x1f, 0x1f, 0x1e, 0x1c, 0x1c, 0x1e, 0x1e, 0x0e, 0x06, 0x00, 0x00, 0x06, 0x0f, 0x1f, 0x1f, 0x1f,
|
||||
0x1d, 0x1d, 0x0e, 0x1f, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x1f, 0x00, 0x00,
|
||||
0x00, 0x07, 0x0f, 0x0f, 0x1f, 0x1e, 0x1c, 0x1c, 0x1f, 0x1f, 0x0f, 0x07, 0x01, 0x00, 0x03, 0x07,
|
||||
0x0f, 0x1f, 0x1e, 0x1c, 0x1c, 0x1e, 0x1f, 0x0f, 0x0f, 0x03, 0x00, 0x00, 0x0f, 0x1f, 0x1f, 0x1f,
|
||||
0x1d, 0x1d, 0x0c, 0x0f, 0x1f, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x03, 0x1f, 0x1f, 0x1e, 0x1f,
|
||||
0x0f, 0x01, 0x00, 0x07, 0x1f, 0x1f, 0x1f, 0x1f, 0x0f, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0f,
|
||||
0x1f, 0x1e, 0x1f, 0x1f, 0x03, 0x00, 0x03, 0x1f, 0x1f, 0x1e, 0x1f, 0x0f, 0x01, 0x00, 0x00, 0x00,
|
||||
0x00, 0x80, 0xc1, 0xf1, 0xf9, 0xf9, 0xf9, 0xb8, 0xb8, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80,
|
||||
0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00,
|
||||
0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00,
|
||||
0x80, 0x80, 0x80, 0x80, 0x00, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80,
|
||||
0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00,
|
||||
0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x03, 0x7c, 0xfe, 0xff, 0xff, 0xc7, 0x83, 0x83,
|
||||
0xc7, 0xff, 0xff, 0xff, 0x7c, 0x00, 0x00, 0x7c, 0xff, 0xff, 0xff, 0xc7, 0x83, 0x83, 0xc7, 0xff,
|
||||
0xff, 0xfe, 0x7c, 0x00, 0xc0, 0xe6, 0xf7, 0xf7, 0xf7, 0xbb, 0xbb, 0xdb, 0xff, 0xff, 0xff, 0xfe,
|
||||
0x00, 0x00, 0x03, 0x1f, 0xff, 0xff, 0xf0, 0xe0, 0xfe, 0xff, 0x1f, 0x3f, 0xff, 0xfe, 0xe0, 0xf0,
|
||||
0xff, 0xff, 0x1f, 0x03, 0x00, 0x01, 0x0f, 0x7f, 0xff, 0xf8, 0xc0, 0xfc, 0xff, 0x3f, 0x1f, 0xff,
|
||||
0xfe, 0xf0, 0xe0, 0xff, 0xff, 0x3f, 0x07, 0x00, 0x01, 0x07, 0x3f, 0xff, 0xff, 0xf8, 0xe0, 0xfc,
|
||||
0xff, 0x7f, 0x0f, 0x03, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xdb, 0x9b, 0x9b, 0xdf, 0xdf, 0xdf, 0xde,
|
||||
0x1c, 0x00, 0xc0, 0xe6, 0xf7, 0xf7, 0xf7, 0xbb, 0xbb, 0xdb, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00,
|
||||
0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03, 0x03,
|
||||
0x03, 0x03, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03,
|
||||
0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x03, 0x03, 0x03, 0x03,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03,
|
||||
0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00,
|
||||
0x03, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x38, 0x38, 0x38, 0x3f, 0x3f, 0x1f, 0x0f,
|
||||
0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x00,
|
||||
0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00
|
||||
};
|
||||
oled_write_raw_P(logo, sizeof(logo));
|
||||
}
|
||||
|
||||
static void render_qmk_logo(void) {
|
||||
static const char PROGMEM qmk_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(qmk_logo, false);
|
||||
}
|
||||
|
||||
void oled_white_space(void){
|
||||
oled_write_P(PSTR(" "), false);
|
||||
}
|
||||
|
||||
static void render_status(void) {
|
||||
oled_write_P(PSTR("\nLayer: "), false);
|
||||
oled_write_P(PSTR("LOW"), (layer_state_is(_LOWER) & !layer_state_is(_ADJUST)));
|
||||
oled_white_space();
|
||||
oled_write_P(PSTR("RAI"), (layer_state_is(_RAISE) & !layer_state_is(_ADJUST)));
|
||||
oled_white_space();
|
||||
oled_write_P(PSTR("ADJ"), layer_state_is(_ADJUST));
|
||||
}
|
||||
|
||||
void render_default_layer_state(void) {
|
||||
oled_write_P(PSTR("\nLayout: "), false);
|
||||
switch (biton32(default_layer_state)) {
|
||||
case _COLEMAK:
|
||||
oled_write_P(PSTR("Colemak"), false);
|
||||
break;
|
||||
case _DVORAK:
|
||||
oled_write_P(PSTR("Dvorak"), false);
|
||||
break;
|
||||
case _QWERTY:
|
||||
oled_write_P(PSTR("Qwerty"), false);
|
||||
break;
|
||||
default:
|
||||
oled_write_ln_P(PSTR("Undefined"), false);
|
||||
}
|
||||
}
|
||||
|
||||
void render_mod_status(uint8_t modifiers) {
|
||||
oled_write_P(PSTR("\nMods: "), false);
|
||||
oled_write_P(PSTR("SHF"), (modifiers & MOD_MASK_SHIFT));
|
||||
oled_white_space();
|
||||
oled_write_P(PSTR("CTL"), (modifiers & MOD_MASK_CTRL));
|
||||
oled_white_space();
|
||||
oled_write_P(PSTR("ALT"), (modifiers & MOD_MASK_ALT));
|
||||
oled_white_space();
|
||||
oled_write_P(PSTR("GUI"), (modifiers & MOD_MASK_GUI));
|
||||
}
|
||||
|
||||
void oled_task_user(void) {
|
||||
if (is_keyboard_master()) {
|
||||
render_qmk_logo();
|
||||
render_default_layer_state();
|
||||
render_status();
|
||||
render_mod_status(get_mods()|get_oneshot_mods());
|
||||
} else {
|
||||
render_logo();
|
||||
oled_scroll_left();
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef ENCODER_ENABLE
|
||||
void encoder_update_user(uint8_t index, bool clockwise) {
|
||||
if (index == 0) {
|
||||
switch (biton32(layer_state)) {
|
||||
case _LOWER:
|
||||
if (clockwise) {
|
||||
tap_code16(SGUI(KC_TAB));
|
||||
} else {
|
||||
tap_code16(LGUI(KC_TAB));
|
||||
}
|
||||
break;
|
||||
case _RAISE:
|
||||
if (clockwise) {
|
||||
tap_code(KC_PGUP);
|
||||
} else {
|
||||
tap_code(KC_PGDN);
|
||||
}
|
||||
break;
|
||||
case _ADJUST:
|
||||
if (clockwise) {
|
||||
rgblight_increase_hue();
|
||||
} else {
|
||||
rgblight_decrease_hue();
|
||||
}
|
||||
break;
|
||||
default:
|
||||
if (clockwise) {
|
||||
tap_code(KC_BRIU);
|
||||
} else {
|
||||
tap_code(KC_BRID);
|
||||
}
|
||||
break;
|
||||
}
|
||||
} else if (index == 1) {
|
||||
switch (biton32(layer_state)) {
|
||||
case _LOWER:
|
||||
if (!clockwise) {
|
||||
tap_code(KC_UP);
|
||||
} else {
|
||||
tap_code(KC_DOWN);
|
||||
}
|
||||
break;
|
||||
case _RAISE:
|
||||
if (!clockwise) {
|
||||
tap_code16(LCTL(KC_TAB));
|
||||
} else {
|
||||
tap_code16(LCTL(LSFT(KC_TAB)));
|
||||
}
|
||||
break;
|
||||
case _ADJUST:
|
||||
if (!clockwise) {
|
||||
rgblight_increase_val();
|
||||
} else {
|
||||
rgblight_decrease_val();
|
||||
}
|
||||
break;
|
||||
default:
|
||||
if (!clockwise) {
|
||||
tap_code(KC_VOLU);
|
||||
} else {
|
||||
tap_code(KC_VOLD);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
};
|
||||
168
keyboards/kyria/keymaps/ninjonas/oled.c
Normal file
168
keyboards/kyria/keymaps/ninjonas/oled.c
Normal file
@@ -0,0 +1,168 @@
|
||||
/* Copyright 2020 ninjonas
|
||||
*
|
||||
* 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 "ninjonas.h"
|
||||
|
||||
#ifdef OLED_DRIVER_ENABLE
|
||||
oled_rotation_t oled_init_user(oled_rotation_t rotation) { return OLED_ROTATION_180; }
|
||||
|
||||
static void render_logo(void) {
|
||||
static const char PROGMEM logo[] = {
|
||||
// Converter: https://javl.github.io/image2cpp/
|
||||
// Image Dimensions: 128x64
|
||||
// Code Output Format: Plain Bytes
|
||||
// Draw Mode: Vertical, 1 bit per pixel
|
||||
0x00, 0x00, 0x80, 0xc0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xc0, 0xc0, 0x00, 0x00, 0xe0,
|
||||
0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x80, 0xe0, 0xe0, 0xe0, 0xe0, 0x80, 0x00, 0x00, 0xe0, 0xe0, 0xe0,
|
||||
0xe0, 0x00, 0x60, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0x80, 0x00, 0x00,
|
||||
0xc0, 0xe0, 0xe0, 0xe0, 0x20, 0x60, 0xe0, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0,
|
||||
0xe0, 0x00, 0x00, 0xc0, 0xc0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xc0, 0xc0, 0x00, 0x00, 0x00,
|
||||
0x80, 0xc0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xc0, 0x80, 0x00, 0xe0, 0xe0, 0xfc, 0xfe,
|
||||
0xfe, 0xfe, 0xee, 0xee, 0x0e, 0x80, 0xc0, 0xc0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xc0, 0x80,
|
||||
0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xc0, 0x80, 0x00, 0x00,
|
||||
0x00, 0x00, 0x79, 0xfd, 0xfd, 0xfd, 0xec, 0xee, 0x76, 0x7f, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00,
|
||||
0x07, 0x3f, 0xff, 0xfc, 0xf8, 0xff, 0x7f, 0x07, 0x0f, 0x7f, 0xff, 0xf8, 0xfc, 0xff, 0x3f, 0x07,
|
||||
0x00, 0x00, 0x00, 0x03, 0x1f, 0xff, 0xfe, 0xf0, 0xff, 0x7f, 0x0f, 0x07, 0x3f, 0xff, 0xfc, 0xf8,
|
||||
0xff, 0x7f, 0x0f, 0x01, 0x00, 0x00, 0x01, 0x0f, 0x3f, 0xff, 0xfe, 0xf8, 0xff, 0xff, 0x1f, 0x03,
|
||||
0x00, 0x00, 0x1f, 0x7f, 0x7f, 0xff, 0xf6, 0xe6, 0xe6, 0xf7, 0xf7, 0x77, 0x37, 0x17, 0x00, 0x30,
|
||||
0x79, 0xfd, 0xfd, 0xfd, 0xee, 0xee, 0x76, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff,
|
||||
0xff, 0xff, 0x00, 0x00, 0x00, 0x3f, 0x7f, 0x7f, 0xff, 0xf1, 0xe0, 0xe0, 0xff, 0xff, 0x7f, 0x3f,
|
||||
0x0e, 0x00, 0x0e, 0x3f, 0x7f, 0xff, 0xff, 0xe0, 0xe0, 0xe1, 0xff, 0x7f, 0x7f, 0x3f, 0x04, 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, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0,
|
||||
0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x0e, 0x0e, 0x0f, 0x0f, 0x07, 0x03, 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, 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, 0x0c, 0x3c, 0xfc, 0xfc, 0xfc, 0xc0, 0x00, 0xe0, 0xfc, 0xfc, 0x7c, 0x1c, 0x00, 0xf0, 0xf8,
|
||||
0xf8, 0xfc, 0xdc, 0xdc, 0xdc, 0xfc, 0xfc, 0xf8, 0xf0, 0xe0, 0x00, 0x00, 0x30, 0xb8, 0xbc, 0xbc,
|
||||
0xdc, 0xdc, 0xdc, 0xfc, 0xfc, 0xf8, 0xf0, 0x00, 0x1c, 0x1c, 0xff, 0xff, 0xff, 0xff, 0x1d, 0x1d,
|
||||
0x00, 0xf0, 0xf8, 0xf8, 0xfc, 0x3c, 0x1c, 0x1c, 0xfc, 0xfc, 0xf8, 0xf0, 0xc0, 0x00, 0xe0, 0xf0,
|
||||
0xf8, 0xfc, 0x3c, 0x1c, 0x1c, 0x3c, 0xfc, 0xf8, 0xf8, 0xe0, 0x00, 0x00, 0x20, 0xb8, 0xbc, 0xbc,
|
||||
0xbc, 0xdc, 0xdc, 0xfc, 0xfc, 0xfc, 0xf8, 0xe0, 0x00, 0x0c, 0x7c, 0xfc, 0xfc, 0xc0, 0x00, 0xe0,
|
||||
0xfc, 0xfc, 0xfc, 0xfc, 0xf0, 0x80, 0x00, 0xf8, 0xfc, 0xfc, 0x3c, 0x04, 0x0c, 0x7c, 0xfc, 0xfc,
|
||||
0xf0, 0x00, 0xc0, 0xfc, 0xfc, 0x7c, 0xfc, 0xf8, 0xc0, 0x00, 0xf0, 0xfc, 0xfc, 0x7c, 0x0c, 0x00,
|
||||
0x00, 0x00, 0xc0, 0xc1, 0xc7, 0xff, 0xff, 0xff, 0x7f, 0x1f, 0x03, 0x00, 0x00, 0x00, 0x07, 0x0f,
|
||||
0x1f, 0x1f, 0x1e, 0x1c, 0x1c, 0x1e, 0x1e, 0x0e, 0x06, 0x00, 0x00, 0x06, 0x0f, 0x1f, 0x1f, 0x1f,
|
||||
0x1d, 0x1d, 0x0e, 0x1f, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x1f, 0x00, 0x00,
|
||||
0x00, 0x07, 0x0f, 0x0f, 0x1f, 0x1e, 0x1c, 0x1c, 0x1f, 0x1f, 0x0f, 0x07, 0x01, 0x00, 0x03, 0x07,
|
||||
0x0f, 0x1f, 0x1e, 0x1c, 0x1c, 0x1e, 0x1f, 0x0f, 0x0f, 0x03, 0x00, 0x00, 0x0f, 0x1f, 0x1f, 0x1f,
|
||||
0x1d, 0x1d, 0x0c, 0x0f, 0x1f, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x03, 0x1f, 0x1f, 0x1e, 0x1f,
|
||||
0x0f, 0x01, 0x00, 0x07, 0x1f, 0x1f, 0x1f, 0x1f, 0x0f, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0f,
|
||||
0x1f, 0x1e, 0x1f, 0x1f, 0x03, 0x00, 0x03, 0x1f, 0x1f, 0x1e, 0x1f, 0x0f, 0x01, 0x00, 0x00, 0x00,
|
||||
0x00, 0x80, 0xc1, 0xf1, 0xf9, 0xf9, 0xf9, 0xb8, 0xb8, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80,
|
||||
0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00,
|
||||
0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00,
|
||||
0x80, 0x80, 0x80, 0x80, 0x00, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80,
|
||||
0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00,
|
||||
0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x03, 0x7c, 0xfe, 0xff, 0xff, 0xc7, 0x83, 0x83,
|
||||
0xc7, 0xff, 0xff, 0xff, 0x7c, 0x00, 0x00, 0x7c, 0xff, 0xff, 0xff, 0xc7, 0x83, 0x83, 0xc7, 0xff,
|
||||
0xff, 0xfe, 0x7c, 0x00, 0xc0, 0xe6, 0xf7, 0xf7, 0xf7, 0xbb, 0xbb, 0xdb, 0xff, 0xff, 0xff, 0xfe,
|
||||
0x00, 0x00, 0x03, 0x1f, 0xff, 0xff, 0xf0, 0xe0, 0xfe, 0xff, 0x1f, 0x3f, 0xff, 0xfe, 0xe0, 0xf0,
|
||||
0xff, 0xff, 0x1f, 0x03, 0x00, 0x01, 0x0f, 0x7f, 0xff, 0xf8, 0xc0, 0xfc, 0xff, 0x3f, 0x1f, 0xff,
|
||||
0xfe, 0xf0, 0xe0, 0xff, 0xff, 0x3f, 0x07, 0x00, 0x01, 0x07, 0x3f, 0xff, 0xff, 0xf8, 0xe0, 0xfc,
|
||||
0xff, 0x7f, 0x0f, 0x03, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xdb, 0x9b, 0x9b, 0xdf, 0xdf, 0xdf, 0xde,
|
||||
0x1c, 0x00, 0xc0, 0xe6, 0xf7, 0xf7, 0xf7, 0xbb, 0xbb, 0xdb, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00,
|
||||
0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03, 0x03,
|
||||
0x03, 0x03, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03,
|
||||
0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x03, 0x03, 0x03, 0x03,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03,
|
||||
0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00,
|
||||
0x03, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x38, 0x38, 0x38, 0x3f, 0x3f, 0x1f, 0x0f,
|
||||
0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x00,
|
||||
0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00
|
||||
};
|
||||
oled_write_raw_P(logo, sizeof(logo));
|
||||
}
|
||||
|
||||
static void render_qmk_logo(void) {
|
||||
static const char PROGMEM qmk_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(qmk_logo, false);
|
||||
}
|
||||
|
||||
void oled_white_space(void){
|
||||
oled_write_P(PSTR(" "), false);
|
||||
}
|
||||
|
||||
void render_layout_state(void) {
|
||||
oled_write_P(PSTR("\nLayout: "), false);
|
||||
switch (biton32(default_layer_state)) {
|
||||
case _COLEMAK:
|
||||
oled_write_P(PSTR("Colemak"), false);
|
||||
break;
|
||||
case _DVORAK:
|
||||
oled_write_P(PSTR("Dvorak"), false);
|
||||
break;
|
||||
case _QWERTY:
|
||||
oled_write_P(PSTR("Qwerty"), false);
|
||||
break;
|
||||
default:
|
||||
oled_write_ln_P(PSTR("Undefined"), false);
|
||||
}
|
||||
}
|
||||
|
||||
static void render_layer_state(void) {
|
||||
oled_write_P(PSTR("\nLayer:"), false);
|
||||
bool lower = layer_state_is(_LOWER) & !layer_state_is(_ADJUST);
|
||||
bool raise = layer_state_is(_RAISE) & !layer_state_is(_ADJUST);
|
||||
bool adjust = layer_state_is(_ADJUST);
|
||||
|
||||
if(lower){
|
||||
oled_write_P(PSTR(" Lower "), true);
|
||||
} else if(raise){
|
||||
oled_write_P(PSTR(" Raise "), true);
|
||||
} else if(adjust){
|
||||
oled_write_P(PSTR(" Adjust "), true);
|
||||
} else {
|
||||
oled_write_P(PSTR(" Default"), false);
|
||||
}
|
||||
}
|
||||
|
||||
void render_mod_state(uint8_t modifiers) {
|
||||
oled_write_P(PSTR("\nMods: "), false);
|
||||
oled_write_P(PSTR("SHF"), (modifiers & MOD_MASK_SHIFT));
|
||||
oled_white_space();
|
||||
oled_write_P(PSTR("CTL"), (modifiers & MOD_MASK_CTRL));
|
||||
oled_white_space();
|
||||
oled_write_P(PSTR("ALT"), (modifiers & MOD_MASK_ALT));
|
||||
oled_white_space();
|
||||
oled_write_P(PSTR("GUI"), (modifiers & MOD_MASK_GUI));
|
||||
}
|
||||
|
||||
static void render_status(void) {
|
||||
render_qmk_logo();
|
||||
render_layout_state();
|
||||
render_layer_state();
|
||||
render_mod_state(get_mods()|get_oneshot_mods());
|
||||
}
|
||||
|
||||
void oled_task_user(void) {
|
||||
if (is_keyboard_master()) {
|
||||
render_status();
|
||||
} else {
|
||||
render_logo();
|
||||
oled_scroll_left();
|
||||
}
|
||||
}
|
||||
#endif
|
||||
@@ -1,4 +1,7 @@
|
||||
OLED_DRIVER_ENABLE = yes # Enables the use of OLED displays
|
||||
ENCODER_ENABLE = yes # Enables the use of one or more encoders
|
||||
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
|
||||
LINK_TIME_OPTIMIZATION_ENABLE = yes
|
||||
LINK_TIME_OPTIMIZATION_ENABLE = yes
|
||||
|
||||
SRC += encoder.c \
|
||||
oled.c
|
||||
@@ -6,7 +6,17 @@
|
||||
"height": 3,
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [{"x":0, "y":0}, {"label":"Encoder", "x":1, "y":0}, {"x":2, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}]
|
||||
"layout": [
|
||||
{"x":0, "y":0},
|
||||
{"label":"Encoder", "x":1, "y":0},
|
||||
{"x":2, "y":0},
|
||||
{"x":0, "y":1},
|
||||
{"x":1, "y":1},
|
||||
{"x":2, "y":1},
|
||||
{"x":0, "y":2},
|
||||
{"x":1, "y":2},
|
||||
{"x":2, "y":2}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
51
keyboards/ncc1701kb/keymaps/brushsize/keymap.c
Normal file
51
keyboards/ncc1701kb/keymaps/brushsize/keymap.c
Normal file
@@ -0,0 +1,51 @@
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
/* LAYER 0
|
||||
* ,-----------------------.
|
||||
* | << | MUTE | >> | ENCODER - PRESS (MUTE) / KNOB (Brush size)
|
||||
* |-------+-------+-------|
|
||||
* | STOP | PLAY | MEDIA |
|
||||
* |-------+-------+-------|
|
||||
* | CALC | MAIL | PC/FN |
|
||||
* `-----------------------'
|
||||
*/
|
||||
[0] = LAYOUT(
|
||||
KC_MPRV, KC_MUTE, KC_MNXT,
|
||||
KC_MSTP, KC_MPLY, KC_MSEL,
|
||||
KC_CALC, KC_MAIL, LT(1, KC_MYCM)
|
||||
),
|
||||
|
||||
/* LAYER 1
|
||||
* ,-----------------------.
|
||||
* |BL TOG | | BREATH|
|
||||
* |-------+-------+-------|
|
||||
* | BL + | BL - |BL CYCL|
|
||||
* |-------+-------+-------|
|
||||
* | BL ON | BL OFF| |
|
||||
* `-----------------------'
|
||||
*/
|
||||
[1] = LAYOUT(
|
||||
BL_TOGG, KC_TRNS, BL_BRTG,
|
||||
BL_INC, BL_DEC, BL_STEP,
|
||||
BL_ON, BL_OFF, KC_TRNS
|
||||
)
|
||||
|
||||
};
|
||||
|
||||
void encoder_update_user(uint8_t index, bool clockwise) {
|
||||
if (index == 0) { /* First encoder */
|
||||
if (clockwise) {
|
||||
tap_code(KC_RBRC);
|
||||
} else {
|
||||
tap_code(KC_LBRC);
|
||||
}
|
||||
} else if (index == 1) { /* Second encoder */
|
||||
if (clockwise) {
|
||||
tap_code(KC_RBRC);
|
||||
} else {
|
||||
tap_code(KC_LBRC);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -4,23 +4,30 @@
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[_BL] = LAYOUT_60_ansi(
|
||||
KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, \
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLASH, \
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLASH, \
|
||||
KC_CTCP, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, \
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPACE, KC_FNX, KC_RALT, KC_RGUI, KC_RCTL),
|
||||
|
||||
[_FL] = LAYOUT_60_ansi(
|
||||
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, \
|
||||
BL_TOGG, BL_INC, BL_DEC, BL_STEP, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
|
||||
BL_TOGG, BL_INC, BL_DEC, BL_STEP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
|
||||
RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
|
||||
VLK_TOG, RGB_RMOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS, \
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, MO(_CL), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
|
||||
|
||||
[_AL] = LAYOUT_60_ansi(
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RSFT_T(KC_UP), \
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT)
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, \
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT),
|
||||
|
||||
[_CL] = LAYOUT_60_ansi(
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, EEP_RST, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
|
||||
|
||||
};
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
# MechMerlin's Standard ANSI 60% Layout
|
||||
|
||||
This is the 60% layout used by u/merlin36, host of the [MechMerlin](www.youtube.com/mechmerlin)
|
||||
This is the standard 60% layout used by u/merlin36, host of the [MechMerlin](www.youtube.com/mechmerlin)
|
||||
YouTube channel.
|
||||
|
||||
It is used on his
|
||||
[1up60HSE](https://github.com/qmk/qmk_firmware/tree/master/keyboards/1upkeyboards/1up60hse)
|
||||
[dz60rgb-ansi](https://github.com/qmk/qmk_firmware/tree/master/keyboards/dztech/dz60rgb)
|
||||
[HS60 V2](https://github.com/qmk/qmk_firmware/tree/master/keyboards/hs60/v2)
|
||||
* [1up60HSE](https://github.com/qmk/qmk_firmware/tree/master/keyboards/1upkeyboards/1up60hse)
|
||||
* [dz60rgb-ansi](https://github.com/qmk/qmk_firmware/tree/master/keyboards/dztech/dz60rgb)
|
||||
* [HS60 V2](https://github.com/qmk/qmk_firmware/tree/master/keyboards/hs60/v2)
|
||||
|
||||
## Keymap Notes
|
||||
- Arrow toggle switch is tapping the `FN` key once.
|
||||
|
||||
@@ -4,23 +4,30 @@
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[_BL] = LAYOUT_60_ansi_split_bs_rshift(
|
||||
KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, \
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLASH, \
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLASH, \
|
||||
KC_CTCP, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, TG(2), \
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPACE, MO(1), KC_RALT, KC_RGUI, KC_RCTL),
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, TG(_AL), \
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPACE, MO(_FL), KC_RALT, KC_RGUI, KC_RCTL),
|
||||
|
||||
[_FL] = LAYOUT_60_ansi_split_bs_rshift(
|
||||
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_DEL, \
|
||||
BL_TOGG, BL_INC, BL_DEC, BL_STEP, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
|
||||
RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
|
||||
VLK_TOG, RGB_RMOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, \
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, MO(_CL), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
|
||||
|
||||
[_AL] = LAYOUT_60_ansi_split_bs_rshift(
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RSFT_T(KC_UP), KC_TRNS, \
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT)
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, \
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT),
|
||||
|
||||
[_CL] = LAYOUT_60_ansi_split_bs_rshift(
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, EEP_RST, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
|
||||
|
||||
};
|
||||
|
||||
@@ -5,11 +5,11 @@ host of the [MechMerlin](www.youtube.com/mechmerlin) YouTube channel.
|
||||
|
||||
It is used on his
|
||||
|
||||
[DO60](https://github.com/qmk/qmk_firmware/tree/master/keyboards/do60)
|
||||
[DP60](https://github.com/qmk/qmk_firmware/tree/master/keyboards/dp60)
|
||||
[Sentraq S60-X RGB](https://github.com/qmk/qmk_firmware/tree/master/keyboards/s60_x)
|
||||
[Waldo](https://github.com/qmk/qmk_firmware/tree/master/keyboards/waldo)
|
||||
[Zeal60 Rev4](https://github.com/qmk/qmk_firmware/tree/master/keyboards/zeal60)
|
||||
* [DO60](https://github.com/qmk/qmk_firmware/tree/master/keyboards/do60)
|
||||
* [DP60](https://github.com/qmk/qmk_firmware/tree/master/keyboards/dp60)
|
||||
* [Sentraq S60-X RGB](https://github.com/qmk/qmk_firmware/tree/master/keyboards/s60_x)
|
||||
* [Waldo](https://github.com/qmk/qmk_firmware/tree/master/keyboards/waldo)
|
||||
* [Zeal60 Rev4](https://github.com/qmk/qmk_firmware/tree/master/keyboards/zeal60)
|
||||
|
||||
## Keymap Notes
|
||||
- Highly influenced by the KBP V60 and WKL B.Face standard layouts
|
||||
|
||||
@@ -40,10 +40,18 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[_FL] = LAYOUT_65_ansi(
|
||||
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______,
|
||||
_______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, RGB_RMOD,RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, KC_PGUP, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END
|
||||
_______, _______, _______, MO(_CL), _______, _______, _______, KC_HOME, KC_PGDN, KC_END
|
||||
),
|
||||
|
||||
[_CL] = LAYOUT_65_ansi(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, EEP_RST, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
),
|
||||
};
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ This is the 65% layout used by u/merlin36, host of the [MechMerlin](www.youtube.
|
||||
YouTube channel.
|
||||
|
||||
It is used on his
|
||||
* [Novelkeys NK65](https://github.com/qmk/qmk_firmware/tree/master/keyboards/nk65)
|
||||
* [Novelkeys NK65](https://github.com/qmk/qmk_firmware/tree/master/keyboards/nk65)
|
||||
|
||||
### Build
|
||||
To build the firmware file associated with this keymap, simply run `make your_keyboard:mechmerlin`.
|
||||
@@ -22,15 +22,23 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
|
||||
KC_CTCP, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FL), KC_LEFT, KC_DOWN, KC_RGHT
|
||||
),
|
||||
|
||||
[_FL] = LAYOUT_65_ansi_blocker(
|
||||
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______,
|
||||
_______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, RGB_RMOD,RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, KC_PGUP, _______,
|
||||
_______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END
|
||||
_______, _______, _______, MO(_CL), _______, _______, KC_HOME, KC_PGDN, KC_END
|
||||
),
|
||||
|
||||
[_CL] = LAYOUT_65_ansi_blocker(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, EEP_RST, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
),
|
||||
};
|
||||
|
||||
|
||||
@@ -4,8 +4,8 @@ This is the 65% layout used by u/merlin36, host of the [MechMerlin](www.youtube.
|
||||
YouTube channel.
|
||||
|
||||
It is used on his
|
||||
[RGB Doro67](https://github.com/qmk/qmk_firmware/tree/master/keyboards/doro67/rgb)
|
||||
[KBD67 mkii](https://github.com/qmk/qmk_firmware/tree/master/keyboards/kbdfans/kbd67/mkiirgb)
|
||||
* [RGB Doro67](https://github.com/qmk/qmk_firmware/tree/master/keyboards/doro67/rgb)
|
||||
* [KBD67 mkii](https://github.com/qmk/qmk_firmware/tree/master/keyboards/kbdfans/kbd67/mkiirgb/v1)
|
||||
|
||||
### Build
|
||||
To build the firmware file associated with this keymap, simply run `make your_keyboard:mechmerlin`.
|
||||
@@ -1,8 +1,6 @@
|
||||
#include QMK_KEYBOARD_H
|
||||
#include "mechmerlin.h"
|
||||
|
||||
#define _CL 2
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[_BL] = LAYOUT_66_ansi(
|
||||
KC_GESC,KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,KC_EQL, KC_BSPC, KC_PGUP, \
|
||||
@@ -13,15 +11,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[_FL] = LAYOUT_66_ansi(
|
||||
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_VOLU, \
|
||||
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, KC_VOLD, \
|
||||
_______,_______,MO(_CL),_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \
|
||||
BL_TOGG,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, KC_VOLD, \
|
||||
RGB_TOG,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \
|
||||
_______, _______,_______,_______,_______,_______,_______,KC_MUTE,KC_VOLD,KC_VOLU,_______, _______, KC_PGUP, \
|
||||
_______,_______,_______, _______, _______,_______,_______,KC_HOME,KC_PGDN,KC_END),
|
||||
_______,_______,_______, MO(_CL), _______,_______,_______,KC_HOME,KC_PGDN,KC_END),
|
||||
|
||||
[_CL] = LAYOUT_66_ansi(
|
||||
BL_STEP,RGB_M_P,RGB_M_B,RGB_M_R,RGB_M_SW,RGB_M_SN,RGB_M_K,RGB_M_X,RGB_M_G,_______,_______,_______,_______, _______, RGB_VAI, \
|
||||
BL_TOGG,_______,_______,_______,RESET, _______,_______,_______,_______,_______,_______,_______,_______,_______, RGB_VAD, \
|
||||
RGB_TOG,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \
|
||||
_______,_______,_______,EEP_RST,RESET, _______,_______,_______,_______,_______,_______,_______,_______,_______, RGB_VAD, \
|
||||
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \
|
||||
VLK_TOG, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, RGB_SAI, \
|
||||
CK_TOGG,_______,_______, RGB_MOD, _______,_______,_______,RGB_HUD,RGB_SAD,RGB_HUI),
|
||||
CK_TOGG,_______,_______, _______, _______,_______,_______,RGB_HUD,RGB_SAD,RGB_HUI),
|
||||
};
|
||||
|
||||
13
layouts/community/66_ansi/mechmerlin/readme.md
Normal file
13
layouts/community/66_ansi/mechmerlin/readme.md
Normal file
@@ -0,0 +1,13 @@
|
||||
# MechMerlin's 66_ansi layout
|
||||
|
||||
This is the 66 key layout used by u/merlin36, host of the [MechMerlin](www.youtube.com/mechmerlin)
|
||||
YouTube channel.
|
||||
|
||||
It is used on his
|
||||
* [Clueboard 66 rev4](https://github.com/qmk/qmk_firmware/tree/master/keyboards/clueboard/66/rev4)
|
||||
* [Clueboard 66 hotswap gen1](https://github.com/qmk/qmk_firmware/tree/master/keyboards/clueboard/66_hotswap/gen1)
|
||||
* [Clueboard 66 hotswap prototype](https://github.com/qmk/qmk_firmware/tree/master/keyboards/clueboard/66_hotswap/prototype)
|
||||
* [Clueboard 66 rev1](https://github.com/qmk/qmk_firmware/tree/master/keyboards/clueboard/66/rev1)
|
||||
|
||||
### Build
|
||||
To build the firmware file associated with this keymap, simply run `make your_keyboard:mechmerlin`.
|
||||
@@ -14,5 +14,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, MO(_CL), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
|
||||
|
||||
[_CL] = LAYOUT_68_ansi(\
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, EEP_RST, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
|
||||
};
|
||||
@@ -9,7 +9,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP,
|
||||
KC_CTCP, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FL), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
|
||||
|
||||
[_FL] = LAYOUT_75_ansi(\
|
||||
RESET, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, RGB_M_K, RGB_M_X, RGB_M_G, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
@@ -17,5 +17,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
BL_TOGG, BL_INC, BL_DEC, BL_STEP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
VLK_TOG, RGB_RMOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS, KC_PGUP, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END)
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, MO(_CL), KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END),
|
||||
|
||||
[_CL] = LAYOUT_75_ansi(\
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, EEP_RST, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
|
||||
|
||||
|
||||
};
|
||||
|
||||
@@ -4,8 +4,8 @@ This is the 75% layout used by u/merlin36, host of the [MechMerlin](www.youtube.
|
||||
YouTube channel.
|
||||
|
||||
It is used on his
|
||||
[Duck Octagon V2](https://github.com/qmk/qmk_firmware/tree/master/keyboards/duck/octagon/v2)
|
||||
[XD84](https://github.com/qmk/qmk_firmware/tree/master/keyboards/xd84)
|
||||
* [Duck Octagon V2](https://github.com/qmk/qmk_firmware/tree/master/keyboards/duck/octagon/v2)
|
||||
* [XD84](https://github.com/qmk/qmk_firmware/tree/master/keyboards/xd84)
|
||||
|
||||
### Build
|
||||
To build the firmware file associated with this keymap, simply run `make your_keyboard:mechmerlin-ansi`.
|
||||
|
||||
@@ -16,7 +16,7 @@ def yesno(prompt, *args, default=None, **kwargs):
|
||||
|
||||
Arguments:
|
||||
prompt
|
||||
The prompt to present to the user. Can include ANSI and format strings like milc's `cli.print()`.
|
||||
The prompt to present to the user. Can include ANSI and format strings like milc's `cli.echo()`.
|
||||
|
||||
default
|
||||
Whether to default to a Yes or No when the user presses enter.
|
||||
@@ -43,9 +43,9 @@ def yesno(prompt, *args, default=None, **kwargs):
|
||||
prompt = prompt + ' [y/N] '
|
||||
|
||||
while True:
|
||||
print()
|
||||
cli.echo('')
|
||||
answer = input(format_ansi(prompt % args))
|
||||
print()
|
||||
cli.echo('')
|
||||
|
||||
if not answer and prompt is not None:
|
||||
return default
|
||||
@@ -57,17 +57,26 @@ def yesno(prompt, *args, default=None, **kwargs):
|
||||
return False
|
||||
|
||||
|
||||
def question(prompt, *args, default=None, confirm=False, answer_type=str, **kwargs):
|
||||
def question(prompt, *args, default=None, confirm=False, answer_type=str, validate=None, **kwargs):
|
||||
"""Prompt the user to answer a question with a free-form input.
|
||||
|
||||
Arguments:
|
||||
prompt
|
||||
The prompt to present to the user. Can include ANSI and format strings like milc's `cli.print()`.
|
||||
The prompt to present to the user. Can include ANSI and format strings like milc's `cli.echo()`.
|
||||
|
||||
default
|
||||
The value to return when the user doesn't enter any value. Use None to prompt until they enter a value.
|
||||
|
||||
confirm
|
||||
Present the user with a confirmation dialog before accepting their answer.
|
||||
|
||||
answer_type
|
||||
Specify a type function for the answer. Will re-prompt the user if the function raises any errors. Common choices here include int, float, and decimal.Decimal.
|
||||
|
||||
validate
|
||||
This is an optional function that can be used to validate the answer. It should return True or False and have the following signature:
|
||||
|
||||
def function_name(answer, *args, **kwargs):
|
||||
"""
|
||||
if not args and kwargs:
|
||||
args = kwargs
|
||||
@@ -76,17 +85,21 @@ def question(prompt, *args, default=None, confirm=False, answer_type=str, **kwar
|
||||
prompt = '%s [%s] ' % (prompt, default)
|
||||
|
||||
while True:
|
||||
print()
|
||||
cli.echo('')
|
||||
answer = input(format_ansi(prompt % args))
|
||||
print()
|
||||
cli.echo('')
|
||||
|
||||
if answer:
|
||||
if confirm:
|
||||
if validate is not None and not validate(answer, *args, **kwargs):
|
||||
continue
|
||||
|
||||
elif confirm:
|
||||
if yesno('Is the answer "%s" correct?', answer, default=True):
|
||||
try:
|
||||
return answer_type(answer)
|
||||
except Exception as e:
|
||||
cli.log.error('Could not convert answer (%s) to type %s: %s', answer, answer_type.__name__, str(e))
|
||||
|
||||
else:
|
||||
try:
|
||||
return answer_type(answer)
|
||||
@@ -95,3 +108,71 @@ def question(prompt, *args, default=None, confirm=False, answer_type=str, **kwar
|
||||
|
||||
elif default is not None:
|
||||
return default
|
||||
|
||||
|
||||
def choice(heading, options, *args, default=None, confirm=False, prompt='Please enter your choice: ', **kwargs):
|
||||
"""Present the user with a list of options and let them pick one.
|
||||
|
||||
Users can enter either the number or the text of their choice.
|
||||
|
||||
This will return the value of the item they choose, not the numerical index.
|
||||
|
||||
Arguments:
|
||||
heading
|
||||
The text to place above the list of options.
|
||||
|
||||
options
|
||||
A sequence of items to choose from.
|
||||
|
||||
default
|
||||
The index of the item to return when the user doesn't enter any value. Use None to prompt until they enter a value.
|
||||
|
||||
confirm
|
||||
Present the user with a confirmation dialog before accepting their answer.
|
||||
|
||||
prompt
|
||||
The prompt to present to the user. Can include ANSI and format strings like milc's `cli.echo()`.
|
||||
"""
|
||||
if not args and kwargs:
|
||||
args = kwargs
|
||||
|
||||
if prompt and default:
|
||||
prompt = prompt + ' [%s] ' % (default + 1,)
|
||||
|
||||
while True:
|
||||
# Prompt for an answer.
|
||||
cli.echo('')
|
||||
cli.echo(heading % args)
|
||||
cli.echo('')
|
||||
for i, option in enumerate(options, 1):
|
||||
cli.echo('\t{fg_cyan}%d.{fg_reset} %s', i, option)
|
||||
|
||||
cli.echo('')
|
||||
answer = input(format_ansi(prompt))
|
||||
cli.echo('')
|
||||
|
||||
# If the user types in one of the options exactly use that
|
||||
if answer in options:
|
||||
return answer
|
||||
|
||||
# Massage the answer into a valid integer
|
||||
if answer == '' and default:
|
||||
answer = default
|
||||
else:
|
||||
try:
|
||||
answer = int(answer) - 1
|
||||
except Exception:
|
||||
# Normally we would log the exception here, but in the interest of clean UI we do not.
|
||||
cli.log.error('Invalid choice: %s', answer + 1)
|
||||
continue
|
||||
|
||||
# Validate the answer
|
||||
if answer >= len(options) or answer < 0:
|
||||
cli.log.error('Invalid choice: %s', answer + 1)
|
||||
continue
|
||||
|
||||
if confirm and not yesno('Is the answer "%s" correct?', answer + 1, default=True):
|
||||
continue
|
||||
|
||||
# Return the answer they chose.
|
||||
return options[answer]
|
||||
|
||||
@@ -150,6 +150,11 @@ typedef union {
|
||||
#endif
|
||||
} __attribute__((packed)) report_keyboard_t;
|
||||
|
||||
typedef struct {
|
||||
uint8_t report_id;
|
||||
uint16_t usage;
|
||||
} __attribute__((packed)) report_extra_t;
|
||||
|
||||
typedef struct {
|
||||
#ifdef MOUSE_SHARED_EP
|
||||
uint8_t report_id;
|
||||
|
||||
@@ -110,40 +110,34 @@ void send_mouse(report_mouse_t *report) {
|
||||
#endif // MOUSEKEY_ENABLE
|
||||
}
|
||||
|
||||
void send_system(uint16_t data) {
|
||||
#ifdef EXTRAKEY_ENABLE
|
||||
void send_extra(uint8_t report_id, uint16_t data) {
|
||||
uint32_t irqflags;
|
||||
|
||||
irqflags = __get_PRIMASK();
|
||||
__disable_irq();
|
||||
__DMB();
|
||||
|
||||
udi_hid_exk_report.desc.report_id = REPORT_ID_SYSTEM;
|
||||
if (data != 0) data = data - SYSTEM_POWER_DOWN + 1;
|
||||
udi_hid_exk_report.desc.report_id = report_id;
|
||||
udi_hid_exk_report.desc.report_data = data;
|
||||
udi_hid_exk_b_report_valid = 1;
|
||||
udi_hid_exk_send_report();
|
||||
|
||||
__DMB();
|
||||
__set_PRIMASK(irqflags);
|
||||
}
|
||||
#endif // EXTRAKEY_ENABLE
|
||||
|
||||
void send_system(uint16_t data) {
|
||||
#ifdef EXTRAKEY_ENABLE
|
||||
if (data != 0) data = data - SYSTEM_POWER_DOWN + 1;
|
||||
send_extra(REPORT_ID_SYSTEM, data);
|
||||
#endif // EXTRAKEY_ENABLE
|
||||
}
|
||||
|
||||
void send_consumer(uint16_t data) {
|
||||
#ifdef EXTRAKEY_ENABLE
|
||||
uint32_t irqflags;
|
||||
|
||||
irqflags = __get_PRIMASK();
|
||||
__disable_irq();
|
||||
__DMB();
|
||||
|
||||
udi_hid_exk_report.desc.report_id = REPORT_ID_CONSUMER;
|
||||
udi_hid_exk_report.desc.report_data = data;
|
||||
udi_hid_exk_b_report_valid = 1;
|
||||
udi_hid_exk_send_report();
|
||||
|
||||
__DMB();
|
||||
__set_PRIMASK(irqflags);
|
||||
send_extra(REPORT_ID_CONSUMER, data);
|
||||
#endif // EXTRAKEY_ENABLE
|
||||
}
|
||||
|
||||
|
||||
@@ -81,6 +81,9 @@ void raw_hid_task(void);
|
||||
#ifdef CONSOLE_ENABLE
|
||||
void console_task(void);
|
||||
#endif
|
||||
#ifdef MIDI_ENABLE
|
||||
void midi_ep_task(void);
|
||||
#endif
|
||||
|
||||
/* TESTING
|
||||
* Amber LED blinker thread, times are in milliseconds.
|
||||
@@ -214,6 +217,9 @@ int main(void) {
|
||||
#ifdef CONSOLE_ENABLE
|
||||
console_task();
|
||||
#endif
|
||||
#ifdef MIDI_ENABLE
|
||||
midi_ep_task();
|
||||
#endif
|
||||
#ifdef VIRTSER_ENABLE
|
||||
virtser_task();
|
||||
#endif
|
||||
|
||||
@@ -833,7 +833,17 @@ bool recv_midi_packet(MIDI_EventPacket_t *const event) {
|
||||
size_t size = chnReadTimeout(&drivers.midi_driver.driver, (uint8_t *)event, sizeof(MIDI_EventPacket_t), TIME_IMMEDIATE);
|
||||
return size == sizeof(MIDI_EventPacket_t);
|
||||
}
|
||||
|
||||
void midi_ep_task(void) {
|
||||
uint8_t buffer[MIDI_STREAM_EPSIZE];
|
||||
size_t size = 0;
|
||||
do {
|
||||
size_t size = chnReadTimeout(&drivers.midi_driver.driver, buffer, sizeof(buffer), TIME_IMMEDIATE);
|
||||
if (size > 0) {
|
||||
MIDI_EventPacket_t event;
|
||||
recv_midi_packet(&event);
|
||||
}
|
||||
} while (size > 0);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef VIRTSER_ENABLE
|
||||
|
||||
@@ -72,20 +72,6 @@ void mouse_in_cb(USBDriver *usbp, usbep_t ep);
|
||||
/* shared IN request callback handler */
|
||||
void shared_in_cb(USBDriver *usbp, usbep_t ep);
|
||||
|
||||
/* ---------------
|
||||
* Extrakey header
|
||||
* ---------------
|
||||
*/
|
||||
|
||||
#ifdef EXTRAKEY_ENABLE
|
||||
|
||||
/* extra report structure */
|
||||
typedef struct {
|
||||
uint8_t report_id;
|
||||
uint16_t usage;
|
||||
} __attribute__((packed)) report_extra_t;
|
||||
#endif /* EXTRAKEY_ENABLE */
|
||||
|
||||
/* --------------
|
||||
* Console header
|
||||
* --------------
|
||||
|
||||
@@ -662,17 +662,17 @@ static void send_mouse(report_mouse_t *report) {
|
||||
#endif
|
||||
}
|
||||
|
||||
/** \brief Send System
|
||||
/** \brief Send Extra
|
||||
*
|
||||
* FIXME: Needs doc
|
||||
*/
|
||||
static void send_system(uint16_t data) {
|
||||
#ifdef EXTRAKEY_ENABLE
|
||||
static void send_extra(uint8_t report_id, uint16_t data) {
|
||||
uint8_t timeout = 255;
|
||||
|
||||
if (USB_DeviceState != DEVICE_STATE_Configured) return;
|
||||
|
||||
report_extra_t r = {.report_id = REPORT_ID_SYSTEM, .usage = data - SYSTEM_POWER_DOWN + 1};
|
||||
report_extra_t r = {.report_id = report_id, .usage = data};
|
||||
Endpoint_SelectEndpoint(SHARED_IN_EPNUM);
|
||||
|
||||
/* Check if write ready for a polling interval around 10ms */
|
||||
@@ -681,6 +681,16 @@ static void send_system(uint16_t data) {
|
||||
|
||||
Endpoint_Write_Stream_LE(&r, sizeof(report_extra_t), NULL);
|
||||
Endpoint_ClearIN();
|
||||
}
|
||||
#endif
|
||||
|
||||
/** \brief Send System
|
||||
*
|
||||
* FIXME: Needs doc
|
||||
*/
|
||||
static void send_system(uint16_t data) {
|
||||
#ifdef EXTRAKEY_ENABLE
|
||||
send_extra(REPORT_ID_SYSTEM, data - SYSTEM_POWER_DOWN + 1);
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -690,8 +700,7 @@ static void send_system(uint16_t data) {
|
||||
*/
|
||||
static void send_consumer(uint16_t data) {
|
||||
#ifdef EXTRAKEY_ENABLE
|
||||
uint8_t timeout = 255;
|
||||
uint8_t where = where_to_send();
|
||||
uint8_t where = where_to_send();
|
||||
|
||||
# ifdef BLUETOOTH_ENABLE
|
||||
if (where == OUTPUT_BLUETOOTH || where == OUTPUT_USB_AND_BT) {
|
||||
@@ -729,15 +738,7 @@ static void send_consumer(uint16_t data) {
|
||||
return;
|
||||
}
|
||||
|
||||
report_extra_t r = {.report_id = REPORT_ID_CONSUMER, .usage = data};
|
||||
Endpoint_SelectEndpoint(SHARED_IN_EPNUM);
|
||||
|
||||
/* Check if write ready for a polling interval around 10ms */
|
||||
while (timeout-- && !Endpoint_IsReadWriteAllowed()) _delay_us(40);
|
||||
if (!Endpoint_IsReadWriteAllowed()) return;
|
||||
|
||||
Endpoint_Write_Stream_LE(&r, sizeof(report_extra_t), NULL);
|
||||
Endpoint_ClearIN();
|
||||
send_extra(REPORT_ID_CONSUMER, data);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
@@ -58,12 +58,6 @@ extern host_driver_t lufa_driver;
|
||||
}
|
||||
#endif
|
||||
|
||||
/* extra report structure */
|
||||
typedef struct {
|
||||
uint8_t report_id;
|
||||
uint16_t usage;
|
||||
} __attribute__((packed)) report_extra_t;
|
||||
|
||||
#ifdef API_ENABLE
|
||||
# include "api.h"
|
||||
#endif
|
||||
|
||||
@@ -112,32 +112,22 @@ static void send_mouse(report_mouse_t *report) {
|
||||
}
|
||||
}
|
||||
|
||||
typedef struct {
|
||||
uint8_t report_id;
|
||||
uint16_t usage;
|
||||
} __attribute__((packed)) report_extra_t;
|
||||
|
||||
static void send_system(uint16_t data) {
|
||||
static void send_extra(uint8_t report_id, uint16_t data) {
|
||||
static uint8_t last_id = 0;
|
||||
static uint16_t last_data = 0;
|
||||
if (data == last_data) return;
|
||||
if ((report_id == last_id) && (data == last_data)) return;
|
||||
last_id = report_id;
|
||||
last_data = data;
|
||||
|
||||
report_extra_t report = {.report_id = REPORT_ID_SYSTEM, .usage = data};
|
||||
report_extra_t report = {.report_id = report_id, .usage = data};
|
||||
if (usbInterruptIsReady3()) {
|
||||
usbSetInterrupt3((void *)&report, sizeof(report));
|
||||
}
|
||||
}
|
||||
|
||||
static void send_consumer(uint16_t data) {
|
||||
static uint16_t last_data = 0;
|
||||
if (data == last_data) return;
|
||||
last_data = data;
|
||||
static void send_system(uint16_t data) { send_extra(REPORT_ID_SYSTEM, data); }
|
||||
|
||||
report_extra_t report = {.report_id = REPORT_ID_CONSUMER, .usage = data};
|
||||
if (usbInterruptIsReady3()) {
|
||||
usbSetInterrupt3((void *)&report, sizeof(report));
|
||||
}
|
||||
}
|
||||
static void send_consumer(uint16_t data) { send_extra(REPORT_ID_CONSUMER, data); }
|
||||
|
||||
/*------------------------------------------------------------------*
|
||||
* Request from host *
|
||||
|
||||
@@ -1,6 +1,11 @@
|
||||
# Changelog
|
||||
All notable changes to my userspace will be documented in this file.
|
||||
|
||||
## [0.3.0] - 2020-02-02
|
||||
### Changed
|
||||
- Added the `_CL` layer to all the boards for access to `EEP_RST` and `RESET` keycodes. This was done primarily to avoid triggering `RESET` accidentally.
|
||||
- Added a placeholder text macro under the custom keycode `KC_MAC`. Currently set to "meow", but will change as needed in the future.
|
||||
|
||||
## [0.2.2] - 2019-04-22
|
||||
### Fixed
|
||||
- `config.h` usage of turning on `RGBLIGHT_ENABLE` when it is not enabled on boards other than my two clueboards were causing issues with boards that didn't have RGB underglow on it.
|
||||
|
||||
@@ -10,8 +10,6 @@
|
||||
#define AUDIO_CLICKY_FREQ_DEFAULT 261.63f
|
||||
#define AUDIO_CLICKY_FREQ_MIN 65.41f
|
||||
#define AUDIO_CLICKY_FREQ_MAX 1046.5f
|
||||
//#define AUDIO_CLICKY_FREQ_FACTOR 1.18921f
|
||||
//#define AUDIO_CLICKY_FREQ_FACTOR 2.71828f // e
|
||||
#define AUDIO_CLICKY_FREQ_FACTOR 1.61803f // golden ratio
|
||||
#define AUDIO_CLICKY_FREQ_RANDOMNESS 17.0f
|
||||
#endif
|
||||
@@ -24,7 +22,7 @@
|
||||
#ifndef AUDIO_CLICKY
|
||||
#define AUDIO_CLICKY
|
||||
#endif
|
||||
#elif defined(KEYBOARD_clueboard_66_hotswap_gen1)
|
||||
#elif defined(KEYBOARD_clueboard_66_hotswap_gen1) || defined(KEYBOARD_clueboard_66_rev4)
|
||||
#ifndef AUDIO_CLICKY
|
||||
#define AUDIO_CLICKY
|
||||
#endif
|
||||
|
||||
@@ -14,7 +14,13 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
layer_invert(_AL);
|
||||
}
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case KC_MAC:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING("meow");
|
||||
} else {
|
||||
}
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@@ -5,12 +5,14 @@
|
||||
enum userspace_layers {
|
||||
_BL = 0, // Base Layer
|
||||
_FL, // Function Layer
|
||||
_AL // Arrow Layer
|
||||
_AL, // Arrow Layer
|
||||
_CL // Control Layer
|
||||
};
|
||||
|
||||
// Enum of custom keycodes defined in process_record_user
|
||||
enum keycodes {
|
||||
KC_FNX, // Hold for FN layer, tap to toggle ARROWS layer.
|
||||
KC_MAC, // Text macro.
|
||||
};
|
||||
|
||||
// Custom #defined keycodes
|
||||
|
||||
@@ -17,7 +17,7 @@ This layer is commonly accessed via `MO(_FL)` on the base layer. It consists of
|
||||
This layer is only present on my 60% boards. I habitually use the bottom right modifiers as arrows.
|
||||
|
||||
### _CL (Control Layer)
|
||||
This is not defined in here as it's present only on `LAYOUT_66` boards, or to be specific, my clueboard. It currently uses the default clueboard controls.
|
||||
This layer is used for the `RESET` and `EEP_RST` keycodes.
|
||||
|
||||
## Custom Keycodes
|
||||
----
|
||||
@@ -46,3 +46,8 @@ If a board has a speaker, enable beeps and boops per switch actuation. This is c
|
||||
### Velocikey
|
||||
|
||||
[Velocikey](https://github.com/qmk/qmk_firmware/blob/master/docs/feature_velocikey.md) is an RGBLIGHT feature in which the faster you type, the faster the ARE GEE BEES.
|
||||
|
||||
### Macros
|
||||
|
||||
Basic text macro implemented for future use
|
||||
|
||||
|
||||
@@ -1 +1,2 @@
|
||||
SRC += mechmerlin.c
|
||||
LTO_ENABLE = yes
|
||||
|
||||
@@ -25,6 +25,7 @@ See: https://docs.qmk.fm/#/feature_userspace
|
||||
|K_MDSH | MacOS shortcut to get em-dash `–` |
|
||||
|K_RAPP | MacOS shortcut to switch apps to the right |
|
||||
|K_LAPP | MacOS shortcut to switch apps to the left |
|
||||
|K_CPRF | + Shift + M. Used for switching Google Chrome profiles |
|
||||
|
||||
### [Layers](ninjonas.h#L44)
|
||||
|Code | Description |
|
||||
|
||||
@@ -17,4 +17,23 @@
|
||||
|
||||
layer_state_t layer_state_set_user (layer_state_t state) {
|
||||
return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
|
||||
}
|
||||
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
extern rgblight_config_t rgblight_config;
|
||||
#endif
|
||||
void keyboard_post_init_user() {
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
// Cycles through the entire hue wheel and resetting to default color
|
||||
uint16_t default_hue = rgblight_config.hue;
|
||||
rgblight_enable_noeeprom();
|
||||
layer_state_set_user(layer_state);
|
||||
rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
|
||||
for (uint16_t i = 255; i > 0; i--) {
|
||||
rgblight_sethsv_noeeprom((i + default_hue) % 255, rgblight_config.sat, rgblight_config.val);
|
||||
matrix_scan();
|
||||
wait_ms(10);
|
||||
}
|
||||
#endif
|
||||
layer_state_set_user(layer_state);
|
||||
}
|
||||
@@ -37,6 +37,7 @@
|
||||
// Shortcut Keys
|
||||
#define K_LOCK LGUI(LCTL(KC_Q)) // Locks screen on MacOS
|
||||
#define K_CSCN LGUI(LCTL(LSFT(KC_4))) // Copy a portion of the screen to the clipboard
|
||||
#define K_CPRF LGUI(LSFT(KC_M)) // + Shift + M. Used for switching Google Chrome profiles
|
||||
#define K_MDSH LSFT(LALT(KC_MINS))
|
||||
#define K_LAPP SGUI(KC_TAB) // + Shift + Tab
|
||||
#define K_RAPP LGUI(KC_TAB) // + Tab
|
||||
|
||||
@@ -21,7 +21,7 @@ bool process_record_oled(uint16_t keycode, keyrecord_t *record) {
|
||||
return true;
|
||||
}
|
||||
|
||||
void render_default_layer_state(void) {
|
||||
void render_layout_state(void) {
|
||||
oled_write_P(PSTR("Layout: "), false);
|
||||
switch (biton32(default_layer_state)) {
|
||||
case _COLEMAK:
|
||||
@@ -43,15 +43,23 @@ void oled_white_space(void){
|
||||
}
|
||||
|
||||
void render_layer_state(void) {
|
||||
oled_write_P(PSTR("\nLayer: "), false);
|
||||
oled_write_P(PSTR("LOW"), (layer_state_is(_LOWER) & !layer_state_is(_ADJUST)));
|
||||
oled_white_space();
|
||||
oled_write_P(PSTR("RAI"), (layer_state_is(_RAISE) & !layer_state_is(_ADJUST)));
|
||||
oled_white_space();
|
||||
oled_write_P(PSTR("ADJ"), layer_state_is(_ADJUST));
|
||||
oled_write_P(PSTR("\nLayer:"), false);
|
||||
bool lower = layer_state_is(_LOWER) & !layer_state_is(_ADJUST);
|
||||
bool raise = layer_state_is(_RAISE) & !layer_state_is(_ADJUST);
|
||||
bool adjust = layer_state_is(_ADJUST);
|
||||
|
||||
if(lower){
|
||||
oled_write_P(PSTR(" Lower "), true);
|
||||
} else if(raise){
|
||||
oled_write_P(PSTR(" Raise "), true);
|
||||
} else if(adjust){
|
||||
oled_write_P(PSTR(" Adjust "), true);
|
||||
} else {
|
||||
oled_write_P(PSTR(" Default"), false);
|
||||
}
|
||||
}
|
||||
|
||||
void render_mod_status(uint8_t modifiers) {
|
||||
void render_mod_state(uint8_t modifiers) {
|
||||
oled_write_P(PSTR("\nMods: "), false);
|
||||
oled_write_P(PSTR("SHF"), (modifiers & MOD_MASK_SHIFT));
|
||||
oled_white_space();
|
||||
@@ -63,10 +71,10 @@ void render_mod_status(uint8_t modifiers) {
|
||||
}
|
||||
|
||||
void render_status(void){
|
||||
render_default_layer_state();
|
||||
render_layout_state();
|
||||
oled_write_P(PSTR("\n"), false);
|
||||
render_layer_state();
|
||||
render_mod_status(get_mods()|get_oneshot_mods());
|
||||
render_mod_state(get_mods()|get_oneshot_mods());
|
||||
}
|
||||
|
||||
static void render_logo(void) {
|
||||
@@ -80,7 +88,7 @@ static void render_logo(void) {
|
||||
}
|
||||
|
||||
void oled_task_user(void) {
|
||||
if (timer_elapsed32(oled_timer) > 30000) {
|
||||
if (timer_elapsed32(oled_timer) > 15000) {
|
||||
oled_off();
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1,3 +1,11 @@
|
||||
#pragma once
|
||||
|
||||
#define BOOTMAGIC_LITE_ROW 0
|
||||
#define BOOTMAGIC_LITE_COL 0
|
||||
|
||||
#define TAPPING_TERM 175
|
||||
#define MACRO_TIMER 5
|
||||
#define TAPPING_FORCE_HOLD_PER_KEY
|
||||
// testing
|
||||
#define TAPPING_TERM_PER_KEY
|
||||
//#define IGNORE_MOD_TAP_INTERRUPT // rolling R3 "zxcv", etc...
|
||||
|
||||
1012
users/ridingqwerty/dict.h
Normal file
1012
users/ridingqwerty/dict.h
Normal file
File diff suppressed because it is too large
Load Diff
@@ -1,4 +1,7 @@
|
||||
#include <stdio.h>
|
||||
#include <time.h>
|
||||
#include "ridingqwerty.h"
|
||||
#include "dict.h"
|
||||
|
||||
__attribute__ ((weak))
|
||||
bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
|
||||
@@ -10,23 +13,475 @@ bool process_record_secrets(uint16_t keycode, keyrecord_t *record) {
|
||||
return true;
|
||||
}
|
||||
|
||||
uint16_t user_key_timer;
|
||||
/*
|
||||
typedef union {
|
||||
struct {
|
||||
uint8_t aesthetic : 1,
|
||||
spongebob : 1,
|
||||
uppercase : 1,
|
||||
australia : 1,
|
||||
unusued : 4;
|
||||
};
|
||||
uint8_t all;
|
||||
} mode_config_t;
|
||||
*/
|
||||
mode_config_t mode = {.all = 0U};
|
||||
|
||||
bool randword_seed = false;
|
||||
uint8_t user_mod_state;
|
||||
uint16_t rand_key;
|
||||
uint16_t temp_keycode;
|
||||
uint32_t user_key_timer;
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
#ifdef CONSOLE_ENABLE
|
||||
uprintf("KL: kc: %u, col: %u, row: %u, pressed: %u\n", keycode, record->event.key.col, record->event.key.row, record->event.pressed);
|
||||
#endif
|
||||
|
||||
temp_keycode = keycode;
|
||||
if ((mode.all != 0U) && ((keycode != DB(TAB) || keycode != ED(ESC)) && ((keycode >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX) || (keycode >= QK_LAYER_TAP && keycode <= QK_LAYER_TAP_MAX)))) {
|
||||
temp_keycode &= 0xFF;
|
||||
}
|
||||
|
||||
if (mode.spongebob) {
|
||||
switch(temp_keycode) {
|
||||
case KC_A ... KC_Z:
|
||||
if (record->event.pressed) {
|
||||
(mode.uppercase ^= 1) == 0 ? tap_code16(S(temp_keycode)) : tap_code(temp_keycode);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if (mode.aesthetic) {
|
||||
switch(temp_keycode) {
|
||||
#if defined(UNICODE_ENABLE) || defined(UNICODEMAP_ENABLE)
|
||||
case KC_A:
|
||||
if (record->event.pressed) {
|
||||
send_unicode_hex_string("039B");
|
||||
tap_code(KC_SPC);
|
||||
}
|
||||
return false;
|
||||
case KC_E:
|
||||
if (record->event.pressed) {
|
||||
send_unicode_hex_string("039E");
|
||||
tap_code(KC_SPC);
|
||||
}
|
||||
return false;
|
||||
#else
|
||||
case A:
|
||||
case E:
|
||||
if (record->event.pressed) {
|
||||
tap_code16(S(temp_keycode));
|
||||
tap_code(KC_SPC);
|
||||
}
|
||||
return false;
|
||||
#endif
|
||||
case KC_B ... KC_D:
|
||||
case KC_F ... KC_Z:
|
||||
if (record->event.pressed) {
|
||||
tap_code16(S(temp_keycode));
|
||||
tap_code(KC_SPC);
|
||||
}
|
||||
return false;
|
||||
case KC_1 ... KC_0:
|
||||
if (record->event.pressed) {
|
||||
tap_code(temp_keycode);
|
||||
tap_code(KC_SPC);
|
||||
}
|
||||
return false;
|
||||
|
||||
case KC_BSPC:
|
||||
if (record->event.pressed) {
|
||||
tap_code(KC_BSPC);
|
||||
tap_code(KC_BSPC);
|
||||
}
|
||||
return false;
|
||||
case KC_SPC:
|
||||
if (record->event.pressed) {
|
||||
tap_code(KC_SPC);
|
||||
tap_code(KC_SPC);
|
||||
tap_code(KC_SPC);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if (mode.australia) {
|
||||
switch(temp_keycode) {
|
||||
// IDEMPOTENT
|
||||
case KC_L:
|
||||
case KC_O:
|
||||
case KC_S:
|
||||
case KC_Z:
|
||||
case KC_8:
|
||||
case KC_0:
|
||||
if (record->event.pressed) {
|
||||
tap_code(temp_keycode);
|
||||
tap_code(KC_LEFT);
|
||||
}
|
||||
return false;
|
||||
|
||||
// INVERSE
|
||||
case KC_B:
|
||||
if (record->event.pressed) {
|
||||
tap_code(KC_Q);
|
||||
tap_code(KC_LEFT);
|
||||
}
|
||||
return false;
|
||||
case KC_Q:
|
||||
if (record->event.pressed) {
|
||||
tap_code(KC_B);
|
||||
tap_code(KC_LEFT);
|
||||
}
|
||||
return false;
|
||||
case KC_D:
|
||||
if (record->event.pressed) {
|
||||
tap_code(KC_P);
|
||||
tap_code(KC_LEFT);
|
||||
}
|
||||
return false;
|
||||
case KC_P:
|
||||
if (record->event.pressed) {
|
||||
tap_code(KC_D);
|
||||
tap_code(KC_LEFT);
|
||||
}
|
||||
return false;
|
||||
case KC_N:
|
||||
if (record->event.pressed) {
|
||||
tap_code(KC_U);
|
||||
tap_code(KC_LEFT);
|
||||
}
|
||||
return false;
|
||||
case KC_U:
|
||||
if (record->event.pressed) {
|
||||
tap_code(KC_N);
|
||||
tap_code(KC_LEFT);
|
||||
}
|
||||
return false;
|
||||
case KC_6:
|
||||
if (record->event.pressed) {
|
||||
tap_code(KC_9);
|
||||
tap_code(KC_LEFT);
|
||||
}
|
||||
return false;
|
||||
case KC_9:
|
||||
if (record->event.pressed) {
|
||||
tap_code(KC_6);
|
||||
tap_code(KC_LEFT);
|
||||
}
|
||||
return false;
|
||||
|
||||
// TRANSLATE
|
||||
case KC_A:
|
||||
if (record->event.pressed) {
|
||||
send_unicode_hex_string("0250");
|
||||
tap_code(KC_LEFT);
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
case KC_C:
|
||||
if (record->event.pressed) {
|
||||
send_unicode_hex_string("0254");
|
||||
tap_code(KC_LEFT);
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
case KC_E:
|
||||
if (record->event.pressed) {
|
||||
send_unicode_hex_string("01DD");
|
||||
tap_code(KC_LEFT);
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
case KC_F:
|
||||
if (record->event.pressed) {
|
||||
send_unicode_hex_string("025F");
|
||||
tap_code(KC_LEFT);
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
case KC_G:
|
||||
if (record->event.pressed) {
|
||||
send_unicode_hex_string("0183");
|
||||
tap_code(KC_LEFT);
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
case KC_H:
|
||||
if (record->event.pressed) {
|
||||
send_unicode_hex_string("0265");
|
||||
tap_code(KC_LEFT);
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
case KC_I:
|
||||
if (record->event.pressed) {
|
||||
send_unicode_hex_string("1D09");
|
||||
tap_code(KC_LEFT);
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
case KC_J:
|
||||
if (record->event.pressed) {
|
||||
send_unicode_hex_string("027E");
|
||||
tap_code(KC_LEFT);
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
case KC_K:
|
||||
if (record->event.pressed) {
|
||||
send_unicode_hex_string("029E");
|
||||
tap_code(KC_LEFT);
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
case KC_M:
|
||||
if (record->event.pressed) {
|
||||
send_unicode_hex_string("026F");
|
||||
tap_code(KC_LEFT);
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
case KC_R:
|
||||
if (record->event.pressed) {
|
||||
send_unicode_hex_string("0279");
|
||||
tap_code(KC_LEFT);
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
case KC_T:
|
||||
if (record->event.pressed) {
|
||||
send_unicode_hex_string("0287");
|
||||
tap_code(KC_LEFT);
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
case KC_V:
|
||||
if (record->event.pressed) {
|
||||
send_unicode_hex_string("028C");
|
||||
tap_code(KC_LEFT);
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
case KC_W:
|
||||
if (record->event.pressed) {
|
||||
send_unicode_hex_string("028D");
|
||||
tap_code(KC_LEFT);
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
case KC_X:
|
||||
if (record->event.pressed) {
|
||||
send_unicode_hex_string("2717");
|
||||
tap_code(KC_LEFT);
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
case KC_Y:
|
||||
if (record->event.pressed) {
|
||||
send_unicode_hex_string("028E");
|
||||
tap_code(KC_LEFT);
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
case KC_1:
|
||||
if (record->event.pressed) {
|
||||
send_unicode_hex_string("0269");
|
||||
tap_code(KC_LEFT);
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
case KC_2:
|
||||
if (record->event.pressed) {
|
||||
send_unicode_hex_string("3139");
|
||||
tap_code(KC_LEFT);
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
case KC_3:
|
||||
if (record->event.pressed) {
|
||||
send_unicode_hex_string("0190");
|
||||
tap_code(KC_LEFT);
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
case KC_4:
|
||||
if (record->event.pressed) {
|
||||
send_unicode_hex_string("3123");
|
||||
tap_code(KC_LEFT);
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
case KC_5:
|
||||
if (record->event.pressed) {
|
||||
send_unicode_hex_string("03DB");
|
||||
tap_code(KC_LEFT);
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
case KC_7:
|
||||
if (record->event.pressed) {
|
||||
send_unicode_hex_string("3125");
|
||||
tap_code(KC_LEFT);
|
||||
}
|
||||
return false;
|
||||
|
||||
// CONTROLS
|
||||
case KC_ENT:
|
||||
if (record->event.pressed) {
|
||||
tap_code(KC_END);
|
||||
tap_code(KC_ENTER);
|
||||
}
|
||||
return false;
|
||||
case KC_BSPC:
|
||||
if (record->event.pressed) {
|
||||
tap_code(KC_DELT);
|
||||
}
|
||||
return false;
|
||||
case KC_SPC:
|
||||
if (record->event.pressed) {
|
||||
tap_code(KC_SPC);
|
||||
tap_code(KC_LEFT);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
switch(keycode) {
|
||||
|
||||
case VERSION:
|
||||
if (!record->event.pressed) {
|
||||
send_string_with_delay_P(PSTR(QMK_KEYBOARD ":" QMK_KEYMAP "\nVersion:" QMK_VERSION ", built: " QMK_BUILDDATE "\n"), MACRO_TIMER);
|
||||
}
|
||||
break;
|
||||
|
||||
case QWERTY ... COLEMAK:
|
||||
#if defined(UNICODE_ENABLE) || defined(UNICODEMAP_ENABLE)
|
||||
case GREEK ... HIRAGAN:
|
||||
#endif
|
||||
if (record->event.pressed) {
|
||||
//set_single_persistent_default_layer(keycode - QWERTY);
|
||||
default_layer_set(1U << (keycode - QWERTY));
|
||||
}
|
||||
break;
|
||||
|
||||
case MAKE:
|
||||
if (record->event.pressed) {
|
||||
user_mod_state = get_mods() & MOD_MASK_CTRL;
|
||||
if (user_mod_state) {
|
||||
clear_mods();
|
||||
send_string_with_delay_P(PSTR("sleep 1 && "), MACRO_TIMER);
|
||||
}
|
||||
send_string_with_delay_P(PSTR("make " QMK_KEYBOARD ":" QMK_KEYMAP), MACRO_TIMER);
|
||||
if (user_mod_state) {
|
||||
send_string_with_delay_P(PSTR(":flash\n"), MACRO_TIMER);
|
||||
reset_keyboard();
|
||||
} else {
|
||||
send_string_with_delay_P(PSTR("\n"), MACRO_TIMER);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case RNGWORD:
|
||||
if (randword_seed == false) {
|
||||
randword_seed = true;
|
||||
srand(timer_read32());
|
||||
}
|
||||
rand_key = rand() % NUMBER_OF_WORDS;
|
||||
if (record->event.pressed) {
|
||||
send_string(dict[rand_key]);
|
||||
tap_code(KC_SPC);
|
||||
}
|
||||
break;
|
||||
|
||||
case RG_QUOT:
|
||||
if (record->event.pressed) {
|
||||
user_key_timer = timer_read();
|
||||
#if defined(UNICODE_ENABLE) || defined(UNICODEMAP_ENABLE)
|
||||
user_mod_state = get_mods() & MOD_MASK_ALT;
|
||||
if (user_mod_state) {
|
||||
unregister_mods(MOD_BIT(KC_RALT));
|
||||
send_unicode_hex_string("00B0");
|
||||
set_mods(user_mod_state);
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
user_key_timer = timer_read32();
|
||||
layer_on(_NUMBER);
|
||||
register_mods(MOD_BIT(KC_RGUI));
|
||||
} else {
|
||||
unregister_mods(MOD_BIT(KC_RGUI));
|
||||
layer_off(_NUMBER);
|
||||
if (timer_elapsed(user_key_timer) < TAPPING_TERM) {
|
||||
register_code(KC_QUOT);
|
||||
unregister_code(KC_QUOT);
|
||||
}
|
||||
if (timer_elapsed32(user_key_timer) < TAPPING_TERM) {
|
||||
tap_code(KC_QUOT);
|
||||
}
|
||||
}
|
||||
return false; break;
|
||||
|
||||
case TESTING:
|
||||
/*
|
||||
if (record->event.pressed) {
|
||||
int length = snprintf( NULL, 0, "%lu", test_number );
|
||||
char* str = malloc( length + 1 );
|
||||
snprintf( str, length + 1, "%lu", test_number );
|
||||
send_string(str);
|
||||
free(str);
|
||||
// make CFLAGS+="-lc -specs=nosys.specs" board:keymap
|
||||
}
|
||||
*/
|
||||
break;
|
||||
|
||||
case CCCV: // One key copy/paste
|
||||
if (record->event.pressed) {
|
||||
user_key_timer = timer_read32();
|
||||
} else {
|
||||
if (timer_elapsed32(user_key_timer) > TAPPING_TERM) { // Hold, copy
|
||||
register_code(KC_LCTL);
|
||||
tap_code(KC_C);
|
||||
unregister_code(KC_LCTL);
|
||||
} else { // Tap, paste
|
||||
register_code(KC_LCTL);
|
||||
tap_code(KC_V);
|
||||
unregister_code(KC_LCTL);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case SEED:
|
||||
if (record->event.pressed) {
|
||||
srand(timer_read32());
|
||||
}
|
||||
break;
|
||||
|
||||
case SARCASM:
|
||||
if (record->event.pressed) {
|
||||
if (!(mode.spongebob ^= 1)) { mode.all = 0U; };
|
||||
}
|
||||
break;
|
||||
|
||||
case VPRWAVE:
|
||||
if (record->event.pressed) {
|
||||
if (!(mode.aesthetic ^= 1)) { mode.all = 0U; };
|
||||
}
|
||||
break;
|
||||
|
||||
case STRAYA:
|
||||
if (record->event.pressed) {
|
||||
if (!(mode.australia ^= 1)) { mode.all = 0U; };
|
||||
}
|
||||
break;
|
||||
default:
|
||||
if (record->event.pressed && record->event.key.col == 4 && record->event.key.row == 1) {
|
||||
if (get_mods() & MOD_BIT(KC_RALT)) {
|
||||
unregister_mods(MOD_BIT(KC_RALT));
|
||||
//send_unicode_hex_string("262D");
|
||||
tap_code(KC_BSPC);
|
||||
set_mods(MOD_BIT(KC_RALT));
|
||||
return false;
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
}
|
||||
return process_record_keymap(keycode, record) &&
|
||||
process_record_secrets(keycode, record);
|
||||
|
||||
@@ -11,19 +11,48 @@ bool process_record_secrets(uint16_t keycode, keyrecord_t *record);
|
||||
bool process_record_keymap(uint16_t keycode, keyrecord_t *record);
|
||||
|
||||
enum userspace_custom_keycodes {
|
||||
FIRST = PLACEHOLDER_SAFE_RANGE,
|
||||
RUSTY,
|
||||
FUEL,
|
||||
C0RE,
|
||||
MUNKY,
|
||||
AR1ST,
|
||||
VAXIS,
|
||||
OS_LAB,
|
||||
CDLOCAL,
|
||||
SYSNOC,
|
||||
VERSION = PLACEHOLDER_SAFE_RANGE,
|
||||
QWERTY,
|
||||
DVORAK,
|
||||
COLEMAK,
|
||||
#if defined(UNICODE_ENABLE) || defined(UNICODEMAP_ENABLE)
|
||||
GREEK,
|
||||
RUSSIAN,
|
||||
RUNES,
|
||||
HIRAGAN,
|
||||
#endif
|
||||
MAKE,
|
||||
RG_QUOT,
|
||||
LAST
|
||||
TESTING,
|
||||
RNGWORD,
|
||||
CCCV,
|
||||
SEED,
|
||||
SARCASM,
|
||||
VPRWAVE,
|
||||
STRAYA,
|
||||
SECRET0,
|
||||
SECRET1,
|
||||
SECRET2,
|
||||
SECRET3,
|
||||
SECRET4,
|
||||
SECRET5,
|
||||
SECRET6,
|
||||
SECRET7,
|
||||
SECRET8,
|
||||
NEW_SAFE_RANGE // start new keyboard-level declarations with NEW_SAFE_RANGE
|
||||
};
|
||||
|
||||
bool process_record_secrets(uint16_t keycode, keyrecord_t *record);
|
||||
bool process_record_keymap(uint16_t keycode, keyrecord_t *record);
|
||||
// clang-format off
|
||||
typedef union {
|
||||
struct {
|
||||
uint8_t aesthetic : 1,
|
||||
spongebob : 1,
|
||||
uppercase : 1,
|
||||
australia : 1,
|
||||
unusued : 4;
|
||||
};
|
||||
uint8_t all;
|
||||
} mode_config_t;
|
||||
// clang-format on
|
||||
|
||||
extern mode_config_t mode;
|
||||
|
||||
@@ -1 +1,65 @@
|
||||
#include "ridingqwerty.h"
|
||||
|
||||
__attribute__((weak))
|
||||
void matrix_init_keymap(void) {}
|
||||
|
||||
void matrix_init_user(void) {
|
||||
matrix_init_keymap();
|
||||
|
||||
#if defined(UNICODE_ENABLE) || defined(UNICODEMAP_ENABLE)
|
||||
set_unicode_input_mode(UC_LNX);
|
||||
#endif
|
||||
|
||||
//set_single_persistent_default_layer(_QWERTY);
|
||||
default_layer_set(1U << _QWERTY);
|
||||
}
|
||||
|
||||
__attribute__((weak))
|
||||
void matrix_scan_keymap(void) {
|
||||
}
|
||||
|
||||
void matrix_scan_user(void) {
|
||||
// use for global event timers
|
||||
}
|
||||
|
||||
__attribute__((weak))
|
||||
void keyboard_post_init_keymap(void) {}
|
||||
|
||||
void keyboard_post_init_user(void) {
|
||||
#if defined(CONSOLE_ENABLE)
|
||||
debug_enable = true;
|
||||
debug_matrix = true;
|
||||
//debug_keyboard=true;
|
||||
//debug_mouse=true;
|
||||
#endif
|
||||
}
|
||||
|
||||
__attribute__((weak))
|
||||
layer_state_t layer_state_set_keymap(layer_state_t state) { return state; }
|
||||
|
||||
layer_state_t layer_state_set_user(layer_state_t state) {
|
||||
state = update_tri_layer_state(state, _EDITOR, _DEBUG, _SECRET);
|
||||
#ifdef CONSOLE_ENABLE
|
||||
uprintf("LAYER: %u\n", state);
|
||||
#endif
|
||||
return state;
|
||||
}
|
||||
|
||||
uint16_t get_tapping_term(uint16_t keycode) {
|
||||
switch (keycode) {
|
||||
case RC(ENT):
|
||||
case ED(ESC):
|
||||
return 225;
|
||||
default:
|
||||
return TAPPING_TERM;
|
||||
}
|
||||
};
|
||||
|
||||
bool get_tapping_force_hold(uint16_t keycode, keyrecord_t *record) {
|
||||
switch (keycode) {
|
||||
case NM(SCLN):
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,37 +1,61 @@
|
||||
#pragma once
|
||||
|
||||
#include "quantum.h"
|
||||
#include "version.h"
|
||||
#include "process_records.h"
|
||||
#include "wrappers.h"
|
||||
#ifdef TAP_DANCE_ENABLE
|
||||
# include "tapdances.h"
|
||||
#endif
|
||||
#if defined(UNICODEMAP_ENABLE) || defined(UNICODE_ENABLE)
|
||||
# include "unicode.h"
|
||||
#endif
|
||||
|
||||
enum userspace_layers
|
||||
{
|
||||
_QWERTY = 0,
|
||||
_QWERTY,
|
||||
_DVORAK,
|
||||
_COLEMAK,
|
||||
/*
|
||||
_WORKMAN et al. go here
|
||||
*/
|
||||
#if defined(UNICODE_ENABLE) || defined(UNICODEMAP_ENABLE)
|
||||
_GREEK,
|
||||
_RUSSIAN,
|
||||
_RUNES,
|
||||
_HIRA1,
|
||||
_HIRA2,
|
||||
#endif
|
||||
_EDITOR,
|
||||
_NUMBER,
|
||||
_SYMBOL,
|
||||
_F_KEYS,
|
||||
_DEBUG,
|
||||
_SECRET,
|
||||
#if defined(MOUSEKEY_ENABLED)
|
||||
_MOUSE,
|
||||
#endif
|
||||
_MEDIA,
|
||||
_FINAL
|
||||
};
|
||||
|
||||
// modtaps
|
||||
#define LS_Z MT(MOD_LSFT, KC_Z)
|
||||
#define LC_ESC MT(MOD_LCTL, KC_ESC)
|
||||
#define LG_TAB MT(MOD_LGUI, KC_TAB)
|
||||
#define LA_LBRC MT(MOD_LALT, KC_LBRC)
|
||||
#define LS_RBRC MT(MOD_LSFT, KC_RBRC)
|
||||
#define RS_MINS MT(MOD_RSFT, KC_MINS)
|
||||
#define RA_EQL MT(MOD_RALT, KC_EQL)
|
||||
//RG_LMOT defined in process_records.h
|
||||
#define RC_ENT MT(MOD_RCTL, KC_ENT)
|
||||
#define RS_SLSH MT(MOD_RSFT, KC_SLSH)
|
||||
// layertaps
|
||||
#define ED_A LT(_EDITOR, KC_A)
|
||||
#define ED_ESC LT(_EDITOR, KC_ESC)
|
||||
#define NM_SCLN LT(_NUMBER, KC_SCLN)
|
||||
#define NM_BSPC LT(_NUMBER, KC_BSPC)
|
||||
#define SM_SPC LT(_SYMBOL, KC_SPC)
|
||||
#define SC_TAB LT(_SECRET, KC_TAB)
|
||||
#define FK_DOT LT(_F_KEYS, KC_DOT)
|
||||
#define LS(kc) MT(MOD_LSFT, KC_##kc)
|
||||
#define LC(kc) MT(MOD_LCTL, KC_##kc)
|
||||
#define LG(kc) MT(MOD_LGUI, KC_##kc)
|
||||
#define LA(kc) MT(MOD_LALT, KC_##kc)
|
||||
#define RS(kc) MT(MOD_RSFT, KC_##kc)
|
||||
#define RC(kc) MT(MOD_RCTL, KC_##kc)
|
||||
#define RG(kc) MT(MOD_RGUI, KC_##kc)
|
||||
#define RA(kc) MT(MOD_RALT, KC_##kc)
|
||||
|
||||
#define ED(kc) LT(_EDITOR, KC_##kc)
|
||||
#define NM(kc) LT(_NUMBER, KC_##kc)
|
||||
#define SM(kc) LT(_SYMBOL, KC_##kc)
|
||||
#define SC(kc) LT(_SECRET, KC_##kc)
|
||||
#define FK(kc) LT(_F_KEYS, KC_##kc)
|
||||
#define DB(kc) LT(_DEBUG, KC_##kc)
|
||||
|
||||
void matrix_init_keymap(void);
|
||||
void matrix_scan_keymap(void);
|
||||
void keyboard_post_init_keymap(void);
|
||||
layer_state_t layer_state_set_keymap(layer_state_t state);
|
||||
|
||||
@@ -1,8 +1,24 @@
|
||||
#LEADER_ENABLE = yes
|
||||
|
||||
SRC += ridingqwerty.c \
|
||||
process_records.c
|
||||
|
||||
BOOTMAGIC_ENABLE = lite
|
||||
CONSOLE_ENABLE = no
|
||||
COMMAND_ENABLE = no
|
||||
UNICODE_ENABLE = no # "yes" in Atreus default keymap, blocking UNICODEMAP_ENABLE
|
||||
UNICODEMAP_ENABLE = yes
|
||||
MOUSEKEY_ENABLE = no
|
||||
TAP_DANCE_ENABLE = yes
|
||||
AUTO_SHIFT_ENABLE = no
|
||||
|
||||
ifneq ("$(wildcard $(USER_PATH)/secrets.c)","")
|
||||
SRC += secrets.c
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(TAP_DANCE_ENABLE)), yes)
|
||||
SRC += tapdances.c
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(UNICODEMAP_ENABLE)), yes)
|
||||
SRC += unicode.c
|
||||
endif
|
||||
|
||||
|
||||
33
users/ridingqwerty/tapdances.c
Normal file
33
users/ridingqwerty/tapdances.c
Normal file
@@ -0,0 +1,33 @@
|
||||
#include "ridingqwerty.h"
|
||||
#include "tapdances.h"
|
||||
|
||||
void braces_finished (qk_tap_dance_state_t *state, void *user_data) {
|
||||
if ((state->count == 1) || (state->count == 3)) {
|
||||
register_code(KC_LSFT);
|
||||
}
|
||||
}
|
||||
|
||||
void braces_reset (qk_tap_dance_state_t *state, void *user_data) {
|
||||
// two or three taps for "[]"/"{}"
|
||||
if ((state->count == 2) || (state->count == 3)) {
|
||||
tap_code(KC_LBRC);
|
||||
tap_code(KC_RBRC);
|
||||
}
|
||||
// one tap for "()"
|
||||
else if (state->count == 1) {
|
||||
tap_code(KC_9);
|
||||
tap_code(KC_0);
|
||||
}
|
||||
|
||||
// unregister the shift unconditionally
|
||||
unregister_code(KC_LSFT);
|
||||
|
||||
// move back one space, inside the braces
|
||||
if (state->count <= 3) {
|
||||
tap_code(KC_LEFT);
|
||||
}
|
||||
}
|
||||
|
||||
qk_tap_dance_action_t tap_dance_actions[] = {
|
||||
[TD_BRACES] = ACTION_TAP_DANCE_FN_ADVANCED (NULL, braces_finished, braces_reset)
|
||||
};
|
||||
9
users/ridingqwerty/tapdances.h
Normal file
9
users/ridingqwerty/tapdances.h
Normal file
@@ -0,0 +1,9 @@
|
||||
#pragma once
|
||||
|
||||
#include "quantum.h"
|
||||
|
||||
#define TD_BRC TD(TD_BRACES)
|
||||
|
||||
enum tapdance_id {
|
||||
TD_BRACES = 0
|
||||
};
|
||||
7
users/ridingqwerty/unicode.c
Normal file
7
users/ridingqwerty/unicode.c
Normal file
@@ -0,0 +1,7 @@
|
||||
#include "unicode.h"
|
||||
|
||||
#ifdef UNICODEMAP_ENABLE
|
||||
const uint32_t PROGMEM unicode_map[] = {
|
||||
FOREACH_UNICODE(UCM_ENTRY)
|
||||
};
|
||||
#endif
|
||||
295
users/ridingqwerty/unicode.h
Normal file
295
users/ridingqwerty/unicode.h
Normal file
@@ -0,0 +1,295 @@
|
||||
#pragma once
|
||||
#include "quantum.h"
|
||||
|
||||
// clang-format off
|
||||
#define FOREACH_UNICODE(M) \
|
||||
M(UALP, 0x0391) /* Α */ \
|
||||
M(UBET, 0x0392) /* Β */ \
|
||||
M(UGAM, 0x0393) /* Γ */ \
|
||||
M(UDEL, 0x0394) /* Δ */ \
|
||||
M(UEPS, 0x0395) /* Ε */ \
|
||||
M(UZET, 0x0396) /* Ζ */ \
|
||||
M(UETA, 0x0397) /* Η */ \
|
||||
M(UTHE, 0x0398) /* Θ */ \
|
||||
M(UIOT, 0x0399) /* Ι */ \
|
||||
M(UKAP, 0x039A) /* Κ */ \
|
||||
M(ULAM, 0x039B) /* Λ */ \
|
||||
M(UMU, 0x039C) /* M */ \
|
||||
M(UNU, 0x039D) /* Ν */ \
|
||||
M(UXI, 0x039E) /* Ξ */ \
|
||||
M(UOMI, 0x039F) /* Ο */ \
|
||||
M(UPI, 0x03A0) /* Π */ \
|
||||
M(URHO, 0x03A1) /* Ρ */ \
|
||||
M(USIG, 0x03A3) /* Σ */ \
|
||||
M(UTAU, 0x03A4) /* Τ */ \
|
||||
M(UUPS, 0x03A5) /* Υ */ \
|
||||
M(UPHI, 0x03A6) /* Φ */ \
|
||||
M(UCHI, 0x03A7) /* Χ */ \
|
||||
M(UPSI, 0x03A8) /* Ψ */ \
|
||||
M(UOME, 0x03A9) /* Ω */ \
|
||||
M(LALP, 0x03B1) /* α */ \
|
||||
M(LBET, 0x03B2) /* β */ \
|
||||
M(LGAM, 0x03B3) /* γ */ \
|
||||
M(LDEL, 0x03B4) /* δ */ \
|
||||
M(LEPS, 0x03B5) /* ε */ \
|
||||
M(LZET, 0x03B6) /* ζ */ \
|
||||
M(LETA, 0x03B7) /* η */ \
|
||||
M(LTHE, 0x03B8) /* θ */ \
|
||||
M(LIOT, 0x03B9) /* ι */ \
|
||||
M(LKAP, 0x03BA) /* κ */ \
|
||||
M(LLAM, 0x03BB) /* λ */ \
|
||||
M(LMU, 0x03BC) /* μ */ \
|
||||
M(LNU, 0x03BD) /* ν */ \
|
||||
M(LXI, 0x03BE) /* ξ */ \
|
||||
M(LOMI, 0x03BF) /* ο */ \
|
||||
M(LPI, 0x03C0) /* π */ \
|
||||
M(LRHO, 0x03C1) /* ρ */ \
|
||||
M(LSIG, 0x03C3) /* σ */ \
|
||||
M(LTAU, 0x03C4) /* τ */ \
|
||||
M(LUPS, 0x03C5) /* υ */ \
|
||||
M(LPHI, 0x03C6) /* φ */ \
|
||||
M(LCHI, 0x03C7) /* χ */ \
|
||||
M(LPSI, 0x03C8) /* ψ */ \
|
||||
M(LOME, 0x03C9) /* ω */ \
|
||||
M(UAH, 0x0410) /* А */ \
|
||||
M(UBE, 0x0411) /* Б */ \
|
||||
M(UVE, 0x0412) /* В */ \
|
||||
M(UGHE, 0x0413) /* Г */ \
|
||||
M(UDE, 0x0414) /* Д */ \
|
||||
M(UIE, 0x0415) /* Е */ \
|
||||
M(UIO, 0x0401) /* Ё */ \
|
||||
M(UZHE, 0x0416) /* Ж */ \
|
||||
M(UZE, 0x0417) /* З */ \
|
||||
M(UIH, 0x0418) /* И */ \
|
||||
M(USIH, 0x0419) /* Й */ \
|
||||
M(UKA, 0x041A) /* К */ \
|
||||
M(UEL, 0x041B) /* Л */ \
|
||||
M(UEM, 0x041C) /* М */ \
|
||||
M(UEN, 0x041D) /* Н */ \
|
||||
M(UOH, 0x041E) /* О */ \
|
||||
M(UPE, 0x041F) /* П */ \
|
||||
M(UER, 0x0420) /* Р */ \
|
||||
M(UES, 0x0421) /* С */ \
|
||||
M(UTE, 0x0422) /* Т */ \
|
||||
M(UUU, 0x0423) /* У */ \
|
||||
M(UEF, 0x0424) /* Ф */ \
|
||||
M(UHA, 0x0425) /* Х */ \
|
||||
M(UTSE, 0x0426) /* Ц */ \
|
||||
M(UCHE, 0x0427) /* Ч */ \
|
||||
M(USHA, 0x0428) /* Ш */ \
|
||||
M(USCHA, 0x0429) /* Щ */ \
|
||||
M(UHARD, 0x042A) /* Ъ */ \
|
||||
M(UYERU, 0x042B) /* Ы */ \
|
||||
M(USOFT, 0x042C) /* Ь */ \
|
||||
M(UEH, 0x042D) /* Э */ \
|
||||
M(UYU, 0x042E) /* Ю */ \
|
||||
M(UYA, 0x042F) /* Я */ \
|
||||
M(LAH, 0x0430) /* а */ \
|
||||
M(LBE, 0x0431) /* б */ \
|
||||
M(LVE, 0x0432) /* в */ \
|
||||
M(LGHE, 0x0433) /* г */ \
|
||||
M(LDE, 0x0434) /* д */ \
|
||||
M(LIE, 0x0435) /* е */ \
|
||||
M(LIO, 0x0451) /* ё */ \
|
||||
M(LZHE, 0x0436) /* ж */ \
|
||||
M(LZE, 0x0437) /* з */ \
|
||||
M(LIH, 0x0438) /* и */ \
|
||||
M(LSIH, 0x0439) /* й */ \
|
||||
M(LKA, 0x043A) /* к */ \
|
||||
M(LEL, 0x043B) /* л */ \
|
||||
M(LEM, 0x043C) /* м */ \
|
||||
M(LEN, 0x043D) /* н */ \
|
||||
M(LOH, 0x043E) /* о */ \
|
||||
M(LPE, 0x043F) /* п */ \
|
||||
M(LER, 0x0440) /* р */ \
|
||||
M(LES, 0x0441) /* с */ \
|
||||
M(LTE, 0x0442) /* т */ \
|
||||
M(LUU, 0x0443) /* у */ \
|
||||
M(LEF, 0x0444) /* ф */ \
|
||||
M(LHA, 0x0445) /* х */ \
|
||||
M(LTSE, 0x0446) /* ц */ \
|
||||
M(LCHE, 0x0447) /* ч */ \
|
||||
M(LSHA, 0x0448) /* ш */ \
|
||||
M(LSCHA, 0x0449) /* щ */ \
|
||||
M(LHARD, 0x044A) /* ъ */ \
|
||||
M(LYERU, 0x044B) /* ы */ \
|
||||
M(LSOFT, 0x044C) /* ь */ \
|
||||
M(LEH, 0x044D) /* э */ \
|
||||
M(LYU, 0x044E) /* ю */ \
|
||||
M(LYA, 0x044F) /* я */ \
|
||||
M(FE, 0x16A0) /* ᚠ */ \
|
||||
M(UR, 0x16A2) /* ᚢ */ \
|
||||
M(THURS, 0x16A6) /* ᚦ */ \
|
||||
M(ANSUZ, 0x16A8) /* ᚨ */ \
|
||||
M(RAIDO, 0x16B1) /* ᚱ */ \
|
||||
M(KAUNA, 0x16B2) /* ᚲ */ \
|
||||
M(GEBO, 0x16B7) /* ᚷ */ \
|
||||
M(WUNJO, 0x16B9) /* ᚹ */ \
|
||||
M(HAGLZ, 0x16BA) /* ᚺ */ \
|
||||
M(NAUDZ, 0x16BE) /* ᚾ */ \
|
||||
M(ISAZ, 0x16C1) /* ᛁ */ \
|
||||
M(JERAN, 0x16C3) /* ᛃ */ \
|
||||
M(IWAZ, 0x16C7) /* ᛇ */ \
|
||||
M(PERTH, 0x16C8) /* ᛈ */ \
|
||||
M(ALGIZ, 0x16C9) /* ᛉ */ \
|
||||
M(SOWIL, 0x16CA) /* ᛊ */ \
|
||||
M(TIWAZ, 0x16CF) /* ᛏ */ \
|
||||
M(BEORC, 0x16D2) /* ᛒ */ \
|
||||
M(EHWAZ, 0x16D6) /* ᛖ */ \
|
||||
M(MANNZ, 0x16D7) /* ᛗ */ \
|
||||
M(LAUKZ, 0x16DA) /* ᛚ */ \
|
||||
M(INGWZ, 0x16DC) /* ᛜ */ \
|
||||
M(DAGAZ, 0x16DE) /* ᛞ */ \
|
||||
M(ETHEL, 0x16DF) /* ᛟ */ \
|
||||
M(JRO, 0x308D) /* ろ */ \
|
||||
M(JWA, 0x308F) /* わ */ \
|
||||
M(JNU, 0x306C) /* ぬ */ \
|
||||
M(JHU, 0x3075) /* ふ */ \
|
||||
M(JA, 0x3042) /* あ */ \
|
||||
M(JU, 0x3046) /* う */ \
|
||||
M(JE, 0x3048) /* え */ \
|
||||
M(JO, 0x304A) /* お */ \
|
||||
M(JYA, 0x3084) /* や */ \
|
||||
M(JYU, 0x3086) /* ゆ */ \
|
||||
M(JYO, 0x3088) /* よ */ \
|
||||
M(JHO, 0x307B) /* ほ */ \
|
||||
M(JHE, 0x3078) /* へ */ \
|
||||
M(JMU, 0x3080) /* む */ \
|
||||
M(JTA, 0x305F) /* た */ \
|
||||
M(JTE, 0x3066) /* て */ \
|
||||
M(JI, 0x3044) /* い */ \
|
||||
M(JSU, 0x3059) /* す */ \
|
||||
M(JKA, 0x3095) /* ゕ */ \
|
||||
M(JN, 0x3093) /* ん */ \
|
||||
M(JNA, 0x306A) /* な */ \
|
||||
M(JNI, 0x306B) /* に */ \
|
||||
M(JRA, 0x3089) /* ら */ \
|
||||
M(JSE, 0x305B) /* せ */ \
|
||||
M(JVV, 0x309B) /* ゛*/ \
|
||||
M(JSV, 0x309C) /* ゜*/ \
|
||||
M(JTI, 0x3061) /* ち */ \
|
||||
M(JTO, 0x3068) /* と */ \
|
||||
M(JSI, 0x3057) /* し */ \
|
||||
M(JHA, 0x306F) /* は */ \
|
||||
M(JKI, 0x304D) /* き */ \
|
||||
M(JKU, 0x304F) /* く */ \
|
||||
M(JMA, 0x307E) /* ま */ \
|
||||
M(JNO, 0x306E) /* の */ \
|
||||
M(JRI, 0x308A) /* り */ \
|
||||
M(JRE, 0x308C) /* れ */ \
|
||||
M(JKE, 0x3051) /* け */ \
|
||||
M(JTU, 0x3064) /* つ */ \
|
||||
M(JSA, 0x3055) /* さ */ \
|
||||
M(JSO, 0x305D) /* そ */ \
|
||||
M(JHI, 0x3072) /* ひ */ \
|
||||
M(JKO, 0x3053) /* こ */ \
|
||||
M(JMI, 0x307F) /* み */ \
|
||||
M(JMO, 0x3082) /* も */ \
|
||||
M(JNE, 0x306D) /* ね */ \
|
||||
M(JRU, 0x308B) /* る */ \
|
||||
M(JME, 0x3081) /* め */ \
|
||||
M(ALEF, 0x05D0) /* א */ \
|
||||
M(BET, 0x05D1) /* ב */ \
|
||||
M(GIMEL, 0x05D2) /* ג */ \
|
||||
M(DALET, 0x05D3) /* ד */ \
|
||||
M(HE, 0x05D4) /* ה */ \
|
||||
M(VAV, 0x05D5) /* ו */ \
|
||||
M(ZAYIN, 0x05D6) /* ז */ \
|
||||
M(CHET, 0x05D7) /* ח */ \
|
||||
M(TET, 0x05D8) /* ט */ \
|
||||
M(YOD, 0x05D9) /* י */ \
|
||||
M(KAF, 0x05DB) /* כ */ \
|
||||
M(LAMED, 0x05DC) /* ל */ \
|
||||
M(MEM, 0x05DE) /* מ */ \
|
||||
M(NUN, 0x05E0) /* נ */ \
|
||||
M(SAMCH, 0x05E1) /* ס */ \
|
||||
M(AYIN, 0x05E2) /* ע */ \
|
||||
M(PE, 0x05E4) /* פ */ \
|
||||
M(TZADI, 0x05E6) /* צ */ \
|
||||
M(KOF, 0x05E7) /* ק */ \
|
||||
M(RESH, 0x05E8) /* ר */ \
|
||||
M(SHIN, 0x05E9) /* ש */ \
|
||||
M(TAV, 0x05EA) /* ת */
|
||||
// clang-format on
|
||||
|
||||
#define UC_KEYCODE(name, code) name = UC(code), // LALP = UC(0x03B1),
|
||||
|
||||
#define UCM_NAME(name, code) UCM_ ## name, // UCM_LALP,
|
||||
#define UCM_ENTRY(name, code) [UCM_ ## name] = code, // [UCM_LALP] = 0x03B1,
|
||||
#define UCM_KEYCODE(name, code) name = X(UCM_ ## name), // LALP = X(UCM_LALP)
|
||||
|
||||
#if defined(UNICODE_ENABLE)
|
||||
enum unicode_keycodes {
|
||||
FOREACH_UNICODE(UC_KEYCODE)
|
||||
};
|
||||
#elif defined(UNICODEMAP_ENABLE)
|
||||
enum unicode_names {
|
||||
FOREACH_UNICODE(UCM_NAME)
|
||||
};
|
||||
|
||||
extern const uint32_t PROGMEM unicode_map[];
|
||||
|
||||
enum unicode_keycodes {
|
||||
FOREACH_UNICODE(UCM_KEYCODE)
|
||||
};
|
||||
#endif
|
||||
|
||||
|
||||
#define ALPHA XP(LALP, UALP)
|
||||
#define BETA XP(LBET, UBET)
|
||||
#define GAMMA XP(LGAM, UGAM)
|
||||
#define DELTA XP(LDEL, UDEL)
|
||||
#define EPSLN XP(LEPS, UEPS)
|
||||
#define ZETA XP(LZET, UZET)
|
||||
#define ETA XP(LETA, UETA)
|
||||
#define THETA XP(LTHE, UTHE)
|
||||
#define IOTA XP(LIOT, UIOT)
|
||||
#define KAPPA XP(LKAP, UKAP)
|
||||
#define LAMBD XP(LLAM, ULAM)
|
||||
#define GMU XP(LMU, UMU)
|
||||
#define NU XP(LNU, UNU)
|
||||
#define XI XP(LXI, UXI)
|
||||
#define OMCRN XP(LOMI, UOMI)
|
||||
#define PI XP(LPI, UPI)
|
||||
#define RHO XP(LRHO, URHO)
|
||||
#define SIGMA XP(LSIG, USIG)
|
||||
#define TAU XP(LTAU, UTAU)
|
||||
#define UPSLN XP(LUPS, UUPS)
|
||||
#define PHI XP(LPHI, UPHI)
|
||||
#define CHI XP(LCHI, UCHI)
|
||||
#define PSI XP(LPSI, UPSI)
|
||||
#define OMEGA XP(LOME, UOME)
|
||||
|
||||
#define AH XP(LAH, UAH)
|
||||
#define BE XP(LBE, UBE)
|
||||
#define VE XP(LVE, UVE)
|
||||
#define GHE XP(LGHE, UGHE)
|
||||
#define DE XP(LDE, UDE)
|
||||
#define IE XP(LIE, UIE)
|
||||
#define IO XP(LIO, UIO)
|
||||
#define ZHE XP(LZHE, UZHE)
|
||||
#define ZE XP(LZE, UZE)
|
||||
#define IH XP(LIH, UIH)
|
||||
#define SIH XP(LSIH, USIH)
|
||||
#define KA XP(LKA, UKA)
|
||||
#define EL XP(LEL, UEL)
|
||||
#define EM XP(LEM, UEM)
|
||||
#define EN XP(LEN, UEN)
|
||||
#define OH XP(LOH, UOH)
|
||||
#define PE XP(LPE, UPE)
|
||||
#define ER XP(LER, UER)
|
||||
#define ES XP(LES, UES)
|
||||
#define TE XP(LTE, UTE)
|
||||
#define UU XP(LUU, UUU)
|
||||
#define EF XP(LEF, UEF)
|
||||
#define HA XP(LHA, UHA)
|
||||
#define TSE XP(LTSE, UTSE)
|
||||
#define CHE XP(LCHE, UCHE)
|
||||
#define SHA XP(LSHA, USHA)
|
||||
#define SCHA XP(LSCHA, USCHA)
|
||||
#define HARD XP(LHARD, UHARD)
|
||||
#define YERU XP(LYERU, UYERU)
|
||||
#define SOFT XP(LSOFT, USOFT)
|
||||
#define EH XP(LEH, UEH)
|
||||
#define YU XP(LYU, UYU)
|
||||
#define YA XP(LYA, UYA)
|
||||
156
users/ridingqwerty/wrappers.h
Normal file
156
users/ridingqwerty/wrappers.h
Normal file
@@ -0,0 +1,156 @@
|
||||
#pragma once
|
||||
#include "ridingqwerty.h"
|
||||
|
||||
// clang-format off
|
||||
#define LAYOUT_atreus_wrapper(...) LAYOUT_atreus(__VA_ARGS__)
|
||||
#define LAYOUT_minorca_wrapper(...) LAYOUT_minorca(__VA_ARGS__)
|
||||
|
||||
#define ___________VI_ARROWS______________ KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
|
||||
|
||||
// 1......__2......__3......__4......__5...... 1......__2......__3......__4......__5......
|
||||
#define ________________QWERTY_L1__________________ KC_Q, KC_W, KC_E, KC_R, KC_T
|
||||
#define ________________QWERTY_L2__________________ KC_A, KC_S, KC_D, KC_F, KC_G
|
||||
#define ________________QWERTY_L3__________________ KC_Z, KC_X, KC_C, KC_V, KC_B
|
||||
|
||||
#define ________________QWERTY_R1__________________ KC_Y, KC_U, KC_I, KC_O, KC_P
|
||||
#define ________________QWERTY_R2__________________ KC_H, KC_J, KC_K, KC_L, KC_SCLN
|
||||
#define ________________QWERTY_R3__________________ KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH
|
||||
|
||||
|
||||
#define ________________ATREUS_L1__________________ ________________QWERTY_L1__________________
|
||||
#define ________________ATREUS_L2__________________ ED(A), KC_S, KC_D, KC_F, KC_G
|
||||
#define ________________ATREUS_L3__________________ LS(Z), KC_X, KC_C, KC_V, KC_B
|
||||
|
||||
#define ________________ATREUS_R1__________________ ________________QWERTY_R1__________________
|
||||
#define ________________ATREUS_R2__________________ KC_H, KC_J, KC_K, KC_L, NM(SCLN)
|
||||
#define ________________ATREUS_R3__________________ KC_N, KC_M, KC_COMM, FK(DOT), RS(SLSH)
|
||||
|
||||
#define ________________FNHOMEROW_L2_______________ C(KC_A), G(KC_S), A(KC_D), S(KC_F), KC_G
|
||||
#define ________________FNHOMEROW_R2_______________ KC_H, S(KC_J), A(KC_K), G(KC_L), C(SCLN)
|
||||
|
||||
#define ____THUMBS_R4___ ED(ESC), DB(TAB)
|
||||
#define _____BLANK_R4___ _______, _______
|
||||
#define ________________ _______, _______
|
||||
|
||||
|
||||
#define ________________COLEMAK_L1_________________ KC_Q, KC_W, KC_F, KC_P, KC_G
|
||||
#define ________________COLEMAK_L2_________________ ED(A), KC_R, KC_S, KC_T, KC_D
|
||||
#define ________________COLEMAK_L3_________________ LS(Z), KC_X, KC_C, KC_V, KC_B
|
||||
|
||||
#define ________________COLEMAK_R1_________________ KC_J, KC_L, KC_U, KC_Y, KC_SCLN
|
||||
#define ________________COLEMAK_R2_________________ KC_H, KC_N, KC_E, KC_I, NM(O)
|
||||
#define ________________COLEMAK_R3_________________ KC_K, KC_M, KC_COMM, FK(DOT), RS(SLSH)
|
||||
|
||||
|
||||
#define ________________DVORAK_L1__________________ KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y
|
||||
#define ________________DVORAK_L2__________________ ED(A), KC_O, KC_E, KC_U, KC_I
|
||||
#define ________________DVORAK_L3__________________ LS(SCLN),KC_Q, KC_J, KC_K, KC_X
|
||||
|
||||
#define ________________DVORAK_R1__________________ KC_F, KC_G, KC_C, KC_R, KC_L
|
||||
#define ________________DVORAK_R2__________________ KC_D, KC_H, KC_T, KC_N, NM(S)
|
||||
#define ________________DVORAK_R3__________________ KC_B, KC_M, KC_W, FK(V), RS(Z)
|
||||
|
||||
#define ________________BOTTOM_L4__________________ LC(ESC), LG(TAB), LA(LBRC), LS(RBRC), NM(BSPC)
|
||||
#define ________________BOTTOM_R4__________________ SM(SPC), RS(MINS), RA(EQL), RG_QUOT, RC(ENT)
|
||||
|
||||
|
||||
#define ________________NUMROW_L1__________________ KC_1, KC_2, KC_3, KC_4, KC_5
|
||||
#define ________________NUMROW_R1__________________ KC_6, KC_7, KC_8, KC_9, KC_0
|
||||
|
||||
#define ________________NUMPAD_R1__________________ _______, KC_7, KC_8, KC_9, KC_0
|
||||
#define ________________NUMPAD_R2__________________ _______, KC_4, KC_5, KC_6, _______
|
||||
#define ________________NUMPAD_R3__________________ _______, KC_1, KC_2, KC_3, KC_BSLS
|
||||
#define ________________NUMPAD_R4__________________ KC_0, KC_0, KC_DOT, KC_3, _______
|
||||
|
||||
|
||||
#define ________________SYMROW_L1__________________ KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC
|
||||
#define ________________SYMROW_R1__________________ KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN
|
||||
|
||||
|
||||
#define ________________ _______, _______
|
||||
#define _________________________ _______, _______, _______
|
||||
#define __________________________________ _______, _______, _______, _______
|
||||
#define ___________________________________________ _______, _______, _______, _______, _______
|
||||
#define ___________________________________________ _______, _______, _______, _______, _______
|
||||
#define ___________________________________________ _______, _______, _______, _______, _______
|
||||
#define ________________BLANK______________________ ___________________________________________
|
||||
#define ________________BLOCK______________________ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
|
||||
#define XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ________________BLOCK______________________
|
||||
|
||||
#define ________________FKEYROW_L1_________________ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5
|
||||
#define ________________FKEYROW_R1_________________ KC_F6, KC_F7, KC_F8, KC_F9, KC_F10
|
||||
|
||||
#define ________________EDITOR_L1__________________ KC_GRV, _______, KC_END, _______, KC_F5
|
||||
#define ________________EDITOR_L2__________________ KC_HOME, _______, KC_DELT, _______, _______
|
||||
#if defined(TAP_DANCE_ENABLE)
|
||||
#define ________________EDITOR_L3__________________ _______, KC_VOLD, KC_VOLU, CCCV, TD_BRC
|
||||
#else
|
||||
#define ________________EDITOR_L3__________________ _______, KC_VOLD, KC_VOLU, CCCV, _______
|
||||
#endif
|
||||
|
||||
#define ________________EDITOR_R1__________________ _______, _______, KC_INS, _______, KC_PGUP
|
||||
#define ________________EDITOR_R2__________________ ___________VI_ARROWS______________, _______
|
||||
#define ________________EDITOR_R3__________________ KC_PGDN, _______, _______, _______, KC_BSLS
|
||||
|
||||
|
||||
#define ________________DEBUG_L1___________________ DEBUG, _______, _______, RNGWORD, SARCASM
|
||||
#define ________________DEBUG_L2___________________ GREEK, RUSSIAN, HIRAGAN, RUNES, _______
|
||||
#define ________________DEBUG_L3___________________ _______, _______, _______, VERSION, _______
|
||||
|
||||
#define ________________DEBUG_R1___________________ VPRWAVE, STRAYA, _______, TESTING, _______
|
||||
#define ________________DEBUG_R2___________________ _______, _______, EEP_RST, RESET, MAKE
|
||||
#define ________________DEBUG_R3___________________ QWERTY, DVORAK, COLEMAK, _______, _______
|
||||
|
||||
|
||||
#define ________________SECRET_L1__________________ _______, _______, _______, SECRET0, SECRET1
|
||||
#define ________________SECRET_L2__________________ SECRET4, SECRET8, _______, _______, _______
|
||||
#define ________________SECRET_L3__________________ SECRET7, _______, SECRET2, SECRET5, _______
|
||||
|
||||
#define ________________SECRET_R1__________________ _______, _______, _______, _______, _______
|
||||
#define ________________SECRET_R2__________________ _______, _______, _______, SECRET6, _______
|
||||
#define ________________SECRET_R3__________________ _______, SECRET3, _______, _______, _______
|
||||
|
||||
|
||||
#if defined(UNICODEMAP_ENABLE)
|
||||
// Greek
|
||||
#define ________________GREEK_L1___________________ THETA, OMEGA, EPSLN, RHO, TAU
|
||||
#define ________________GREEK_L2___________________ ALPHA, SIGMA, DELTA, PHI, GAMMA
|
||||
#define ________________GREEK_L3___________________ ZETA, XI, CHI, PHI, BETA
|
||||
#define ________________GREEK_R1___________________ UPSLN, UPSLN, IOTA, OMCRN, PI
|
||||
#define ________________GREEK_R2___________________ ETA, PSI, KAPPA, LAMBD, NM(SCLN)
|
||||
#define ________________GREEK_R3___________________ NU, GMU, KC_COMM, FK(DOT), RS(SLSH)
|
||||
|
||||
// Elder Futhark
|
||||
#define ________________FTHRK_L1___________________ INGWZ, WUNJO, EHWAZ, RAIDO, TIWAZ
|
||||
#define ________________FTHRK_L2___________________ ANSUZ, SOWIL, DAGAZ, FE, GEBO
|
||||
#define ________________FTHRK_L3___________________ ALGIZ, THURS, KAUNA, WUNJO, BEORC
|
||||
#define ________________FTHRK_R1___________________ IWAZ, UR, ISAZ, ETHEL, PERTH
|
||||
#define ________________FTHRK_R2___________________ HAGLZ, JERAN, KAUNA, LAUKZ, KC_SCLN
|
||||
#define ________________FTHRK_R3___________________ NAUDZ, MANNZ, KC_COMM, KC_DOT, KC_SLSH
|
||||
|
||||
// Russian Cyrillic
|
||||
#define ________________CYRLC_L1___________________ YA, SCHA, IE, ER, TE
|
||||
#define ________________CYRLC_L2___________________ AH, ES, DE, EF, GHE
|
||||
#define ________________CYRLC_L3___________________ ZE, HA, TSE, VE, BE
|
||||
#define ________________CYRLC_R1___________________ YERU, UU, IH, OH, PE
|
||||
#define ________________CYRLC_R2___________________ CHE, SIH, KA, EL, SOFT
|
||||
#define ________________CYRLC_R3___________________ EN, EM, YU, SCHA, EH
|
||||
#define ________________CYRLC_R4___________________ SM(SPC), IO, HARD, ZHE, RC(ENT)
|
||||
|
||||
// Hiragana
|
||||
#define ________________JIS1_R1____________________ JTA, JTE, JI, JSU, JKA
|
||||
#define ________________JIS1_R2____________________ JTI, JTO, JSI, JHA, JKI
|
||||
#define ________________JIS1_R3____________________ JMI, JMO, KC_COMM, KC_DOT, MO(_HIRA2)
|
||||
#define ________________JIS1_L1____________________ JN, JNA, JNI, JRA, JSE
|
||||
#define ________________JIS1_L2____________________ JKU, JMA, JNO, JRI, JRE
|
||||
#define ________________JIS1_L3____________________ JTU, JSA, JSO, JHI, JKO
|
||||
|
||||
#define ________________JIS2_R1____________________ JRO, JWA, JNU, JHU, JA
|
||||
#define ________________JIS2_R2____________________ JYO, JHO, JHE, JMU, JVV
|
||||
#define ________________JIS2_R3____________________ JRU, JME, KC_COMM, KC_DOT, _______
|
||||
#define ________________JIS2_L1____________________ JU, JE, JO, JYA, JYU
|
||||
#define ________________JIS2_L2____________________ JSV, JKE, JMI, JMO, JNE
|
||||
#define ________________JIS2_L3____________________ JTU, JSA, JSO, JHI, JKO
|
||||
|
||||
#endif
|
||||
// clang-format on
|
||||
Reference in New Issue
Block a user