Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add new mercutio keymap and update readme.md for layouts #12973

Merged
merged 41 commits into from
May 27, 2021
Merged
Show file tree
Hide file tree
Changes from 33 commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
4559ddb
Add new quefrency keymap
Jonavin May 16, 2021
3e8c0df
Merge pull request #1 from Jonavin/jonavin
Jonavin May 16, 2021
d3b3989
Update keyboards/keebio/quefrency/keymaps/jonavin/keymap.c
Jonavin May 16, 2021
d2bfb5d
Update keyboards/keebio/quefrency/keymaps/jonavin/keymap.c
Jonavin May 16, 2021
f4dd0e1
Update keyboards/keebio/quefrency/keymaps/jonavin/keymap.c
Jonavin May 16, 2021
fe8bad6
Update keymap.c
Jonavin May 16, 2021
88bd458
Update keymap.c
Jonavin May 16, 2021
f81a98a
Merge pull request #2 from Jonavin/jonavin
Jonavin May 16, 2021
b4da6fc
Merge branch 'qmk:master' into jonavin
Jonavin May 16, 2021
d5632b0
Fix suggested num in keymap.c
Jonavin May 16, 2021
c20de90
Fix suggested enum in keymaps
Jonavin May 16, 2021
131d2c0
Update keymap.c
Jonavin May 16, 2021
4302af7
Merge branch 'qmk:master' into jonavin
Jonavin May 17, 2021
40b3e42
Merge branch 'qmk:master' into jonavin
Jonavin May 17, 2021
7d54c9e
Merge branch 'qmk:master' into jonavin
Jonavin May 18, 2021
67dd361
Merge pull request #4 from Jonavin/jonavin
Jonavin May 18, 2021
4a12294
Add new layer _MO3 to keymap
Jonavin May 18, 2021
1d11784
Merge pull request #5 from Jonavin/jonavin
Jonavin May 18, 2021
a8e98e6
Handle GRAVESC combo keys
May 18, 2021
da00214
Handle GRAVEC combo keys
May 18, 2021
8819d38
Add README.md to describe layout
May 18, 2021
8a69380
Fix layer 2 keymap
Jonavin May 18, 2021
f6ea488
Merge branch 'qmk:master' into master
Jonavin May 18, 2021
828cb10
Add new Mercutio keymap jonavin
May 19, 2021
0446c9a
Merge branch 'qmk:master' into master
Jonavin May 19, 2021
6eab8c3
Merge branch 'master' of https://github.com/jonavin/qmk_firmware
May 19, 2021
8894cd7
keymap update with left spacebar Backspace
Jonavin May 19, 2021
c6a10dc
Merge branch 'qmk:master' into master
Jonavin May 19, 2021
51503e3
Create README.md for custom keymap
Jonavin May 20, 2021
1100a56
Merge pull request #6 from Jonavin/mw-merc-jonavin
Jonavin May 20, 2021
fb3a7e7
Update README.md
Jonavin May 20, 2021
af0404c
Update README.md
Jonavin May 20, 2021
b85a464
Merge branch 'qmk:master' into jonavin-merc
Jonavin May 20, 2021
b846501
Update keyboards/mechwild/mercutio/keymaps/jonavin/config.h
Jonavin May 22, 2021
00dc01c
Rename README.md to readme.md
Jonavin May 22, 2021
23ed4b2
Update and rename README.md to readme.md
Jonavin May 22, 2021
806b459
Fix numpad keymap KC_9 to KC_P9; LCD show name
May 26, 2021
8ffcdae
Merge branch 'qmk:master' into jonavin-merc
Jonavin May 26, 2021
372d2f3
merc keymap shutdown oled when powered down
May 26, 2021
8519458
Merge branch 'jonavin-merc' of https://github.com/jonavin/qmk_firmwar…
May 26, 2021
a582591
Add WMP display when wpm > 20
May 27, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions keyboards/keebio/quefrency/keymaps/jonavin/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# Jonathan's Quefrency layout - No Macros 65%
drashna marked this conversation as resolved.
Show resolved Hide resolved

- ANSI qwerty layout with split Backspace, 1.25 Left mods, 1u right
- Left Fn key is Spacebar tap and Fn when held
- Layer 2 mod on Caps Lock with double-tap to switch to this layer, double tap to switch back
- Layer 2 provides arrows on WASD and additional nav keys + right hand numpad with 00
- ESC is set to GRAVESC (Esc when pressed, Shift-Esc is ~ and Win-ESC is `), plus handling for Ctrl-Shift-ESC to bring up Task Manager in Windows
- Layer 2 left spacebar Backspace

## All layers diagram

![image](https://user-images.githubusercontent.com/71780717/118903429-c52cc800-b8e5-11eb-9c45-3d9815a50123.png)

7 changes: 7 additions & 0 deletions keyboards/keebio/quefrency/keymaps/jonavin/config.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ This is the c configuration file for the keymap
Copyright 2012 Jun Wako <wakojun@gmail.com>
Copyright 2015 Jack Humbert
Copyright 2018 Danny Nguyen <danny@keeb.io>
Copyright 2021 Jonavin Eng

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
Expand All @@ -28,3 +29,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.

#define TAPPING_TOGGLE 2
// TT set to two taps

/* Handle GRAVESC combo keys */
#define GRAVE_ESC_ALT_OVERRIDE
//Always send Escape if Alt is pressed
#define GRAVE_ESC_CTRL_OVERRIDE
//Always send Escape if Control is pressed
13 changes: 10 additions & 3 deletions keyboards/keebio/quefrency/keymaps/jonavin/keymap.c
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ enum custom_layers {
_BASE,
_FN1,
_MO2,
_MO3,
};


Expand Down Expand Up @@ -64,11 +65,17 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, RCTL(KC_PGUP), KC_END,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_APP, RCTL(KC_LEFT), RCTL(KC_PGDN), RCTL(KC_RIGHT)),
[_MO2] = LAYOUT_65(
KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_P7, KC_P8, KC_P9, KC_PMNS, KC_PPLS, KC_PSLS, KC_NO, KC_NO, KC_TRNS,
KC_TAB, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_NO, KC_NO, KC_P4, KC_P5, KC_P6, KC_NO, KC_NO, KC_NO, KC_PEQL, KC_TRNS,
KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_P7, KC_P8, KC_P9, KC_P0, KC_PMNS, KC_PPLS, KC_PSLS, KC_PEQL, KC_TRNS,
KC_TAB, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_NO, KC_NO, KC_P4, KC_P5, KC_P6, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_TRNS,
KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_NO, KC_TAB, KC_P1, KC_P2, KC_P3, KC_NO, KC_PAST, KC_PENT, KC_HOME,
KC_TRNS, KC_NO, KC_DEL, KC_INS, KC_NO, KC_NO, KC_NLCK, KC_P0, DOUBLEZERO, KC_PDOT, KC_PSLS, KC_TRNS, RCTL(KC_PGUP), KC_END,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RCTL(KC_LEFT), RCTL(KC_PGDN), RCTL(KC_RIGHT)),
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BSPC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RCTL(KC_LEFT), RCTL(KC_PGDN), RCTL(KC_RIGHT)),
[_MO3] = LAYOUT_65(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_DOWN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
};

void encoder_update_user(uint8_t index, bool clockwise) {
Expand Down
13 changes: 13 additions & 0 deletions keyboards/mechwild/mercutio/keymaps/jonavin/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
Jonavin's Custom Mercutio Layout
- Based on Fancy keymap

Features
- Split Enter, shftEnter, Split Backspace
- standard shorten home row keys
- numpad and nav keys in RAISE LAYER
- symbols in LOWER layer
- CAPS LOCK 2 taps for RAISE layer toggle
- RAISE layer left spacebar Backspace
- Shift+Encoder for layer changes (from mercutio/fancy keymap)

![image](https://user-images.githubusercontent.com/71780717/118902752-4aaf7880-b8e4-11eb-82f4-e5047612ffcf.png)
30 changes: 30 additions & 0 deletions keyboards/mechwild/mercutio/keymaps/jonavin/config.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
/* Copyright 2021 Kyle McCreery
* Copyright 2021 Jonavin Eng
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/

#pragma once

/* Define custom font */
#define OLED_FONT_H "keyboards/mechwild/mercutio/lib/mercutiofont.c"
Jonavin marked this conversation as resolved.
Show resolved Hide resolved

#define TAPPING_TOGGLE 2
// TT set to two taps

/* Handle GRAVESC combo keys */
#define GRAVE_ESC_ALT_OVERRIDE
//Always send Escape if Alt is pressed
#define GRAVE_ESC_CTRL_OVERRIDE
//Always send Escape if Control is pressed
175 changes: 175 additions & 0 deletions keyboards/mechwild/mercutio/keymaps/jonavin/keymap.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,175 @@
/* Copyright 2021 Kyle McCreery
* Copyright 2021 Jonavin Eng
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/


#include QMK_KEYBOARD_H

enum custom_layers {
_BASE,
_FN1,
_LOWER,
_RAISE,
};

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_BASE] = LAYOUT_all(
KC_MUTE,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
TT(_RAISE), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
KC_LSFT, KC_SLSH, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SFTENT,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, LT(_LOWER,KC_SPC), KC_SPC, KC_RALT, MO(_FN1), KC_RCTL ),

[_FN1] = LAYOUT_all(
KC_TRNS,
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL,
KC_CAPS, KC_F11, KC_F12, KC_NO, KC_NO, KC_NO, KC_NO, KC_PSCR, KC_SCLN, KC_PAUS, KC_NO, KC_NO,
KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NLCK, KC_P0, KC_NO, KC_NO, KC_SFTENT,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ),

[_LOWER] = LAYOUT_all(
KC_TRNS,
KC_GRAVE, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL,
KC_TRNS, KC_MINS, KC_EQL, KC_NO, KC_NO, KC_NO, KC_NO, KC_QUES, KC_SLSH, KC_PIPE, KC_BSLS, KC_TILD,
KC_TRNS, KC_TRNS, KC_UNDS, KC_PLUS, KC_NO, KC_NO, KC_NO, KC_LCBR, KC_RCBR, KC_LBRC, KC_RBRC, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ),

[_RAISE] = LAYOUT_all(
KC_TRNS,
KC_TAB, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_PMNS, KC_PPLS, KC_P7, KC_P8, KC_9, KC_P0, KC_TRNS,
TT(_RAISE), KC_LEFT, KC_DOWN, KC_RIGHT,KC_PGDN, KC_PSLS, KC_TAB, KC_P4, KC_P5, KC_P6, KC_PDOT, KC_PEQL,
KC_TRNS, KC_TRNS, KC_NO, KC_DEL, KC_INS, KC_NO, KC_PAST, KC_P0, KC_P1, KC_P2, KC_P3, KC_PENT,
KC_TRNS, KC_TRNS, KC_TRNS, KC_BSPC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS )
};

#ifdef ENCODER_ENABLE // Encoder Functionality
uint8_t selected_layer = 0;
void encoder_update_user(uint8_t index, bool clockwise) {
#ifdef OLED_DRIVER_ENABLE
oled_clear();
oled_render();
#endif
switch (index) {
case 0: // This is the only encoder right now, keeping for consistency
if ( clockwise ) {
if ( selected_layer < 3 && keyboard_report->mods & MOD_BIT(KC_LSFT) ) { // If you are holding L shift, encoder changes layers
selected_layer ++;
layer_move(selected_layer);
} else {
tap_code(KC_VOLU); // Otherwise it just changes volume
}
} else if ( !clockwise ) {
if ( selected_layer > 0 && keyboard_report->mods & MOD_BIT(KC_LSFT) ){
selected_layer --;
layer_move(selected_layer);
} else {
tap_code(KC_VOLD);
}
}
}
}
#endif

#ifdef OLED_DRIVER_ENABLE // OLED Functionality
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
return OLED_ROTATION_180; // flips the display 180 degrees if offhand
}

bool clear_screen = false; // used to manage singular screen clears to prevent display glitch
static void render_name(void) { // Render Mercutio Script Text
static const char PROGMEM mercutio_name[] = {
0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0x95, 0xB5, 0x96, 0xD5, 0xB6, 0xB6,
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, 0x00
};
oled_write_P(mercutio_name, false);
}

static void render_logo(void) { // Render MechWild "MW" Logo
static const char PROGMEM logo_1[] = {0x97, 0x98, 0x99, 0x9A,0x00};
static const char PROGMEM logo_2[] = {0xB7, 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0x00};
static const char PROGMEM logo_3[] = {0xD7, 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xB6, 0x00};
static const char PROGMEM logo_4[] = {0xB6, 0xB6, 0xB6, 0x9B, 0x9C, 0x9D, 0x9E, 0x00};
oled_set_cursor(0,0);
oled_write_P(logo_1, false);
oled_set_cursor(0,1);
oled_write_P(logo_2, false);
oled_set_cursor(0,2);
oled_write_P(logo_3, false);
oled_set_cursor(0,3);
oled_write_P(logo_4, false);
}

void oled_task_user(void) {

if ( IS_HOST_LED_OFF(USB_LED_NUM_LOCK) && IS_HOST_LED_OFF(USB_LED_CAPS_LOCK) && selected_layer == 0 && get_highest_layer(layer_state) == 0 ) {
render_name();
clear_screen = true;
} else {
if (clear_screen == true) {
oled_clear();
oled_render();
clear_screen = false;
}
render_logo();
oled_set_cursor(8,2);
switch(selected_layer){
case 0:
oled_write_P(PSTR("Lock BASE"), false);
break;
case 1:
oled_write_P(PSTR("Lock FN"), false);
break;
case 2:
oled_write_P(PSTR("Lock LOWER"), false);
break;
case 3:
oled_write_P(PSTR("Lock RAISE"), false);
break;
default:
oled_write_P(PSTR("Lock Layer ?"), false); // Should never display, here as a catchall
}
oled_set_cursor(8,3);
if (get_highest_layer(layer_state) == selected_layer) {
oled_write_P(PSTR(" "), false);
} else {
switch (get_highest_layer(layer_state)) {
case 0:
oled_write_P(PSTR("Temp BASE"), false);
break;
case 1:
oled_write_P(PSTR("Temp FN"), false);
break;
case 2:
oled_write_P(PSTR("Temp LOWER"), false);
break;
case 3:
oled_write_P(PSTR("Temp RAISE"), false);
break;
default:
oled_write_P(PSTR("Temp Layer ?"), false); // Should never display, here as a catchall
}
}
led_t led_state = host_keyboard_led_state();
oled_set_cursor(8,0);
oled_write_P(led_state.scroll_lock ? PSTR("SCRLK") : PSTR(" "), false);
oled_set_cursor(8,1);
oled_write_P(led_state.num_lock ? PSTR("NLCK ") : PSTR(" "), false);
oled_write_P(led_state.caps_lock ? PSTR("CAPS ") : PSTR(" "), false);
}
}
#endif
2 changes: 2 additions & 0 deletions keyboards/mechwild/mercutio/keymaps/jonavin/rules.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
VIA_ENABLE = yes