From 050472a4d07d07c1d9ae17d2fd26d44e9d95d950 Mon Sep 17 00:00:00 2001 From: Eric Gebhart Date: Sat, 12 Nov 2022 00:09:41 +0100 Subject: Eric Gebhart user space and keymaps (#17487) Co-authored-by: Drashna Jaelre --- users/ericgebhart/altlocal_keys.c | 94 -- users/ericgebhart/altlocal_keys.h | 36 - users/ericgebhart/base_layers/accents.h | 90 ++ users/ericgebhart/base_layers/alt.h | 150 ++ users/ericgebhart/base_layers/base_layers.h | 58 + users/ericgebhart/base_layers/beakl.h | 158 ++ users/ericgebhart/base_layers/bepo.h | 114 ++ users/ericgebhart/base_layers/carpalx.h | 46 + users/ericgebhart/base_layers/dvorak.h | 73 + users/ericgebhart/base_layers/gap.h | 67 + users/ericgebhart/base_layers/hands_down.h | 147 ++ users/ericgebhart/base_layers/keymaps.txt | 300 ++++ users/ericgebhart/base_layers/maks.h | 61 + users/ericgebhart/base_layers/qwerty.h | 69 + users/ericgebhart/base_layers/toprows.h | 56 + users/ericgebhart/caps_word.c | 81 - users/ericgebhart/caps_word.h | 35 - users/ericgebhart/combos.def | 10 - users/ericgebhart/config.h | 275 +++- users/ericgebhart/core_keys.h | 280 ---- users/ericgebhart/core_keysets.h | 345 ----- users/ericgebhart/defs/accented_keys.def | 101 ++ users/ericgebhart/defs/alt_shift.def | 6 + users/ericgebhart/defs/altlocal_keys.def | 208 +++ users/ericgebhart/defs/combos.def | 139 ++ users/ericgebhart/defs/custom_keys.def | 86 ++ users/ericgebhart/defs/encoders.def | 65 + users/ericgebhart/defs/key_overrides.def | 23 + users/ericgebhart/defs/mod_lock.def | 19 + users/ericgebhart/defs/not_dead.def | 19 + users/ericgebhart/defs/nshot.def | 45 + users/ericgebhart/defs/oneshot.def | 17 + users/ericgebhart/defs/send_string.def | 7 + users/ericgebhart/defs/smart_lock.def | 123 ++ users/ericgebhart/defs/swapper.def | 3 + users/ericgebhart/defs/tap_hold.def | 68 + users/ericgebhart/defs/unicode.def | 5 + users/ericgebhart/edge_keys.h | 238 --- users/ericgebhart/ericgebhart.c | 8 +- users/ericgebhart/ericgebhart.h | 52 +- users/ericgebhart/extensions/accented_keys.c | 50 + users/ericgebhart/extensions/accented_keys.h | 19 + users/ericgebhart/extensions/alt_shift.c | 99 ++ users/ericgebhart/extensions/altlocal_keys.c | 82 + users/ericgebhart/extensions/altlocal_keys.h | 56 + users/ericgebhart/extensions/console_key_logger.c | 38 + users/ericgebhart/extensions/console_key_logger.h | 19 + users/ericgebhart/extensions/encoders.c | 83 + users/ericgebhart/extensions/encoders.h | 46 + users/ericgebhart/extensions/extensions.c | 91 ++ users/ericgebhart/extensions/extensions.h | 22 + users/ericgebhart/extensions/key_overrides.h | 53 + users/ericgebhart/extensions/keycodes.h | 523 +++++++ users/ericgebhart/extensions/keymap_combo.h | 139 ++ users/ericgebhart/extensions/mod_lock.c | 81 + users/ericgebhart/extensions/mod_lock.h | 39 + users/ericgebhart/extensions/not_dead.c | 36 + users/ericgebhart/extensions/nshot_mod.c | 154 ++ users/ericgebhart/extensions/nshot_mod.h | 45 + users/ericgebhart/extensions/oneshot.c | 217 +++ users/ericgebhart/extensions/oneshot.h | 37 + users/ericgebhart/extensions/process_locales.h | 29 + users/ericgebhart/extensions/process_nshot.h | 21 + users/ericgebhart/extensions/process_smart_lock.h | 19 + users/ericgebhart/extensions/quick_tap.c | 37 + users/ericgebhart/extensions/send_string.c | 40 + users/ericgebhart/extensions/smart_lock.c | 117 ++ users/ericgebhart/extensions/smart_lock.h | 103 ++ users/ericgebhart/extensions/swapper.c | 58 + users/ericgebhart/extensions/swapper.h | 37 + users/ericgebhart/extensions/tap_dances.c | 277 ++++ users/ericgebhart/extensions/tap_dances.h | 19 + users/ericgebhart/extensions/tap_hold.c | 165 ++ users/ericgebhart/extensions/tap_hold.h | 20 + users/ericgebhart/extensions/unicode.c | 34 + users/ericgebhart/extensions/unicode.h | 24 + users/ericgebhart/flash-ergodox | 1 - users/ericgebhart/keyboards/keyboards.h | 115 ++ users/ericgebhart/keyboards/layouts.h | 771 ++++++++++ users/ericgebhart/keymap/keymap.c | 142 ++ users/ericgebhart/keymap/map_accented.h | 26 + users/ericgebhart/keymap/map_alt.h | 69 + users/ericgebhart/keymap/map_beakl.h | 48 + users/ericgebhart/keymap/map_bepo.h | 40 + users/ericgebhart/keymap/map_carpalx.h | 25 + users/ericgebhart/keymap/map_dvorak.h | 31 + users/ericgebhart/keymap/map_funcs.h | 127 ++ users/ericgebhart/keymap/map_gap.h | 31 + users/ericgebhart/keymap/map_hd.h | 117 ++ users/ericgebhart/keymap/map_keypads.h | 66 + users/ericgebhart/keymap/map_maks.h | 34 + users/ericgebhart/keymap/map_qwerty.h | 25 + users/ericgebhart/keymap/map_symbols.h | 56 + users/ericgebhart/keymap/map_toprows.h | 45 + users/ericgebhart/lang/lang.h | 106 ++ users/ericgebhart/lang/lang_map.h | 78 + users/ericgebhart/lang/locale_layers.h | 27 + users/ericgebhart/lang/locales.c | 60 + users/ericgebhart/lang/locales.h | 42 + users/ericgebhart/layer_names/base_names.h | 173 +++ users/ericgebhart/layer_names/func_names.h | 38 + users/ericgebhart/layer_names/layer_names.h | 75 + users/ericgebhart/layer_names/util_names.h | 59 + users/ericgebhart/layers.h | 677 -------- users/ericgebhart/layers/edge_keys.h | 420 +++++ users/ericgebhart/layers/keypads.h | 236 +++ users/ericgebhart/layers/layers.h | 112 ++ users/ericgebhart/layers/nav.h | 199 +++ users/ericgebhart/layers/symbols.h | 225 +++ users/ericgebhart/layers/thumbs.h | 276 ++++ users/ericgebhart/layers/toprows.h | 80 + users/ericgebhart/layers/utility.h | 125 ++ users/ericgebhart/layouts.h | 720 --------- users/ericgebhart/listen_keylogger.sh | 1 + users/ericgebhart/miryoku_hd_gold_config.h | 325 ++++ users/ericgebhart/mod_layer.h | 178 --- users/ericgebhart/mod_layers/alt_mods.h | 129 ++ users/ericgebhart/mod_layers/hrm_gacs.h | 130 ++ users/ericgebhart/mod_layers/hrm_gacs_miryoku.h | 130 ++ users/ericgebhart/mod_layers/hrm_gasc.h | 130 ++ users/ericgebhart/mod_layers/hrm_sacg.h | 130 ++ users/ericgebhart/mod_layers/hrs_nav.h | 126 ++ users/ericgebhart/mod_layers/mod_layer.h | 155 ++ users/ericgebhart/mod_layers/trns_mods.h | 129 ++ users/ericgebhart/oled/oled_cartes.c | 325 ++++ users/ericgebhart/oled/oled_layers.c | 252 +++ users/ericgebhart/oled/oled_stuff.c | 192 +++ users/ericgebhart/oled/oled_stuff.h | 61 + users/ericgebhart/oled_stuff.c | 303 ---- users/ericgebhart/oled_stuff.h | 24 - users/ericgebhart/process_records.c | 216 +-- users/ericgebhart/readme.md | 1708 +++++++++++++++++++-- users/ericgebhart/rules.mk | 69 +- users/ericgebhart/switch-kbd | 74 - users/ericgebhart/tap_dances.c | 269 ---- users/ericgebhart/tap_dances.h | 19 - 136 files changed, 13450 insertions(+), 3828 deletions(-) delete mode 100755 users/ericgebhart/altlocal_keys.c delete mode 100644 users/ericgebhart/altlocal_keys.h create mode 100644 users/ericgebhart/base_layers/accents.h create mode 100644 users/ericgebhart/base_layers/alt.h create mode 100644 users/ericgebhart/base_layers/base_layers.h create mode 100644 users/ericgebhart/base_layers/beakl.h create mode 100644 users/ericgebhart/base_layers/bepo.h create mode 100644 users/ericgebhart/base_layers/carpalx.h create mode 100644 users/ericgebhart/base_layers/dvorak.h create mode 100644 users/ericgebhart/base_layers/gap.h create mode 100644 users/ericgebhart/base_layers/hands_down.h create mode 100644 users/ericgebhart/base_layers/keymaps.txt create mode 100644 users/ericgebhart/base_layers/maks.h create mode 100644 users/ericgebhart/base_layers/qwerty.h create mode 100644 users/ericgebhart/base_layers/toprows.h delete mode 100644 users/ericgebhart/caps_word.c delete mode 100644 users/ericgebhart/caps_word.h delete mode 100644 users/ericgebhart/combos.def mode change 100755 => 100644 users/ericgebhart/config.h delete mode 100755 users/ericgebhart/core_keys.h delete mode 100755 users/ericgebhart/core_keysets.h create mode 100644 users/ericgebhart/defs/accented_keys.def create mode 100644 users/ericgebhart/defs/alt_shift.def create mode 100644 users/ericgebhart/defs/altlocal_keys.def create mode 100644 users/ericgebhart/defs/combos.def create mode 100644 users/ericgebhart/defs/custom_keys.def create mode 100644 users/ericgebhart/defs/encoders.def create mode 100644 users/ericgebhart/defs/key_overrides.def create mode 100644 users/ericgebhart/defs/mod_lock.def create mode 100644 users/ericgebhart/defs/not_dead.def create mode 100644 users/ericgebhart/defs/nshot.def create mode 100644 users/ericgebhart/defs/oneshot.def create mode 100644 users/ericgebhart/defs/send_string.def create mode 100644 users/ericgebhart/defs/smart_lock.def create mode 100644 users/ericgebhart/defs/swapper.def create mode 100644 users/ericgebhart/defs/tap_hold.def create mode 100644 users/ericgebhart/defs/unicode.def delete mode 100644 users/ericgebhart/edge_keys.h create mode 100644 users/ericgebhart/extensions/accented_keys.c create mode 100644 users/ericgebhart/extensions/accented_keys.h create mode 100644 users/ericgebhart/extensions/alt_shift.c create mode 100644 users/ericgebhart/extensions/altlocal_keys.c create mode 100644 users/ericgebhart/extensions/altlocal_keys.h create mode 100644 users/ericgebhart/extensions/console_key_logger.c create mode 100644 users/ericgebhart/extensions/console_key_logger.h create mode 100644 users/ericgebhart/extensions/encoders.c create mode 100644 users/ericgebhart/extensions/encoders.h create mode 100644 users/ericgebhart/extensions/extensions.c create mode 100644 users/ericgebhart/extensions/extensions.h create mode 100644 users/ericgebhart/extensions/key_overrides.h create mode 100755 users/ericgebhart/extensions/keycodes.h create mode 100644 users/ericgebhart/extensions/keymap_combo.h create mode 100644 users/ericgebhart/extensions/mod_lock.c create mode 100644 users/ericgebhart/extensions/mod_lock.h create mode 100644 users/ericgebhart/extensions/not_dead.c create mode 100644 users/ericgebhart/extensions/nshot_mod.c create mode 100644 users/ericgebhart/extensions/nshot_mod.h create mode 100644 users/ericgebhart/extensions/oneshot.c create mode 100644 users/ericgebhart/extensions/oneshot.h create mode 100644 users/ericgebhart/extensions/process_locales.h create mode 100644 users/ericgebhart/extensions/process_nshot.h create mode 100644 users/ericgebhart/extensions/process_smart_lock.h create mode 100644 users/ericgebhart/extensions/quick_tap.c create mode 100644 users/ericgebhart/extensions/send_string.c create mode 100644 users/ericgebhart/extensions/smart_lock.c create mode 100644 users/ericgebhart/extensions/smart_lock.h create mode 100644 users/ericgebhart/extensions/swapper.c create mode 100644 users/ericgebhart/extensions/swapper.h create mode 100755 users/ericgebhart/extensions/tap_dances.c create mode 100755 users/ericgebhart/extensions/tap_dances.h create mode 100644 users/ericgebhart/extensions/tap_hold.c create mode 100644 users/ericgebhart/extensions/tap_hold.h create mode 100644 users/ericgebhart/extensions/unicode.c create mode 100644 users/ericgebhart/extensions/unicode.h delete mode 100755 users/ericgebhart/flash-ergodox create mode 100644 users/ericgebhart/keyboards/keyboards.h create mode 100644 users/ericgebhart/keyboards/layouts.h create mode 100644 users/ericgebhart/keymap/keymap.c create mode 100644 users/ericgebhart/keymap/map_accented.h create mode 100644 users/ericgebhart/keymap/map_alt.h create mode 100644 users/ericgebhart/keymap/map_beakl.h create mode 100644 users/ericgebhart/keymap/map_bepo.h create mode 100644 users/ericgebhart/keymap/map_carpalx.h create mode 100644 users/ericgebhart/keymap/map_dvorak.h create mode 100644 users/ericgebhart/keymap/map_funcs.h create mode 100644 users/ericgebhart/keymap/map_gap.h create mode 100644 users/ericgebhart/keymap/map_hd.h create mode 100644 users/ericgebhart/keymap/map_keypads.h create mode 100644 users/ericgebhart/keymap/map_maks.h create mode 100644 users/ericgebhart/keymap/map_qwerty.h create mode 100644 users/ericgebhart/keymap/map_symbols.h create mode 100644 users/ericgebhart/keymap/map_toprows.h create mode 100644 users/ericgebhart/lang/lang.h create mode 100644 users/ericgebhart/lang/lang_map.h create mode 100644 users/ericgebhart/lang/locale_layers.h create mode 100644 users/ericgebhart/lang/locales.c create mode 100644 users/ericgebhart/lang/locales.h create mode 100644 users/ericgebhart/layer_names/base_names.h create mode 100644 users/ericgebhart/layer_names/func_names.h create mode 100644 users/ericgebhart/layer_names/layer_names.h create mode 100644 users/ericgebhart/layer_names/util_names.h delete mode 100755 users/ericgebhart/layers.h create mode 100644 users/ericgebhart/layers/edge_keys.h create mode 100644 users/ericgebhart/layers/keypads.h create mode 100755 users/ericgebhart/layers/layers.h create mode 100644 users/ericgebhart/layers/nav.h create mode 100644 users/ericgebhart/layers/symbols.h create mode 100644 users/ericgebhart/layers/thumbs.h create mode 100644 users/ericgebhart/layers/toprows.h create mode 100644 users/ericgebhart/layers/utility.h delete mode 100644 users/ericgebhart/layouts.h create mode 100755 users/ericgebhart/listen_keylogger.sh create mode 100644 users/ericgebhart/miryoku_hd_gold_config.h delete mode 100644 users/ericgebhart/mod_layer.h create mode 100644 users/ericgebhart/mod_layers/alt_mods.h create mode 100644 users/ericgebhart/mod_layers/hrm_gacs.h create mode 100644 users/ericgebhart/mod_layers/hrm_gacs_miryoku.h create mode 100644 users/ericgebhart/mod_layers/hrm_gasc.h create mode 100644 users/ericgebhart/mod_layers/hrm_sacg.h create mode 100644 users/ericgebhart/mod_layers/hrs_nav.h create mode 100644 users/ericgebhart/mod_layers/mod_layer.h create mode 100644 users/ericgebhart/mod_layers/trns_mods.h create mode 100644 users/ericgebhart/oled/oled_cartes.c create mode 100644 users/ericgebhart/oled/oled_layers.c create mode 100755 users/ericgebhart/oled/oled_stuff.c create mode 100755 users/ericgebhart/oled/oled_stuff.h delete mode 100755 users/ericgebhart/oled_stuff.c delete mode 100755 users/ericgebhart/oled_stuff.h delete mode 100755 users/ericgebhart/switch-kbd delete mode 100755 users/ericgebhart/tap_dances.c delete mode 100755 users/ericgebhart/tap_dances.h (limited to 'users') diff --git a/users/ericgebhart/altlocal_keys.c b/users/ericgebhart/altlocal_keys.c deleted file mode 100755 index 285041b418..0000000000 --- a/users/ericgebhart/altlocal_keys.c +++ /dev/null @@ -1,94 +0,0 @@ -/* - Copyright 2018 Eric Gebhart - - 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 . -*/ - -#include "ericgebhart.h" -#include "altlocal_keys.h" - -#include "keymap_bepo.h" - -// These are the keys for dvorak on bepo. column one is the keycode and mods for -// the unshifted key, the second column is the keycode and mods for the shifted key. -// GR is Good Range. It subtracts SAFE_RANGE from the keycode so we can make a -// reasnably sized array without difficulties. The macro is for the constant declarations -// the function is for when we use it. -const uint16_t key_translations[][2][2] = { - [GR(DB_1)] = {{BP_DQUO, MOD_LSFT}, {BP_DCIR, MOD_LSFT}}, - [GR(DB_2)] = {{BP_LDAQ, MOD_LSFT}, {BP_AT, MOD_NONE}}, - [GR(DB_3)] = {{BP_RDAQ, MOD_LSFT}, {BP_DLR, MOD_LSFT}}, - [GR(DB_4)] = {{BP_LPRN, MOD_LSFT}, {BP_DLR, MOD_NONE}}, - [GR(DB_5)] = {{BP_RPRN, MOD_LSFT}, {BP_PERC, MOD_NONE}}, - [GR(DB_6)] = {{BP_AT, MOD_LSFT}, {BP_AT, MOD_BIT(KC_RALT)}}, - [GR(DB_7)] = {{BP_PLUS, MOD_LSFT}, {BP_P, MOD_BIT(KC_RALT)}}, - [GR(DB_8)] = {{BP_MINS, MOD_LSFT}, {BP_ASTR, MOD_NONE}}, - [GR(DB_9)] = {{BP_SLSH, MOD_LSFT}, {BP_LPRN, MOD_NONE}}, - [GR(DB_0)] = {{BP_ASTR, MOD_LSFT}, {BP_RPRN, MOD_NONE}}, - [GR(DB_GRV)] = {{BP_PERC, MOD_LSFT}, {BP_K, MOD_BIT(KC_RALT)}}, - [GR(DB_SCOLON)] = {{BP_COMM, MOD_LSFT}, {BP_DOT, MOD_LSFT}}, - [GR(DB_SLASH)] = {{BP_SLSH, MOD_NONE}, {BP_QUOT, MOD_LSFT}}, - [GR(DB_BACKSLASH)] = {{BP_AGRV, MOD_BIT(KC_RALT)}, {BP_B, MOD_BIT(KC_RALT)}}, - [GR(DB_EQL)] = {{BP_EQL, MOD_NONE}, {BP_PLUS, MOD_NONE}}, - [GR(DB_COMM)] = {{BP_COMM, MOD_NONE}, {BP_LDAQ, MOD_BIT(KC_RALT)}}, - [GR(DB_DOT)] = {{BP_DOT, MOD_NONE}, {BP_RDAQ, MOD_BIT(KC_RALT)}}, - [GR(DB_QUOT)] = {{BP_QUOT, MOD_NONE}, {BP_DQUO, MOD_NONE}}, - [GR(DB_MINUS)] = {{BP_MINS, MOD_NONE}, {KC_SPC, MOD_BIT(KC_RALT)}}, - [GR(DB_LPRN)] = {{BP_LPRN, MOD_NONE}, {BP_LPRN, MOD_BIT(KC_RALT)}}, - [GR(DB_RPRN)] = {{BP_RPRN, MOD_NONE}, {BP_RPRN, MOD_BIT(KC_RALT)}}, - [GR(DB_LBRC)] = {{BP_Y, MOD_BIT(KC_RALT)}, {BP_LPRN, MOD_BIT(KC_RALT)}}, - [GR(DB_RBRC)] = {{BP_X, MOD_BIT(KC_RALT)}, {BP_RPRN, MOD_BIT(KC_RALT)}}, - // For the symbol layer - [GR(DB_HASH)] = {{BP_DLR, MOD_LSFT}, {BP_DLR, MOD_LSFT}}, - [GR(DB_LCBR)] = {{BP_LPRN, MOD_BIT(KC_RALT)}, {BP_LPRN, MOD_BIT(KC_RALT)}}, - [GR(DB_RCBR)] = {{BP_LPRN, MOD_BIT(KC_RALT)}, {BP_RPRN, MOD_BIT(KC_RALT)}}, - [GR(DB_PIPE)] = {{BP_B, MOD_BIT(KC_RALT)}, {BP_B, MOD_BIT(KC_RALT)}}, - [GR(DB_TILD)] = {{BP_K, MOD_BIT(KC_RALT)}, {BP_K, MOD_BIT(KC_RALT)}}, - [GR(DB_CIRC)] = {{BP_AT, MOD_BIT(KC_RALT)}, {BP_AT, MOD_BIT(KC_RALT)}}, - [GR(DB_LESS)] = {{BP_LDAQ, MOD_BIT(KC_RALT)}, {BP_LDAQ, MOD_BIT(KC_RALT)}}, - [GR(DB_GRTR)] = {{BP_RDAQ, MOD_BIT(KC_RALT)}, {BP_RDAQ, MOD_BIT(KC_RALT)}}, - // Keys for BEAKL on Qwerty - [GR(BQ_COMM)] = {{KC_COMMA, MOD_NONE}, {KC_1, MOD_LSFT}}, - [GR(BQ_DOT)] = {{KC_DOT, MOD_NONE}, {KC_2, MOD_LSFT}}, - [GR(BQ_QUOT)] = {{KC_QUOT, MOD_NONE}, {KC_GRV, MOD_NONE}}, -}; - - -uint8_t gr(uint16_t kc){ - return (kc - SAFE_RANGE); -} -// send the right keycode for the right mod. -// remove the mods we are taking care of, -// send our keycodes then restore them. -// all so we can make dvorak keys from bepo keycodes. -void send_keycode(uint16_t kc){ - uint8_t tmp_mods = get_mods(); - bool is_shifted = ( tmp_mods & (MOD_BIT(KC_LSFT)|MOD_BIT(KC_RSFT)) ); - //uint8_t key[2][2] = key_translations[GR(kc)]; - // need to turn of the shift if it is on. - unregister_mods((MOD_BIT(KC_LSFT)|MOD_BIT(KC_RSFT))); - if(is_shifted){ - register_mods(SHIFTED_MODS(kc)); - register_code(SHIFTED_KEY(kc)); - unregister_code(SHIFTED_KEY(kc)); - unregister_mods(SHIFTED_MODS(kc)); - } else{ - register_mods(UNSHIFTED_MODS(kc)); - register_code(UNSHIFTED_KEY(kc)); - unregister_code(UNSHIFTED_KEY(kc)); - unregister_mods(UNSHIFTED_MODS(kc)); - } - clear_mods(); - register_mods(tmp_mods); -} diff --git a/users/ericgebhart/altlocal_keys.h b/users/ericgebhart/altlocal_keys.h deleted file mode 100644 index b7fa977b92..0000000000 --- a/users/ericgebhart/altlocal_keys.h +++ /dev/null @@ -1,36 +0,0 @@ -#pragma once -/* - Copyright 2018 Eric Gebhart - - 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 . -*/ - -// for the creation of dvorak keys on an Bepo keyboard at the OS layer. -// so we can create an array of reasonable size -// for our translation keys. We have to create a -// good range of numbers -#define GR(x) (x-SAFE_RANGE) - -// void tap(uint16_t keycode){ register_code(keycode); unregister_code(keycode); }; - -uint8_t gr(uint16_t); -void send_keycode(uint16_t); - -#define MOD_NONE 0x00 - -// indexs for the keycode translation table. -#define UNSHIFTED_KEY(key) key_translations[gr(key)][0][0] -#define UNSHIFTED_MODS(key) key_translations[gr(key)][0][1] -#define SHIFTED_KEY(key) key_translations[gr(key)][1][0] -#define SHIFTED_MODS(key) key_translations[gr(key)][1][1] diff --git a/users/ericgebhart/base_layers/accents.h b/users/ericgebhart/base_layers/accents.h new file mode 100644 index 0000000000..ad575da65c --- /dev/null +++ b/users/ericgebhart/base_layers/accents.h @@ -0,0 +1,90 @@ +#pragma once +/* + Copyright 2018-2022 Eric Gebhart + + 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 . +*/ + +// probably best to have e and é on different fingers. + +// doesnt work, oled displays garbage +/* #define CARTE_ACCENTED \ */ +/* carte_de_map(" æœêùì ¿ïüöë ", \ */ +/* " àôèéî ûçñß^", \ */ +/* " âöíúí ") */ + +// need to figure out a better way to display these on the oled. +#define CARTE_ACCENTED \ + carte_de_map(" aoeui ?iuoe ", \ + " aoeei ucnS^", \ + " aoiúi ") + +#define ___ACCENTED___ \ + LANG_MAP(_AE, _OE, _ECIR, _UGRV, _IGRV, _IQUE, _IIAE, _UIAE, _OIAE, _EIAE, \ + _AGRV, _OCIR, _EGRV, _EACU, _ICIR, _UCIR, _CCED, _NTIL, _SS, _DCIR, \ + _AACU, _ODIA, _IACU, _UACU, _IACU, _SPC, _SPC, _SPC , _SPC, _SPC) + + +// A dead key layer, optimized for Most common, +// western european. +#define CARTE_MORTE \ + carte_de_map(" ˝˘̉ ̛ ˙° ", \ + "/`^´ ¸¨~¤", \ + " ,ˇ. ˛µ¯") + +#define ___MORTE___ \ + LANG_MAP(_, _DACU, _BREV, _HOKA, _, _, _HORN, _DOTA, _RNGA, _, \ + _DSLS, _DGRV, _DCIR, _ACUT, _, _, _CEDL, _DIAE, _DTIL, _CURR, \ + _, _DCMM, _CARN, _DOTB, _, _, _OGON, _DGRK, _MACR, _) + +// Just taking a guess and putting the things I know are most +// used in easy to use places., not sure about ntil and ss, put +// them in their dvorak spots on the home row. + +/* #define CARTE_ACCENTS_MORTE \ */ +/* carte_de_map(" æœêùì ¿`^´ë ", \ */ +/* " àôèéî ¸çñß~", \ */ +/* " âö,úí ¨ˇ° ") */ + +#define CARTE_ACCENTS_MORTE \ + carte_de_map(" aoeui ?`^'e ", \ + " aoeei ,cnS~", \ + " ao,ui \"^o") + +#define ___ACCENTS_MORTE___ \ + LANG_MAP(_AE, _OE, _ECIR, _UGRV, _IGRV, _IQUE, _DGRV, _DCIR, _ACUT, _EIAE, \ + _AGRV, _OCIR, _EGRV, _EACU, _ICIR, _CEDL, _CCED, _NTIL, _SS, _DTIL, \ + _AACU, _OIAE, _DCMM, _UACU, _IACU, _OGON, _DIAE, _CARN, _RNGA, _HORN) + +/* // DEAD layer. */ +/* BP_DCIR // ^ (dead) */ +/* BP_ACUT // ´ (dead) */ +/* BP_DGRV // ` (dead) */ +/* BP_CARN // ˇ (dead) */ +/* BP_DSLS // / (dead) */ +/* BP_BREV // ˘ (dead) */ +/* BP_DIAE // ¨ (dead) */ +/* BP_DTIL // ~ (dead) */ +/* BP_MACR // ¯ (dead) */ +/* BP_CEDL // ¸ (dead) */ +/* BP_RNGA // ° (dead) */ +/* BP_DGRK // µ (dead Greek key) */ +/* BP_OGON // ˛ (dead) */ +/* BP_DACU // ˝ (dead) */ +/* BP_DOTA // ˙ (dead) */ +/* BP_CURR // ¤ (dead) */ +/* BP_HORN // ̛ (dead) */ +/* BP_DCMM // , (dead) */ +/* BP_HOKA // ̉ (dead) */ +/* BP_DOTB // ̣ (dead) */ diff --git a/users/ericgebhart/base_layers/alt.h b/users/ericgebhart/base_layers/alt.h new file mode 100644 index 0000000000..28cf5ab738 --- /dev/null +++ b/users/ericgebhart/base_layers/alt.h @@ -0,0 +1,150 @@ +#pragma once +/* + Copyright 2018-2022 Eric Gebhart + + 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 . +*/ +// e goes on the left thumb +#define CARTE_MALTRON \ + carte_de_map(" qpycb vmuzl", \ + " anisf ctdor", \ + " ;/jg, .wk-x e") + +#define ___MALTRON___ \ + LANG_MAP(_Q, _P, _Y, _C, _B, _V, _M, _U, _Z, _L, \ + _A, _N, _I, _S, _F, _D, _T, _D, _O, _R, \ + TL_SCLN, TL_SLSH, _J, _G, TL_COMM, TL_DOT, _W, _K, TL_MINS, _X) + +#define CARTE_EUCALYN \ + carte_de_map(" /,.fq aoeiu", \ + " zxcvw mrdyp", \ + " gtksn bhjl;") + +#define ___EUCALYN___ \ + LANG_MAP(TL_SLSH, TL_COMM, TL_DOT, _F, _Q, _A, _O, _E, _I, _U, \ + _Z, _X, _C, _V, _W, _M, _R, _D, _Y, _P, \ + _G, _T, _K, _S, _N, _B, _H, _J, _L, TL_SCLN) + + + +// RSTHD +/* j c y f k | z l , u q = */ +/* r s t h d | m n a i o - */ +/* / v g p b | x w . ; ' */ +/* e */ + +// need a thumb cluster for this. +// removed = and -, edge keys if you've got them. +// e goes on left thumb + +#define CARTE_RSTHD \ + carte_de_map(" jcyfk zl,uq", \ + " rsthd mnaio", \ + " /vgpb xw.;' e") + +#define ___RSTHD___ \ + LANG_MAP(_J, _C, _Y, _F, _K, _Z, _L, TL_COMM, _U, _Q, \ + _R, _S, _T, _H, _D, _M, _N, _A, _I, _O, \ + _/, _V, _G, _P, _B, _X, _W, TL_DOT, TL_SCLN, TL_QUOT) + +#define CARTE_HANDS_UP \ + carte_de_map(" fyou, kwclp", \ + " hiea. dtsrn", \ + " bj'z; vmgxq") + +#define ___HANDS_UP___ \ + LANG_MAP(_F, _Y, _O, _U, TL_COMM, _K, _W, _C, _L, _P, \ + _H, _I, _E, _A, TL_DOT , _D, _T, _S, _R, _N, \ + _B, _J, TL_QUOT, _Z, TL_SCLN, _V, _M, _G, _X, _Q) + +#define CARTE_WHITE \ + carte_de_map(" vyd,' jmlu-", \ + " atheb csnoi", \ + " pkgwq xrf.z") + +#define ___WHITE___ \ + LANG_MAP(_V, _Y, _D, TL_COMM, TL_QUOT, _J, _M, _L, _U, _MINS, \ + _A, _T, _H, _E, _B, _C, _S, _N, _O, _I, \ + _P, _K, _G, _W, _Q, _X, _R, _F, TL_DOT, _Z) + + +#define CARTE_ISRT \ + carte_de_map(" yclmk zfu,'", \ + " isrtg pneao", \ + " qvwdj bh/.x") + +#define ___ISRT___ \ + LANG_MAP(_Y, _C, _L, _M, _K, _Z, _F, _U, TL_COMM, TL_QUOT, \ + _I, _S, _R, _T, _G, _P, _N, _E, _A, _O, \ + _Q, _V, _W, _D, _J, _B, _H, TL_SLSH, TL_DOT, _X) + +#define CARTE_SOUL \ + carte_de_map(" qwldp kmuy;", \ + " srtg fneio", \ + " zxcvj bh,./") + +#define ___SOUL___ \ + LANG_MAP(_Q, _W, _L, _D, _P, _K, _M, _U, _Y, TL_SCLN, \ + _A, _S, _R, _T, _G, _F, _N, _E, _I, _O, \ + _Z, _X, _C, _V, _J, _B, _H, TL_COMM, TL_DOT, TL_SLSH) + +#define CARTE_NIRO \ + carte_de_map(" qwudp jfyl;", \ + " asetg hniro", \ + " zxcvb km,./") + +#define ___NIRO___ \ + LANG_MAP(_Q, _W, _U, _D, _P, _J, _F, _Y, _L, TL_SCLN, \ + _A, _S, _E, _T, _G, _H, _N, _I, _R, _O, \ + _Z, _X, _C, _V, _B, _K, _M, TL_COMM, TL_DOT, TL_SLSH) + +#define CARTE_ASSET \ + carte_de_map(" qwjfg ypul;", \ + " asetd hnior", \ + " zxcvb km,./") + +#define ___Asset___ \ + LANG_MAP(_Q, _W, _J, _F, _G, _Y, _P, _U, _L, TL_SCLN, \ + _A, _S, _E, _T, _D, _H, _N, _I, _O, _R, \ + _Z, _X, _C, _V, _B, _K, _M, TL_COMM, TL_DOT, TL_SLSH) + +#define CARTE_WHORF \ + carte_de_map("flhdm vwou,", \ + "srntk gyaei", \ + "xjbzq pc';. ") + +#define ___WHORF___ \ + LANG_MAP(_F, _L, _H, _D, _M, _V, _W, _O, _U, TL_COMM, \ + _S, _R, _N, _T, _K, _G, _Y, _A, _E, _I, \ + _X, _J, _B, _Z, _Q, _P, _C, TL_QUOT, TL_SCLN, TL_DOT ) + +#define CARTE_WHORF6 \ + carte_de_map("vlhkj gwou.", \ + "srntk ydeai", \ + "xqbfz pc',; ") + +#define ___WHORF6___ \ + LANG_MAP(_V, _L, _H, _D, _M, _G, _W, _O, _U, TL_DOT, \ + _S, _R, _N, _T, _K, _Y, _D, _E, _A, _I, \ + _X, _Q, _B, _F, _Z, _P, _C, TL_QUOT, TL_COMM, TL_SCLN ) + +/* rsht/iena */ +/* jfldv @uopq */ +/* zrshtg .iena: */ +/* xcmwk /y,b? */ + +// pine +/* y l r d w j m o u , */ +/* c s n t g p h a e i */ +/* x z q v k b f ' / . */ diff --git a/users/ericgebhart/base_layers/base_layers.h b/users/ericgebhart/base_layers/base_layers.h new file mode 100644 index 0000000000..ee784473fb --- /dev/null +++ b/users/ericgebhart/base_layers/base_layers.h @@ -0,0 +1,58 @@ +#pragma once +/* + Copyright 2018-2022 Eric Gebhart + + 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 . +*/ + +#include "keycodes.h" +#include "lang_map.h" +#include "oled_stuff.h" + + +// an empty template. + +/* #define CARTE_EMPTY \ */ +/* carte_de_map(" ", \ */ +/* " ", \ */ +/* " ") */ +/* */ +/* #define ___EMPTY___ \ */ +/* LANG_MAP(_, _, _, _, _, _, _, _, _, _, \ */ +/* _, _, _, _, _, _, _, _, _, _, \ */ +/* _, _, _, _, _, _, _, _, _, _) */ + + +// dvorak, capewell-dvorak, ahei, and boo. +#include "dvorak.h" +//qwerty, workman, norman, +#include "qwerty.h" +// Colemak, halmak, minimak, etc. +#include "maks.h" +// eucalyn, maltron +#include "alt.h" +// mtgap, ctgap, apt +#include "gap.h" +// some hands down. +#include "hands_down.h" +// some beakls. +#include "beakl.h" +// bepo, optimot, beakl19bis, godox-fr?. +#include "bepo.h" +// some carpalxs. +#include "carpalx.h" +// The symbol, number function rows for all the above. +#include "toprows.h" +// some layers with accents and dead keys. +#include "accents.h" diff --git a/users/ericgebhart/base_layers/beakl.h b/users/ericgebhart/base_layers/beakl.h new file mode 100644 index 0000000000..58b5fa4371 --- /dev/null +++ b/users/ericgebhart/base_layers/beakl.h @@ -0,0 +1,158 @@ +#pragma once +/* + Copyright 2018-2022 Eric Gebhart + + 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 . +*/ +// beakl, balanced effort key layout. +// Beakl 15 and 19 are somewhat more related. +// Beakl-wi is the latest. It feels a little bit more like a system. + + +// Remember the - and ; outside pinky keys. +// Or use the 6 size. +// Both are on the symbol layer too. So you +// wont lose them at least. +// KC_BK_COMM, KC_BK_QUOT, KC_BK_DOT - Beakl->Qwerty +// BP_BK_COMM, BP_BK_QUOT, BP_BK_DOT - Beakl->Bepo +// take care of the different shifted chars. + + +/* BEAKL 27 (main layer): */ +/* // altered shifted pairs: dot = .` comma = ,? dquot = !" */ +/* Alt target is BK2 */ + +/* 32104 76598 */ +/* qhoux gcmrv */ +/* yiea. dstnb */ +/* j",k' wflpz */ + +/* BEAKL 27 (shift layer): */ +/* !@$#% ^(*)& */ +/* QHOUX GCMRV */ +/* YIEA` DSTNB */ +/* J!?K' WFLPZ */ + + +#define CARTE_BEAKL27 \ + carte_de_map(" qhoux gcmrz ", \ + " yiea. dstnb ", \ + " j\",k' wflpv ") + +// Alt target is BK +#define ___BEAKL27___ \ + LANG_MAP(_Q, _H, _O, _U, _X, _G, _C, _M, _R, _Z, \ + _Y, _I, _E, _A, TL_DOT, _D, _S, _T, _N, _B, \ + _J, TL_EXLM, TL_COMM, _K, TL_QUOT, _W, _F, _L, _P, _V) + +/* BEAKL 15 (main layer): */ +// altered shifted pairs: quot = '` comma = ,! dot = .@ +/* 40123 76598 */ +#define CARTE_BEAKL15 \ + carte_de_map(" qhoux gcrfz ", \ + " yiea. dstnb ", \ + " j/,k' wmlpv ") + +// Alt target is BK +#define ___BEAKL15___ \ + LANG_MAP(_Q, _H, _O, _U, _X, _G, _C, _R, _F, _Z, \ + _Y, _I, _E, _A, TL_DOT, _D, _S, _T, _N, _B, \ + _J, _SLSH, TL_COMM, _K, TL_QUOT, _W, _M, _L, _P, _V) + +/* BEAKL 19 */ +// Beakl 19. scores better than 15, better in french also. +// Both are lots better than dvorak or bepo. + +/* same symbols and keypad as 15 */ +/* number row is different */ +/* 32104 76598 */ + +// Alt target is BK +#define CARTE_BEAKL19 \ + carte_de_map(" q.ouj wdnm, ", \ + " haeik gsrtp ", \ + " z'/yx bclfv ") + +#define ___BEAKL19___ \ + LANG_MAP(_Q, _DOT, _O, _U, _J, _W, _D, _N, _M, TL_COMM, \ + _H, _A, _E, _I, _K, _G, _S, _R, _T, _P, \ + _Z, _QUOT, _SLSH, _Y, _X, _B, _C, _L, _F, _V) + +//BEAKL 19bis - original. +// the é and è were simply added for analysis not real use. +// even so, this layout scores well for french, better than +// bepo and mtgap +/* qyouz wdnck */ +/* -hiea, gtrsp; */ +/* èj'é.x vmlfb */ + +// A 3x12 +//BEAKL 19bis mod z. +// French optimised with some english. +// This version rearranges things a little based on fequency. +// Since it needs 3x12, I filled in the corners and removed ;. +// Leaving y where it is. the o and the e might cause sfbs. +// Put é on a different finger from e. +// swap z, e's, add à, ^, and ê, swap ; for -. +// it might be beneficial to swap w and à, as à is much more frequent than w +#define CARTE_BEAKL19bis \ + carte_de_map(" àqyoué wdnck^ ", \ + " ;hiea, gtrsp- ", \ + " zj'è.x vmlfbê ") + +#define ___BEAKL19bis_3x12___ \ + LANG_MAP6( \ + _AGRV, _Q, _Y, _O, _U, _EACU, _W, _D, _N, _C, _K, _DCIR, \ + _SCLN, _H, _I, _E, _A, _COMM, _G, _T, _R, _S, _P, _MINS, \ + _Z, _J, _QUOT, _EGRV, _DOT, _X, _V, _M, _L, _F, _B, _ECIR) + + +// Beakl Wi. This is the most current beakl this size. 18/01/2022. +// Nothing on the 6th outer columns but layer toggle buttons. All 6. +// altered shifted pairs: dot = .` comma = ,~ colon = :; +// i is on the left thumb. +/* ;you- ctrsv */ +/* qheaw gdnmz */ +/* j,.k' bplfx */ +/* i */ + +#define CARTE_BEAKLWI \ + carte_de_map(" ;you- ctrsv ", \ + " qheaw gdnmz ", \ + " j,.k' bplfx i") + +#define ___BEAKLWI___ \ + LANG_MAP(TL_COLN, _Y, _O, _U, _MINS, _C, _T, _R, _S, _V, \ + _Q, _H, _E, _A, _W, _G, _D, _N, _M, _Z, \ + _J, TL_COMM, TL_DOT, _K, _QUOT, _B, _P, _L, _F, _X) + +// Thumbs. +#define ___BEAKLWI_CRKBD_THUMBS___ LT_ESC, LT_I, LT_TAB, LT_ENT, LT_SPC, LT_BSPC + +// My version, loses KC_mins, because it's easier on my symbol layer. +// put I in it's dvorak spot instead of thumbs, move W up to make room for I. +// I'd rather have w and i on different fingers. One domino... + +// beakl-wi - mod iw- + +#define CARTE_BEAKLWIa \ + carte_de_map(" ;youw ctrsv ", \ + " qheai gdnmz ", \ + " j,.k' bplfx ") + +// Alt target is BKW +#define ___BEAKLWIa___ \ + LANG_MAP(TL_COLN, _Y, _O, _U, _W, _C, _T, _R, _S, _V, \ + _Q, _H, _E, _A, _I, _G, _D, _N, _M, _Z, \ + _J, TL_COMM, TL_DOT, _K, _QUOT, _B, _P, _L, _F, _X) diff --git a/users/ericgebhart/base_layers/bepo.h b/users/ericgebhart/base_layers/bepo.h new file mode 100644 index 0000000000..64f56ec9ab --- /dev/null +++ b/users/ericgebhart/base_layers/bepo.h @@ -0,0 +1,114 @@ +#pragma once +/* + Copyright 2018-2022 Eric Gebhart + + 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 . +*/ +// Maps based on BEPO Mostly 3x12 + +// BEAKL 19bis - English with French optimisations. +// Least used letters in french xzykw QJÀ are fairly high. +// XZ are good choices for pushing out, from english and french, +// or using chords in both languages. + +// Note: The percentages came from different sources so do not +// match between languages. +// French +/* Q 0.89 % */ +/* J 0.71 % */ +/* À 0.54 % */ +/*-------------*/ +/* X 0.42 % */ +/* È 0.35 % */ +/* Ê 0.24 % */ +/* Z 0.21 % */ +/* Y 0.19 % */ +/* K 0.16 % */ +/* Ô 0.07 % */ +/* Û 0.05 % */ +/* W 0.04 % */ + +/* Least used letters in english. */ +/* X 0.2902% 1.48 */ +/* Z 0.2722% 1.39 */ +/* J 0.1965% 1.00 */ +/* Q 0.1962% (1) */ + + +// OPtimot by @Pyjam. +/* àjoéb fdl’qxz */ +/* aieu, ptsrn^ç */ +/* êkyè.w gcmhvz */ + +// -- rearranged z, and ç to get 3x12 +#define CARTE_OPTIMOT \ + carte_de_map(" çàjoéb fdl’qx ", \ + " aieu, ptsrn^ ", \ + " êkyè.w gcmhvz ") + +#define ___OPTIMOT_3x12___ \ + LANG_MAP6( \ + _CCED, _AGRV, _J, _O, _EACU, _B, _F, _D, _L, _QUOT, _Q, _X, \ + _TAB, _A, _I, _E, _U, _COMM, _P, _T, _S, _R, _N, _DCIR, \ + _ECIR, _K, _Y, _EGRV, _DOT, _W, _G, _C, _M, _H, _V, _Z) + +// no z or x. combos exist for them. +#define CARTE_OPTIMOT_COMPACT \ + carte_de_map(" àjoéb fdl’q ", \ + " aieu, ptsrn ", \ + " kyè.w gcmhv ") + +#define ___OPTIMOT_3x10___ \ + LANG_MAP6( \ + _AGRV, _J, _O, _EACU, _B, _F, _D, _L, _QUOT, _Q, \ + _A, _I, _E, _U, _COMM, _P, _T, _S, _R, _N, \ + _K, _Y, _EGRV, _DOT, _W, _G, _C, _M, _H, _V,) + +// Maybe Use this for C +//BP_C_CCED = MT(BP_CCED, BP_C) + +// BEPO + +// No quot, à or ç +/* bépoè vdljz */ +/* auie, ctsrn */ +/* myx.k qghfw */ +#define CARTE_BEPOc \ + carte_de_map(" bépoè vdljz", \ + " auie, ctsrn", \ + " myx.k qghfw") + +#define ___BEPOc_3x10___ \ + LANG_MAP( \ + _B, _EACU, _P, _O, _EGRV, _V, _D, _L, _J, _Z, \ + _A, _U, _I, _E, _COMM, _C, _T, _S, _R, _N, \ + _M, _Y, _X, _DOT, _K, _Q, _G, _H, _F, _W) + + +#define CARTE_BEPO \ + carte_de_map(" çbépoè ^vdljz ", \ + " auie, ctsrnm ", \ + " êàyx.k ’qghfw ") + +#define ___BEPO_3x12___ \ + LANG_MAP6(_CCED, _B, _EACU, _P, _O, _EGRV, _DCIR, _V, _D, _L, _J, _Z, \ + _TAB, _A, _U, _I, _E, _COMM, _C, _T, _S, _R, _N, _M, \ + _ECIR, _AGRV, _Y, _X, _DOT, _K, _QUOT, _Q, _G, _H, _F, _W) + +// dont like this one much. +/* #define ___GODOX_3x12___ \ */ +/* LANG_MAP6(___, _AGRV, _B, _EACU, _dot, _mins, _DCIR, _V, _L, _M, _X, _CCED, \ */ +/* ___, _O, _U, _I, _A, _J, _G, _T, _S, _N, _R, _F, \ */ +/* ___, _Q, _Y, _EGRV, _P, _K, _W, _D, _UP, _H, _C, _Z) */ +/* // E goes on left thumb. */ diff --git a/users/ericgebhart/base_layers/carpalx.h b/users/ericgebhart/base_layers/carpalx.h new file mode 100644 index 0000000000..ae2ed708a5 --- /dev/null +++ b/users/ericgebhart/base_layers/carpalx.h @@ -0,0 +1,46 @@ +#pragma once +/* + Copyright 2018-2022 Eric Gebhart + + 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 . +*/ +#define CARTE_CARPALX_QFMLWY \ + carte_de_map(" qfmlw yuobj", \ + " dstnr iaeh;", \ + " zvgcx pk,./") + +#define ___CARPALX_QFMLWY___ \ + LANG_MAP(_Q, _F, _M, _L, _W, _Y, _U, _O, _B, _J, \ + _D, _S, _T, _N, _R, _I, _A, _E, _H, TL_SCLN, \ + _Z, _V, _G, _C, _X, _P, _K, TL_COMM, TL_DOT, TL_SLSH) + +#define CARTE_CARPALX_QFMLWB \ + carte_de_map(" qgmlw byuv;", \ + " dstnr iaeoh", \ + " zxcfj kp,./") + +#define ___CARPALX_QGMLWB___ \ + LANG_MAP(_Q, _G, _M, _L, _W, _B, _Y, _U, _V, TL_SCLN, \ + _D, _S, _T, _N, _R, _I, _A, _E, _O, _H, \ + _Z, _X, _C, _F, _J, _K, _P, TL_COMM, TL_DOT, TL_SLSH) + +#define CARTE_CARPALX_QGMLWY \ + carte_de_map(" qgmlw yfub;", \ + " dstnr iaeoh", \ + " zxcvj kp,./") + +#define ___CARPALX_QGMLWY___ \ + LANG_MAP(_Q, _G, _M, _L, _W, _Y, _F, _U, _B, TL_SCLN, \ + _D, _S, _T, _N, _R, _I, _A, _E, _O, _H, \ + _Z, _X, _C, _V, _J, _K, _P, TL_COMM, TL_DOT, TL_SLSH) diff --git a/users/ericgebhart/base_layers/dvorak.h b/users/ericgebhart/base_layers/dvorak.h new file mode 100644 index 0000000000..8deee2005c --- /dev/null +++ b/users/ericgebhart/base_layers/dvorak.h @@ -0,0 +1,73 @@ +#pragma once +/* + Copyright 2018-2022 Eric Gebhart + + 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 . +*/ + +#define CARTE_DVORAK \ + carte_de_map(" ',.py fgcrl ", \ + " aoeui dhtns ", \ + " ;qjkx bmwvz ") + +#define ___DVORAK___ \ + LANG_MAP(TL_QUOT, TL_COMM, TL_DOT, _P, _Y, _F, _G, _C, _R, _L, \ + _A, _O, _E, _U, _I, _D, _H, _T, _N, _S, \ + TL_SCLN, _Q, _J, _K, _X, _B, _M, _W, _V, _Z) + +#define CARTE_DVORAK_RLC_IU \ + carte_de_map(" ',.py fgrlc ", \ + " aoeiu dhtns ", \ + " ;qjkx bmwvz ") + +#define ___DVORAK_RLC_IU___ \ + LANG_MAP(TL_QUOT, TL_COMM, TL_DOT, _P, _Y, _F, _G, _R, _L, _C, \ + _A, _O, _E, _I, _U, _D, _H, _T, _N, _S, \ + TL_SCLN, _Q, _J, _K, _X, _B, _M, _W, _V, _Z) + +#define CARTE_BOO \ + carte_de_map(" ,.ucv qfdly", \ + " aoesg bntri", \ + " ;x'wz phmkj") + +#define ___BOO___ \ + LANG_MAP( TL_COMM, TL_DOT, _U, _C, _V, _Q, _F, _D, _L, _Y, \ + _A, _O, _E, _S, _G, _B, _N, _T, _R, _I, \ + TL_SCLN, _X, TL_QUOT, _W, _Z, _P, _H, _M, _K, _J) + +#define CARTE_CAPEWELL_DVORAK \ + carte_de_map( " ',.py qfgrk", \ + " oaeiu dhtns", \ + " zxcvj lmwb;") + +#define ___CAPEWELL_DVORAK___ \ + LANG_MAP(TL_QUOT, TL_COMM, TL_DOT, _P, _Y, _Q, _F, _G, _R, _K, \ + _O, _A, _E, _I, _U, _D, _H, _T, _N, _S, \ + _Z, _X, _C, _V, _J, _L, _M, _W, _B, TL_SCLN) + +//ahei - derived from dvorak. +// x moved to left side. j on pinky. +/*;pouyq gdlm/= */ +/* ahei, fstnr- */ +/* j'k.x bcwvz */ + +#define CARTE_AHEI \ + carte_de_map("pouyq gdlm/", \ + "ahei, fstnr", \ + "j'k.x bcwvz") + +#define ___AHEI___ \ +LANG_MAP(_P, _O, _U, _Y, _Q, _G, _D, _L, _M, TL_SLSH, \ + _A, _H, _E, _I, TL_COMM, _F, _S, _T, _N, _R, \ + _J, TL_QUOT, _K, TL_DOT, _X, _B, _C, _W, _V, _Z) diff --git a/users/ericgebhart/base_layers/gap.h b/users/ericgebhart/base_layers/gap.h new file mode 100644 index 0000000000..76310bc6f9 --- /dev/null +++ b/users/ericgebhart/base_layers/gap.h @@ -0,0 +1,67 @@ +#pragma once +/* + Copyright 2018-2022 Eric Gebhart + + 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 . +*/ + +// an alternate I found. +/* Reference: MTGAP */ +/* y p o u - | b d l c k j */ +/* i n e a , | m h t s r v */ +/* ( " ' . _ | ) f w g x */ +/* z */ + +#define CARTE_MTGAP \ + carte_de_map(" ypouj kdlcw", \ + " inea, mhtsr", \ + " qz/.; bfgvx") + +#define ___MTGAP___ \ + LANG_MAP(_Y, _P, _O, _U, _J, _K, _D, _L, _C, _W, \ + _I, _N, _E, _A, TL_COMM, _M, _H, _T, _S, _R, \ + _Q, _Z, TL_SLSH, TL_DOT, TL_SCLN, _B, _F, _G, _V, _X) + +/* //APT v3*/ +/* https://github.com/Apsu/APT */ +#define CARTE_APT \ + carte_de_map(" wgdfb qluoy", \ + " rsthk jneai; ", \ + " xcmpv z,.'/") + +#define ___APT___ \ + LANG_MAP(_W, _G, _D, _F, _B, _Q, _L, _U, _O, _Y, \ + _R, _S, _T, _H, _K, _J, _N, _E, _A, _I, TL_SCLN, \ + _X, _C, _M, _P, _V, _Z, TL_COMM, TL_DOT, TL_QUOT, TL_SLSH) + + +#define CARTE_CTGAP \ + carte_de_map(" vplcf kuoyj", \ + " rntsd 'aeih", \ + " zbmgw x,.;q") + +#define ___CTGAP___ \ + LANG_MAP(_V, _P, _L, _C, _F, _K, _U, _O, _Y, _J, \ + _R, _N, _T, _S, _D, TL_QUOT, _A, _E, _I, _H, \ + _Z, _B, _M, _G, _W, _X, TL_COMM, TL_DOT, TL_SCLN, _Q) + +#define CARTE_CANARY \ + carte_de_map( " wlypb zfou'", \ + " crstg mneia", \ + " qjvd kxh/,.") + +#define ___CANARY___ \ + LANG_MAP(_W, _L, _Y, _P, _B, _Z, _F, _O, _U, TL_QUOT, \ + _C, _R, _S, _T, _G, _M, _N, _E, _I, _A, \ + _Q, _J, _V, _D, _K, _X, _H, TL_SLSH, TL_COMM, TL_DOT) diff --git a/users/ericgebhart/base_layers/hands_down.h b/users/ericgebhart/base_layers/hands_down.h new file mode 100644 index 0000000000..0841a358d2 --- /dev/null +++ b/users/ericgebhart/base_layers/hands_down.h @@ -0,0 +1,147 @@ +#pragma once +/* + Copyright 2018-2022 Eric Gebhart + + 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 . +*/ + +// https://sites.google.com/alanreiser.com/handsdown/home + +// The only 3x12 layout. The rest are 3x10. +#define CARTE_HD_NEU \ + carte_de_map( " wfmpv /.q\"'z", \ + " rsntb ,aeihj", \ + " xcldg -uoykK") + +#define ___HD_NEU___ \ + LANG_MAP(_SML_NAV, _W, _F, _M, _P, _V , TL_SLSH, TL_DOT, _Q, TL_DQUO, TL_QUOT, _Z, \ + _TAB, _R, _S, _N, _T, _B , TL_COMM, _A, _E, _I, _H, _J, \ + _OS_ACCENT, _X, _C, _L, _D, _G , TL_MINS, _U, _O, _Y, _K, _SML_KEYPAD) + + +// modified to fit 3x10. +#define CARTE_HD_NEU_NARROW \ + carte_de_map(" xcldb zuoyq", \ + " rsntg ,aeih", \ + " wfmpv ;./jk") + +#define ___HD_NEU_NARROW___ \ + LANG_MAP(_X, _C, _L, _D, _B, _Z, _U, _O, _Y, _Q, \ + _R, _S, _N, _T, _G, TL_COMM, _A, _E, _I, _H, \ + _W, _F, _M, _P, _V, _SCLN, TL_DOT, TL_SLSH, _J, _K) + + +#define CARTE_HD_REF \ + carte_de_map(" qchpv kyoj/", \ + " rsntg wueia", \ + " xmldb zf',.") + +#define ___HD_REF___ \ + LANG_MAP(_Q, _C, _H, _P, _V, _K, _Y, _O, _J, TL_SLSH, \ + _R, _S, _N, _T, _G, _W, _U, _E, _I, _A, \ + _X, _M, _L, _D, _B, _Z, _F, TL_QUOT, TL_COMM, TL_DOT ) + + +// All of these have a consonant or vowel on the thumb keys. + +/* alt shift keys "? '! dash and elan */ +/* (< {[ - elan */ +/* dash has thumbs of ,; and .: */ +/* dash and the rest get these too. */ +/* alt shifts ;: .& /\* '? "! ,| -+ */ +/* COMBOS - z = jg, z=vg, q=uk, q=mp. */ + + +// no z or q, use combos. +#define CARTE_HD_TITANIUM \ + carte_de_map(" jgmpv ;./\"' ", \ + " csntw ,aeih ", \ + " xfldb -uoyk r") + +#define ___HD_TITANIUM___ \ + LANG_MAP(_J, _G, _M, _P, _V, TL_SCLN, TL_DOT, TL_SLSH, TL_DQUO, TL_QUOT, \ + _C, _S, _N, _T, _W , TL_COMM, _A, _E, _I, _H, \ + _X, _F, _L, _D, _B , TL_MINS, _U, _O, _Y, _K) + + +#define CARTE_HD_GOLD \ + carte_de_map(" jgmpv ;./\"' ", \ + " rsndb ,aeih ", \ + " xflcw -uoyk t") + +#define ___HD_GOLD___ \ + LANG_MAP(_J, _G, _M, _P, _V, TL_SCLN, TL_DOT, TL_SLSH, TL_DQUO, TL_QUOT, \ + _R, _S, _N, _D, _B , TL_COMM, _A, _E, _I, _H, \ + _X, _F, _L, _C, _W , TL_MINS, _U, _O, _Y, _K) +/* t, ␣ */ + +/* jz pq alt shifts ;: .& /\* '? "! ,| -+ */ + +#define CARTE_HD_PLATINUM \ + carte_de_map( "jghpv ;./'\"", \ + "rsntb ,aeic", \ + "xfmdk -uowy l") +/* l ␣ */ + +#define ___HD_PLATINUM___ \ + LANG_MAP(_J, _G, _H, _P, _V, TL_SCLN, TL_DOT, TL_SLSH, TL_QUOT, TL_DQUO, \ + _R, _S, _N, _T, _B, TL_COMM, _A, _E, _I, _C, \ + _X, _F, _M, _D, _K, TL_MINS, _U, _O, _W, _Y) + +#define CARTE_HD_SILVER \ + carte_de_map("jgmpv ;./'\"", \ + "rshtb ,aeic", \ + "xfldk -uowy n") +/* n ␣ */ + +#define ___HD_SILVER___ \ + LANG_MAP(_J, _G, _M, _P, _V, TL_SCLN, TL_DOT, TL_SLSH, TL_QUOT, TL_DQUO, \ + _R, _S, _H, _T, _B, TL_COMM, _A, _E, _I, _C, \ + _X, _F, _L, _D, _K, TL_MINS, _U, _O, _W, _Y) + +#define CARTE_HD_BRONZE \ + carte_de_map("jgmpv ;./'\"", \ + "rsntb ,aeic", \ + "xfldk -uowy h") +/* h ␣ */ + +#define ___HD_BRONZE___ \ + LANG_MAP(_J, _G , _M, _P, _V , TL_SCLN, TL_DOT, TL_SLSH , TL_QUOT, TL_DQUO, \ + _R, _S, _N, _T, _B , TL_COMM, _A, _E, _I, _C, \ + _X, _F, _L, _D, _K , TL_MINS, _U, _O, _W, _Y) + +#define CARTE_HD_ELAN \ + carte_de_map("vghpk /({'\"", \ + "rsntf jaeci", \ + "xmldb -uowy") +/* ,; .: ␣ ⏎ */ + +/* vz g h p kq /\* (< {[ '! "? */ +/* TL_COMM; TL_DOT: _␣ ⏎ */ +#define ___HD_ELAN___ \ + LANG_MAP(_V, _G, _H, _P, _K, TL_SLSH, TL_LPRN, TL_LCBR, TL_QUOT, TL_DQUO, \ + _R, _S, _N, _T, _F, _J, _A, _E, _C, _I, \ + _X, _M, _L, _D, _B, TL_MINS, _U, _O, _W, _Y) + + +#define CARTE_HD_DASH \ + carte_de_map("jgmpv ;.'\"/", \ + "rsntb ,haoi", \ + "xcldw -fuky e") + /* e ␣ */ + +#define ___HD_DASH___ \ + LANG_MAP(_J, _G, _M, _P, _V , TL_SCLN, TL_DOT, TL_QUOT, TL_DQUO, TL_SLSH, \ + _R, _S, _N, _T, _B , TL_COMM, _H, _A, _O, _I, \ + _X, _C, _L, _D, _W , TL_MINS, _F, _U, _K, _Y) diff --git a/users/ericgebhart/base_layers/keymaps.txt b/users/ericgebhart/base_layers/keymaps.txt new file mode 100644 index 0000000000..56dc7d79e3 --- /dev/null +++ b/users/ericgebhart/base_layers/keymaps.txt @@ -0,0 +1,300 @@ +/* +This file can be commented by blocks or single lines using // +Blank lines are ignored +*/ +/* +Bigram frequencies in stats.csv +*/ + +[keys] +L21 L22 L23 L24 L25 L26 R26 R25 R24 R23 R22 R21 +L31 L32 L33 L34 L35 L36 R36 R35 R34 R33 R32 R31 +L41 L42 L43 L44 L45 L46 R46 R45 R44 R43 R42 R41 + +[weights] +5.0 3.6 2.4 1.8 2.2 3.5 3.5 2.2 1.8 2.4 3.6 5.0 +4.0 1.6 1.2 1.0 1.0 3.0 3.0 1.0 1.0 1.2 1.6 4.0 +5.0 3.4 2.6 2.2 1.8 4.0 4.0 1.8 2.2 2.6 3.4 5.0 + +/* +Weights should: +- limit weak fingers +- limit bottom row +- increase home row +- limit finger travel distance + +https://colemakmods.github.io/mod-dh/compare.html +*/ + +[penalties] + ,same_row,row_jump1,row_jump2 +ii, 2.5, 3.5, 4.5 // same finger +im, 0.5, 1.0, 2.0 +ir, 0.5, 0.8, 1.5 +ip, 0.5, 0.8, 1.1 +mi, -1.5, -0.5, 1.5 // inward roll +mm, 2.5, 3.5, 4.5 // same finger +mr, 0.5, 1.0, 2.0 +mp, 0.5, 0.8, 1.5 +ri, -1.5, -0.5, 1.5 // inward roll +rm, -2.0, -0.5, 1.2 // inward roll +rr, 2.5, 3.5, 4.5 // same finger +rp, 1.0, 1.5, 2.5 +pi, -1.0, 0.0, 1.0 // inward roll +pm, -1.0, 0.0, 1.5 // inward roll +pr, -1.0, 0.0, 1.5 // inward roll +pp, 3.0, 4.0, 5.5 // same finger + +/* +Only apply if not the same letter, and both letters on the same hand. + +i, m, r, and p refer to the fingers (index, middle, ring, pinky) +The columns refer to how many rows separate the two keys + +Penalties should: +- limit same finger typing (except same key twice) +- balance hands +- favor inward rolling +(last 2 in opposition with each other) +*/ + +[layouts] + +>>Qwerty +# q w e r t y i o u p # +é a s d f g h j k l ; ' +è z x c v b n m , . / - + +>>Azerty +è a z e r t y u i o p ^ +' q s d f g h j k l m ù +é w x c v b n , . : ! - + +>>Qwertz +# q w e r t z u i o p ü +é a s d f g h j k l ö ä +è y x c v b n m , . - ' + +>>Bépo 40% +# b é p o è ^ v d l j z +- a u i e , c t s r n m +ç à y x . k ' q g h f w + +// https://github.com/TeXitoi/keyberon#whats-the-layout +>>Bépo keyberon +# b é p o è ^ v d l j z +w a u i e , c t s r n m +- à y x . k ' q g h f ç + +>>Dvorak +- ' , . p y f g c r l # +é a o e u i d h t n s # +è ; q j k x b m w v z # + +>>Colemak +# q w f p g j l u y ; # +é a r s t d h n e i o ' +è z x c v b k m , . / - + +>>Colemak DH +# q w f p b j l u y ; # +é a r s t g m n e i o ' +è z x c d v k h , . / - + +>>Colemak DH mod +# q w f p b j l u y é è +# a r s t g m n e i o - +# z x c d v k h , . ' / + +>>Workman +# q d r w b j f u p ; # +é a s h t g y n e o i ' +è z x m c v k l , . / - + +>>Norman +# q w