diff options
Diffstat (limited to 'keyboards/lets_split')
-rw-r--r-- | keyboards/lets_split/keymaps/mekberg/README.md | 65 | ||||
-rw-r--r-- | keyboards/lets_split/keymaps/mekberg/config.h | 34 | ||||
-rw-r--r-- | keyboards/lets_split/keymaps/mekberg/keymap.c | 228 |
3 files changed, 327 insertions, 0 deletions
diff --git a/keyboards/lets_split/keymaps/mekberg/README.md b/keyboards/lets_split/keymaps/mekberg/README.md new file mode 100644 index 0000000000..5202ec8366 --- /dev/null +++ b/keyboards/lets_split/keymaps/mekberg/README.md @@ -0,0 +1,65 @@ +# Let's Mekberg! + +This is my take on a Swedish 40% layout in a split format. The priority is to have the most highly used keys opposite the modifier to make chording simpler. In other words, if the layer modifier is on the left half, the most used keys should be bound on the right half. + +## Layers + +### Default + +The default layer has normal alpha layout with the addition of Swedish letters, causing Enter to move down one key and backspace to take the place of the right space. The enter key also doubles as Shift when held. + +2nd row left modifier has been bound to both Ctrl and Tab with modtap (hold for Ctrl, tap for Tab). + +Delete is available on all non-default layers, positioned on the upper right corner key. + +### Raise + +The raised layer has all the symbols and special characters predefined. As much as possible, there should be no need to use additional modifiers. + +Arrow keys have been disabled on this layer to avoid accidental misclicks when pressing the Raise key. + +#### macOS / Windows variants + +Because macOS and Windows expect quite different keycodes to produce the same special characters (for example '{' or '|'), there are two different layers, one for each OS. To toggle either macOS (default) and Windows layouts within the RAISE layer, press SPECIAL + W for Windows or SPECIAL + M for macOS. + +### Lower + +The lower layer focuses on numbers, with a numpad-like layout on the right and F-keys in a homerow-centric layout on the left. + +### Special + +The special layer has Reset and EEP Reset keys on the left half, along with media and volume controls. On the right half it has movement keys starting in the IJKL cluster. Additionally, custom macOS Sleep and Lock Screen keys can be found on the right half on this layer. + +## Configuration + +### PERMISSIVE_HOLD + +This option is used because otherwise modtap functions would fail to trigger. This increases reliability for me. + +### USE_SERIAL + +N/A + +### EE_HANDS + +Prepared for EEPROM settings and different keymaps depending on USB port connected, but default master side remains left regardless. + +## Building + +Clean the build environment: + +```shell +make clean +``` + +Build and flash left side: + +```shell +make lets_split/rev2:mekberg:avrdude-split-left +``` + +Then do the same for the right side: + +```shell +make lets_split/rev2:mekberg:avrdude-split-right +``` diff --git a/keyboards/lets_split/keymaps/mekberg/config.h b/keyboards/lets_split/keymaps/mekberg/config.h new file mode 100644 index 0000000000..5523ecb5a3 --- /dev/null +++ b/keyboards/lets_split/keymaps/mekberg/config.h @@ -0,0 +1,34 @@ +/* +This is the c configuration file for the keymap + +Copyright 2012 Jun Wako <wakojun@gmail.com> +Copyright 2015 Jack Humbert + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +#pragma once + +// Define some configuration for modtap behavior +// #define TAPPING_TERM 150 +#define PERMISSIVE_HOLD + +/* Use I2C or Serial, not both */ +#define USE_SERIAL +// #define USE_I2C + +/* Select hand configuration */ +//#define MASTER_LEFT +// #define MASTER_RIGHT +#define EE_HANDS diff --git a/keyboards/lets_split/keymaps/mekberg/keymap.c b/keyboards/lets_split/keymaps/mekberg/keymap.c new file mode 100644 index 0000000000..e530623f1d --- /dev/null +++ b/keyboards/lets_split/keymaps/mekberg/keymap.c @@ -0,0 +1,228 @@ +#include QMK_KEYBOARD_H + +/* +Let's Split physical layout +1u == 8chars +* == Homing keys + LEFT RIGHT + ,-----------------------------------------------------. ,-----------------------------------------------------. + | | | | | | | | | | | | | | + |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + | | | | | * | | | | * | | | | | + |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + | | | | | | | | | | | | | | + |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + | | | | | | | | | | | | | | + `-----------------------------------------------------´ `-----------------------------------------------------' +*/ + +// Layers +enum layer_names { + _DEFAULT, + _DEFAULT_MAC, + _DEFAULT_WIN, + _RAISE_MAC, + _RAISE_WIN, + _LOWER, + _SPECIAL, +}; + +#define TO_MAC TO(_DEFAULT) +#define TO_WIN TO(_DEFAULT_WIN) + +#define RAISE_M MO(_RAISE_MAC) +#define RAISE_W MO(_RAISE_WIN) +#define LOWER MO(_LOWER) +#define SPECIAL MO(_SPECIAL) + +// Modifiers +#define SFTENT KC_SFTENT // Enter => Shift when held +#define CTLTAB LCTL_T(KC_TAB) // Tab => Ctrl when held + +// ISO keycodes with Swedish layout names +#define SE_PLUS KC_MINS // + +#define SE_QSTM S(SE_PLUS) // Question mark +#define SE_TCK KC_EQL // Fronttick (´) +#define SE_BTCK S(SE_TCK) // Backtick (`) +#define SE_UML KC_RBRC // Umlaut (¨) +#define SE_TAK S(SE_UML) // Caret (^) +#define SE_TILD RALT(SE_UML) // Tilde (~) +#define SE_QUT KC_NUHS // Singlequote (') +#define SE_DQUT S(KC_2) // Doublequote (") +#define SE_AST S(SE_QUT) // Asterisk +#define SE_AUML KC_QUOT // Ä +#define SE_ARNG KC_LBRC // Å +#define SE_OUML KC_SCLN // Ö +#define SE_LT KC_NUBS // < +#define SE_GT S(SE_LT) // > +#define SE_DASH KC_SLSH // - +#define SE_USCR S(SE_DASH) // _ +#define SE_AT RALT(KC_2) // @ +#define SE_EXCL S(KC_1) // ! +#define SE_HASH S(KC_3) // # +#define SE_USD RALT(KC_4) // $ +#define SE_PCNT S(KC_5) // % +#define SE_AMP S(KC_6) // & +#define SE_EQLS S(KC_0) // = + +// Apple-specific layout keys +#define AP_SLS S(KC_7) // / +#define AP_PIPE LALT(KC_7) // | +#define AP_BSLS A(AP_SLS) // Backslash +#define AP_LCBR A(AP_LPAR) // { +#define AP_RCBR A(AP_RPAR) // } +#define AP_LBR A(KC_8) // [ +#define AP_RBR A(KC_9) // ] +#define AP_LPAR S(KC_8) // ( +#define AP_RPAR S(KC_9) // ) + +// Windows-specific layout keys +#define MS_SLS S(KC_7) // / +#define MS_PIPE RALT(SE_LT) // | +#define MS_BSLS RALT(SE_PLUS) // Backslash +#define MS_LCBR RALT(KC_7) // { +#define MS_RCBR RALT(KC_0) // } +#define MS_LBR RALT(KC_8) // [ +#define MS_RBR RALT(KC_9) // ] +#define MS_LPAR S(KC_8) // ( +#define MS_RPAR S(KC_9) // ) + +// My common shortcuts +#define MY_PREV KC_MRWD // Media: Previous +#define MY_NEXT KC_MFFD // Media: Next +#define MY_PLAY KC_MPLY // Media: Play/Pause +#define MY_LOCK C(A(KC_L)) // Mac: Lock + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* +DEFAULT + Main layout for alphas and modifiers + Tab => Ctrl when held + Esc => MOVEMENT layer when held + Enter => Shift when held + LEFT RIGHT + ,-----------------------------------------------------. ,-----------------------------------------------------. + | Esc | Q | W | E | R | T | | Y | U | I | O | P | Å | + |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + |Ctrl/Tab| A | S | D | F *| G | | H |* J | K | L | Ö | Ä | + |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + | Shift | Z | X | C | V | B | | N | M | , | . | - | Enter | + |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + | SPECIAL| Ctrl | Alt | Cmd | LOWER | Space | | Backspc| RAISE | Left | Down | Up | Right | + `-----------------------------------------------------´ `-----------------------------------------------------' +*/ +[_DEFAULT] = LAYOUT_ortho_4x12( + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, SE_ARNG, + CTLTAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, SE_OUML, SE_AUML, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, SE_DASH, SFTENT, + SPECIAL, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_BSPC, RAISE_M, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT +), + +/* +DEFAULT - Windows + LEFT RIGHT + ,-----------------------------------------------------. ,-----------------------------------------------------. + | | | | | | | | | | | | | | + |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + | | | | | * | | | | * | | | | | + |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + | | | | | | | | | | | | | | + |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + | | | | | | | | | RAISE | | | | | + `-----------------------------------------------------´ `-----------------------------------------------------' +*/ +[_DEFAULT_WIN] = LAYOUT_ortho_4x12( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, RAISE_W, _______, _______, _______, _______ +), + +/* +RAISE - Mac + This layer focuses on symbols and special characters. + + LEFT RIGHT + ,-----------------------------------------------------. ,-----------------------------------------------------. + | | ! | ? | { | } | & | | ^ | | | ` | ´ | | Del | + |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + | | # | $ | ( | ) *| " | | ~ |* / | \ | ¨ | | | + |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + | | @ | % | [ | ] | ' | | | < | > | | | | + |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + | | | | | | | | |XXXXXXXX| | | | | + `-----------------------------------------------------´ `-----------------------------------------------------' +*/ +[_RAISE_MAC] = LAYOUT_ortho_4x12( + _______, SE_EXCL, SE_QSTM, AP_LCBR, AP_RCBR, SE_AMP, SE_TAK, AP_PIPE, SE_BTCK, SE_TCK, _______, KC_DEL, + _______, SE_HASH, SE_USD, AP_LPAR, AP_RPAR, SE_DQUT, SE_TILD, AP_SLS, AP_BSLS, SE_UML, _______, _______, + _______, SE_AT, SE_PCNT, AP_LBR, AP_RBR, SE_QUT, _______, SE_LT, SE_GT, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX +), + +/* +RAISE - Windows + This layer focuses on symbols and special characters. + + LEFT RIGHT + ,-----------------------------------------------------. ,-----------------------------------------------------. + | | ! | ? | { | } | & | | ^ | | | ` | ´ | | Del | + |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + | | # | $ | ( | ) *| " | | ~ |* / | \ | ¨ | | | + |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + | | @ | % | [ | ] | ' | | | < | > | | | | + |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + | | | | | | | | |XXXXXXXX| | | | | + `-----------------------------------------------------´ `-----------------------------------------------------' +*/ +[_RAISE_WIN] = LAYOUT_ortho_4x12( + _______, SE_EXCL, SE_QSTM, MS_LCBR, MS_RCBR, SE_AMP, SE_TAK, MS_PIPE, SE_BTCK, SE_TCK, _______, KC_DEL, + _______, SE_HASH, SE_USD, MS_LPAR, MS_RPAR, SE_DQUT, SE_TILD, MS_SLS, MS_BSLS, SE_UML, _______, _______, + _______, SE_AT, SE_PCNT, MS_LBR, MS_RBR, SE_QUT, _______, SE_LT, SE_GT, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX +), + +/* +LOWER + This layer focuses on numbers and math. + LEFT RIGHT + ,-----------------------------------------------------. ,-----------------------------------------------------. + | | F1 | F2 | F3 | F4 | | | * | 7 | 8 | 9 | - | Del | + |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + | | F5 | F6 | F7 | F8 *| | | / |* 4 | 5 | 6 | + | | + |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + | | F9 | F10 | F11 | F12 | | | / | 1 | 2 | 3 | = | | + |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + | | | | |XXXXXXXX| | | | | 0 | . | | | + `-----------------------------------------------------´ `-----------------------------------------------------' +*/ +[_LOWER] = LAYOUT_ortho_4x12( + _______, KC_F1, KC_F2, KC_F3, KC_F4, _______, SE_AST, KC_7, KC_8, KC_9, SE_DASH, KC_DEL, + _______, KC_F5, KC_F6, KC_F7, KC_F8, _______, AP_SLS, KC_4, KC_5, KC_6, SE_PLUS, _______, + _______, KC_F9, KC_F10, KC_F11, KC_F12, _______, MS_SLS, KC_1, KC_2, KC_3, SE_EQLS, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_0, KC_DOT, _______, _______ +), + +/* +SPECIAL + This layer focuses on special functions, media controls and movement keys. + LEFT RIGHT + ,-----------------------------------------------------. ,-----------------------------------------------------. + | Reset | | WIN | VolUp | | | | Ins | Home | Up | End | PgUp | Del | + |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + |EEPReset| | Prev | VolDn | Next *| | | |* Left | Down | Right | PgDn | | + |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + | | | | Mute | | | | Lock | MAC | | | | | + |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + |XXXXXXXX| | | | | Play | | | | | | | Sleep | + `-----------------------------------------------------´ `-----------------------------------------------------' +*/ +[_SPECIAL] = LAYOUT_ortho_4x12( + RESET, _______, TO_WIN, KC_VOLU, _______, _______, KC_INS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_DEL, + EEP_RST, _______, MY_PREV, KC_VOLD, MY_NEXT, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, + _______, _______, _______, KC_MUTE, _______, _______, MY_LOCK, TO_MAC, _______, _______, _______, _______, + _______, _______, _______, _______, _______, MY_PLAY, _______, _______, _______, _______, _______, KC_SLEP +) + +}; |