From 8f69983c58e7c8025d55ccdb31bcf570158f5433 Mon Sep 17 00:00:00 2001 From: Olivier Date: Tue, 24 Mar 2020 01:51:49 +0100 Subject: [PATCH] [Keymap] Minidox Bepo layout (#8515) * [Keymap] Minidox Bepo layout Todo : Lower Adjust Update Lower E and Lower S on schema * Added config.h * Code review, update config.h Co-Authored-By: Ryan Co-authored-by: dolie Co-authored-by: Ryan --- keyboards/minidox/keymaps/bepo/config.h | 6 ++ keyboards/minidox/keymaps/bepo/keymap.c | 109 +++++++++++++++++++++++ keyboards/minidox/keymaps/bepo/readme.md | 31 +++++++ 3 files changed, 146 insertions(+) create mode 100644 keyboards/minidox/keymaps/bepo/config.h create mode 100644 keyboards/minidox/keymaps/bepo/keymap.c create mode 100644 keyboards/minidox/keymaps/bepo/readme.md diff --git a/keyboards/minidox/keymaps/bepo/config.h b/keyboards/minidox/keymaps/bepo/config.h new file mode 100644 index 0000000000..7338c24c68 --- /dev/null +++ b/keyboards/minidox/keymaps/bepo/config.h @@ -0,0 +1,6 @@ +#pragma once + +#define USE_SERIAL + +#define EE_HANDS +#define IGNORE_MOD_TAP_INTERRUPT diff --git a/keyboards/minidox/keymaps/bepo/keymap.c b/keyboards/minidox/keymaps/bepo/keymap.c new file mode 100644 index 0000000000..95b9ef30c0 --- /dev/null +++ b/keyboards/minidox/keymaps/bepo/keymap.c @@ -0,0 +1,109 @@ +#include QMK_KEYBOARD_H +#include "keymap_bepo.h" + +enum layers { + _BEPO, + _LOWER, + _RAISE, + _ADJUST, +}; + +#define TABLO LT(_LOWER, KC_TAB) +#define ENTRA LT(_RAISE, KC_ENTER) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* BEPO + * + * ,----------------------------------. ,----------------------------------. + * | B | W | P | O | ’ | | ^ | V | D | L | J | + * |------+------+------+------+------| |------+------+------+------+------| + * | A | U | I | E | , | | C | T | S | R | N | + * |------+------+------+------+------| |------+------+------+------+------| + * | Z/GUI| Y/Alt| X/Ctl| ./Sft| K | | M | Q/Sft| G/Ctl| H/Alt| F/GUI| + * `----------------------------------' `----------------------------------' + * ,------.------.------. ,------,------.------. + * | Del | Tab | | | |Enter |Escape| + * | | LOWER| Space| |BckSpc|RAISE | | + * `------'------| | | |------'------' + * | | | | + * `------' `------' + */ +[_BEPO] = LAYOUT( + BP_B, BP_W, BP_P, BP_O, BP_APOS, BP_DCRC, BP_V , BP_D, BP_L, BP_J, + BP_A, BP_U, BP_I, BP_E, BP_COMMA, BP_C, BP_T, BP_S, BP_R, BP_N, + LGUI_T(BP_Z), ALT_T(BP_Y), CTL_T(BP_X), SFT_T(BP_DOT), BP_K, BP_M, SFT_T(BP_Q), CTL_T(BP_G), ALT_T(BP_H), LGUI_T(BP_F), + KC_DEL, TABLO, KC_SPC, KC_BSPC, ENTRA , KC_ESC +), + +/* Lower. + * + * ,----------------------------------. ,----------------------------------. + * | | | É | & | œ | È | | PgUp | Home | Up | End |ScrlUp| + * |------+------+------+------+------| |------+------+------+------+------| + * | æ | Ù | ¨ | € | $ | | PgDn | Left | Down | Right|ScrlDn| + * |------+------+------+------+------| |------+------+------+------+------| + * | À | Alt | Ctl | Shift| Ç | | | Shift| Ctl | Alt | | + * `----------------------------------' `----------------------------------' + * ,------,------,------. ,------,------,------. + * | | | | | | | | + * `------'------| | | |------'------' + * | | | | + * `------' `------' + */ +[_LOWER] = LAYOUT( + ALGR(BP_B), BP_E_ACUTE, ALGR(BP_P), ALGR(BP_O), BP_E_GRAVE, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_MS_WH_UP, + ALGR(BP_A), ALGR(BP_U), ALGR(BP_I), ALGR(BP_E), BP_DOLLAR, KC_PGDOWN, KC_LEFT, KC_DOWN, KC_RIGHT, KC_MS_WH_DOWN, + BP_AGRV, KC_LALT, KC_LCTL, KC_LSFT, BP_CCED, _______, KC_LSFT, KC_LCTL, KC_LALT, _______, + _______, _______, _______, _______, _______, _______ +), + +/* Raise + * + * ,----------------------------------. ,----------------------------------. + * | " | < | > | ( | ) | | @ | + | - | / | * | + * |------+------+------+------+------| |------+------+------+------+------| + * | ` | { | } | [ | ] | | ~ | = | % | \ | # | + * |------+------+------+------+------| |------+------+------+------+------| + * | | | Alt | Ctl | Shift| ' | | | Shift| Ctl | Alt | & | + * `----------------------------------' `----------------------------------' + * ,------,------,------. ,------,------,------. + * | | | | | | | | + * `------'------| _ | | |------'------' + * | | | | + * `------' `------' + */ +[_RAISE] = LAYOUT( + BP_DQOT, ALGR(BP_LGIL), ALGR(BP_RGIL), BP_LPRN, BP_RPRN, BP_AT, BP_PLUS, BP_MINUS, BP_SLASH, BP_ASTR, + S(BP_PERCENT), ALGR(BP_Y), ALGR(BP_X), ALGR(BP_LPRN), ALGR(BP_RPRN), ALGR(BP_K), BP_EQUAL, BP_PERCENT, ALGR(BP_A_GRAVE), S(BP_DOLLAR), + ALGR(BP_B), KC_LALT, KC_LCTL, KC_LSFT, ALGR(BP_COMM), _______, KC_LSFT, KC_LCTL, KC_LALT, ALGR(BP_P), + _______, _______, ALGR(KC_SPC), _______, _______, _______ +), + +/* Adjust (Lower + Raise) + * (GUI, ALT, Ctrl, Shft ONLY on left-hand home row) + * + * ,----------------------------------. ,----------------------------------. + * | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | + * |------+------+------+------+------| |------+------+------+------+------| + * | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | + * |------+------+------+------+------| |------+------+------+------+------| + * | F11 | Alt | Ctl | Shift| | | | Shift| Ctl | Alt | F12 | + * `----------------------------------' `----------------------------------' + * ,------,------,------. ,------,------,------. + * | | | | | | | | + * `------'------| | | |------'------' + * | | | | + * `------' `------' + */ +[_ADJUST] = LAYOUT( + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, + S(BP_DQOT), S(BP_LGIL), S(BP_RGIL), S(BP_LPRN), S(BP_RPRN), S(BP_AT), S(BP_PLUS), S(BP_MINUS), S(BP_SLASH), S(BP_ASTR), + KC_F11, KC_LALT, KC_LCTL, KC_LSFT, _______, _______, KC_LSFT, KC_LCTL, KC_LALT, KC_F12 , + _______, _______, _______, _______, _______, _______ +) +}; + +layer_state_t layer_state_set_user(layer_state_t state) { + return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); +} diff --git a/keyboards/minidox/keymaps/bepo/readme.md b/keyboards/minidox/keymaps/bepo/readme.md new file mode 100644 index 0000000000..f928c94471 --- /dev/null +++ b/keyboards/minidox/keymaps/bepo/readme.md @@ -0,0 +1,31 @@ +# MiniDox Bepo + +As the minidox has a restricted number of keys as compared to regular keyboards, some adjustments were made. +These adjustments allow for improved ergonomics when typing English and programming languages (in particular javascript). + +>Keys have been grouped and rearranged to meet the needs of principals programming usages. Most used groups are placed at the opposite of thumb layout-activation key, not to seek the same hand too much: + 1. **Arrows/Navigation:** most used with `2.` after standard characters. To navigate comfortably during a long time, the group is placed at the opposite of the thumb-activated layout key. + 2. **Programming blocks characters:** most used with `1.` after standard characters. *Group placed at the opposite of the thumb-activated layout key*. + 3. **Operators:** less used than navigation. *Same side of the thumb-activated layout key*. + 4. **French special characters:** to keep basic characters on main layout and because they are less used in programming and english, french special characters have been moved to a specific layout, counter to Bepo's original main layout. *Same side of the thumb-activated layout key.* + +*Here is a list of other ergonomic choices :* + +- `Alt` both sides (instead of `AltGr`), as special characters are now handled by layouts, and to comfortably get all shortcuts with both hands (e.g. `alt/tab`...). +- Numbers on home row, and Function keys on corresponding upper row. +- Greater/less-than-sign in place of `«` `»`, for easier programming, and because the majority of OS and softwares replace `"` with `«` `»`. +- Mirror `&` and `|` on little finger, lower row, raise layout (`raiser + &` on little finger is more handy than `raiser + &` on index finger). +- `’/?` in place of `È` to keep `M` on the right hand side. +- Better reachability for `W` `Z` `~` `backtick`... + +## Firmware : +[Recent bepo firmware](https://bepo.fr/wiki/Accueil) `1.1rc2` switched generic apostrophe and typographic one. +As the majority of OS and softwares replace **`'`** with **`’`**, I personnaly do prefer 2008 bepo firmware which keeps generic apostrophe on main layout. In fact, the apostrophe get replaced in text editors, but not in the IDEs while programming. +Or you also can [switch them by following those instructions.](https://bepo.fr/wiki/Apostrophe) + +## Layout : +![Minidox - Bepo custom layout by dolie](https://user-images.githubusercontent.com/18349922/77227968-f42d9980-6b7b-11ea-9a11-58b1f47842e9.png) + +#### N.B. +I have been using and fine tuned this layout for about a year, and I really enjoy it. 🙂 +