forked from qmk/qmk_firmware
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[Keymap] add crkbd/keymaps/markstos (qmk#19010)
Co-authored-by: Drashna Jaelre <drashna@live.com> Co-authored-by: Ryan <fauxpark@gmail.com>
- Loading branch information
Showing
4 changed files
with
200 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,62 @@ | ||
/* | ||
This is the C configuration file for the keymap | ||
Copyright 2022 Mark Stosberg (@markstos) | ||
SPDX-License-Identifier: GPL-2.0-or-later | ||
*/ | ||
|
||
#pragma once | ||
|
||
//#define USE_MATRIX_I2C | ||
|
||
/* Select hand configuration */ | ||
|
||
// #define MASTER_LEFT | ||
#define MASTER_RIGHT | ||
// #define EE_HANDS | ||
|
||
//#define SSD1306OLED | ||
|
||
|
||
// By default, when holding a dual-function key shortly after tapping it, the | ||
// tapped key will begin repeating. This is handy for fast typists when typing | ||
// words with double letters, such as "happy". If you turn this setting ON, it | ||
// will be counted as a held modifier instead. | ||
//#define TAPPING_FORCE_HOLD | ||
|
||
// Customized by markstos | ||
#define TAPPING_TERM 200 | ||
#define TAPPING_TERM_PER_KEY | ||
// used for Tapping Term on thumb keys | ||
#define TAPPING_TERM_THUMB 125 | ||
|
||
// If you press a dual-role key, press another key, and then release the | ||
// dual-role key, all within the tapping term, by default the dual-role key | ||
// will perform its tap action. If the HOLD_ON_OTHER_KEY_PRESS option is | ||
// enabled, the dual-role key will perform its hold action instead. | ||
#define HOLD_ON_OTHER_KEY_PRESS | ||
|
||
// markstos: not sure if these are correct | ||
// They are intended to beep and flash during flashing | ||
#define QMK_LED D5 | ||
#define QMK_SPEAKER C6 | ||
|
||
// Prevent normal rollover on alphas from accidentally triggering mods. | ||
#define IGNORE_MOD_TAP_INTERRUPT | ||
|
||
// When enabled, typing a mod-tap plus second within term will register as the mod-combo | ||
// Ref: https://beta.docs.qmk.fm/using-qmk/software-features/tap_hold#permissive-hold | ||
#define PERMISSIVE_HOLD | ||
|
||
#define COMBO_COUNT 2 | ||
|
||
// Set the COMBO_TERM so low that I won't type the keys one after each other during normal typing. | ||
// They would have be held together intentionally to trigger this. | ||
#define COMBO_TERM 40 | ||
|
||
// These mostly affect my one-shot Shift key, providing a CapsLock alternative. | ||
// I want a relatively low timeout, so if I accidentally type "Shift", I can pause just briefly and move on. | ||
#define ONESHOT_TAP_TOGGLE 3 /* Tapping this number of times holds the key until tapped once again. */ | ||
#define ONESHOT_TIMEOUT 2000 /* Time (in ms) before the one shot key is released */ | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,112 @@ | ||
// Copyright 2022 Mark Stosberg (@markstos) | ||
// SPDX-License-Identifier: GPL-2.0-or-later | ||
#include QMK_KEYBOARD_H | ||
|
||
enum custom_keycodes { | ||
QWERTY = SAFE_RANGE, | ||
LOWER, | ||
RAISE, | ||
FUNC, | ||
BACKLIT | ||
}; | ||
|
||
enum combos { | ||
DF_DASH, | ||
JK_ESC | ||
}; | ||
|
||
const uint16_t PROGMEM df_combo[] = {KC_D, KC_F, COMBO_END}; | ||
const uint16_t PROGMEM jk_combo[] = {KC_J, KC_K, COMBO_END}; | ||
|
||
combo_t key_combos[COMBO_COUNT] = { | ||
// Add commonly used dash to home row | ||
[DF_DASH] = COMBO(df_combo, KC_MINS), | ||
// For Vim, put Escape on the home row | ||
[JK_ESC] = COMBO(jk_combo, KC_ESC), | ||
}; | ||
|
||
// Each layer gets a name for readability, which is then used in the keymap matrix below. | ||
// The underscores don't mean anything - you can have a layer called STUFF or any other name. | ||
// Layer names don't all need to be of the same length, obviously, and you can also skip them | ||
// entirely and just use numbers. | ||
enum custom_layers { | ||
_QWERTY, | ||
_LOWER, | ||
_RAISE, | ||
_FUNC, | ||
}; | ||
|
||
// For _QWERTY layer | ||
#define OSM_LCTL OSM(MOD_LCTL) | ||
#define OSM_AGR OSM(MOD_RALT) | ||
#define OSL_FUN OSL(_FUNC) | ||
#define GUI_ENT GUI_T(KC_ENT) | ||
#define LOW_TAB LT(_LOWER, KC_TAB) | ||
#define RSE_BSP LT(_RAISE, KC_BSPC) | ||
#define OSM_SFT OSM(MOD_LSFT) | ||
|
||
|
||
// For _RAISE layer | ||
#define CTL_ESC LCTL_T(KC_ESC) | ||
|
||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
[_QWERTY] = LAYOUT( | ||
//,-----------------------------------------------------. ,-----------------------------------------------------. | ||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,KC_DEL , | ||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| | ||
OSM(MOD_LALT), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H ,KC_J ,KC_K ,KC_L ,KC_QUOT ,OSM_AGR , | ||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| | ||
OSM(MOD_LSFT), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N ,KC_M ,KC_COMM ,KC_DOT ,KC_SLSH ,OSL_FUN , | ||
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| | ||
OSM_LCTL, GUI_ENT, LOW_TAB, RSE_BSP ,KC_SPC ,OSM_SFT | ||
//`--------------------------' `--------------------------' | ||
), | ||
|
||
[_LOWER] = LAYOUT( | ||
//,-----------------------------------------------------. ,-----------------------------------------------------. | ||
_______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______ , | ||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| | ||
_______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______ , | ||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| | ||
_______, XXXXXXX , KC_TILD,KC_GRV, KC_LBRC, KC_LCBR, KC_RCBR, KC_RBRC, KC_COMM,KC_DOT, KC_SLSH, _______ , | ||
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| | ||
KC_TRNS, KC_TRNS, LOWER, KC_TRNS, KC_TRNS, KC_COLON | ||
//`--------------------------' `--------------------------' | ||
), | ||
|
||
|
||
[_RAISE] = LAYOUT( | ||
//,-----------------------------------------------------. ,-----------------------------------------------------. | ||
_______, KC_DEL , XXXXXXX, KC_UNDS, KC_PLUS, KC_PGUP, XXXXXXX, XXXXXXX, XXXXXXX, KC_BSLS, KC_PIPE,_______ , | ||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| | ||
_______, KC_HOME, KC_END , KC_MINS, KC_EQL , KC_PGDN, KC_LEFT, KC_DOWN, KC_UP , KC_RGHT, KC_APP ,_______ , | ||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| | ||
_______, KC_LT , KC_GT , KC_COPY, KC_PSTE, KC_SCLN, KC_MPLY, KC_MPRV, KC_MNXT, KC_VOLD, KC_VOLU,_______ , | ||
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| | ||
CTL_ESC, KC_TRNS, XXXXXXX, RAISE , KC_TRNS, KC_TRNS | ||
//`--------------------------' `--------------------------' | ||
), | ||
|
||
[_FUNC] = LAYOUT( | ||
//,-----------------------------------------------------. ,-----------------------------------------------------. | ||
_______, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 ,_______ , | ||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| | ||
_______, KC_F11 , KC_F12 , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,_______ , | ||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| | ||
_______, KC_CAPS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX , XXXXXXX, XXXXXXX, XXXXXXX, QK_BOOT,XXXXXXX , | ||
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| | ||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, FUNC , XXXXXXX | ||
//`--------------------------' `--------------------------' | ||
) | ||
}; | ||
|
||
uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { | ||
switch (keycode) { | ||
case LT(_RAISE, KC_BSPC): | ||
return TAPPING_TERM_THUMB; | ||
case LT(_LOWER, KC_TAB): | ||
return TAPPING_TERM_THUMB; | ||
default: | ||
return TAPPING_TERM; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
# Markstos Corne keyboard layout | ||
|
||
![markstos 3x5+1 Corne layout](https://mark.stosberg.com/content/images/2022/11/markstos-3x5-plus-1-layout-v2.2.png) | ||
|
||
A primarily 3x5 layout for split ergonomic keywords with an extra column on each hand for rare and optional keys. | ||
|
||
For a detailed description see [markstos Corne layout](https://mark.stosberg.com/markstos-corne-3x5-1-keyboard-layout). | ||
|
||
# Disclaimer | ||
|
||
This is my personal layout and is subject to evolve further with my tastes. Fork your own copy if you need stability. Suggestions welcome. | ||
|
||
# Author | ||
|
||
* [Mark Stosberg](mailto:mark@stosberg.com) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
# markstos: enable media keys | ||
EXTRAKEY_ENABLE = yes | ||
|
||
# markstos: smaller file size, little down-side | ||
LTO_ENABLE = yes | ||
|
||
COMBO_ENABLE = yes | ||
|
||
# This is for RGB *underglow* | ||
# https://github.com/qmk/qmk_firmware/blob/master/docs/feature_rgblight.md | ||
RGBLIGHT_ENABLE = no |