From 0568104b4b630f87e53666917e7d7880f5872b36 Mon Sep 17 00:00:00 2001 From: Kawamashi Date: Mon, 1 Sep 2025 16:06:10 +0200 Subject: [PATCH] num layer and NumWord refactor --- .../keymaps/Kawamashi/features/capslist.c | 9 +- .../Kawamashi/features/numword - Copie.c | 122 +++++++ .../base/keymaps/Kawamashi/features/numword.c | 51 +-- .../base/keymaps/Kawamashi/features_conf.c | 18 +- .../base/keymaps/Kawamashi/keymap - Copie.c | 326 ------------------ .../rev1/base/keymaps/Kawamashi/keymap.c | 24 +- .../rev1/base/keymaps/Kawamashi/keymap.h | 11 +- .../Kawamashi/keymap_french_propergol.h | 12 +- 8 files changed, 181 insertions(+), 392 deletions(-) create mode 100644 keyboards/splitkb/kyria/rev1/base/keymaps/Kawamashi/features/numword - Copie.c delete mode 100644 keyboards/splitkb/kyria/rev1/base/keymaps/Kawamashi/keymap - Copie.c diff --git a/keyboards/splitkb/kyria/rev1/base/keymaps/Kawamashi/features/capslist.c b/keyboards/splitkb/kyria/rev1/base/keymaps/Kawamashi/features/capslist.c index 1bf20811..f956fb31 100644 --- a/keyboards/splitkb/kyria/rev1/base/keymaps/Kawamashi/features/capslist.c +++ b/keyboards/splitkb/kyria/rev1/base/keymaps/Kawamashi/features/capslist.c @@ -1,7 +1,6 @@ #include "capslist.h" static bool caps_list_active = false; -//static bool last_word = false; static unsigned short int capslist_countdown = 0; static unsigned short int countdown_end = 5; @@ -11,7 +10,6 @@ void enable_caps_list(void) { if (is_caps_lock_on()) { tap_code(KC_CAPS); } caps_word_on(); caps_list_active = true; - //last_word = false; capslist_countdown = 0; countdown_end = 5; } @@ -34,7 +32,6 @@ bool process_caps_list(uint16_t keycode, keyrecord_t *record) { if (keycode == CAPSLIST) { if (record->event.pressed) { toggle_caps_list(); - //enable_caps_list(); } return false; } @@ -55,12 +52,11 @@ bool process_caps_list(uint16_t keycode, keyrecord_t *record) { case QK_LAYER_TAP ... QK_LAYER_TAP_MAX: // Earlier return if this has not been considered tapped yet if (record->tap.count == 0) { return true; } - keycode = keycode & 0xFF; // Get tapping keycode. + keycode = tap_hold_extractor(keycode); // Get tapping keycode. break; } if (should_continue_caps_list(keycode)) { - //if (is_caps_lock_on()) { return true; } if (caps_word_reactivation()) { caps_word_on(); // Reactivate Caps Word for a new word capslist_countdown = 0; @@ -71,7 +67,7 @@ bool process_caps_list(uint16_t keycode, keyrecord_t *record) { return true; } -//bool caps_list_press_user(uint16_t keycode) { + bool should_continue_caps_list(uint16_t keycode) { if (keycode == KC_BSPC) { capslist_countdown--; @@ -97,6 +93,7 @@ bool should_continue_caps_list(uint16_t keycode) { return false; // Deactivate Caps List. } + bool caps_word_reactivation(void) { // Words that continue Caps List. diff --git a/keyboards/splitkb/kyria/rev1/base/keymaps/Kawamashi/features/numword - Copie.c b/keyboards/splitkb/kyria/rev1/base/keymaps/Kawamashi/features/numword - Copie.c new file mode 100644 index 00000000..88ec8f38 --- /dev/null +++ b/keyboards/splitkb/kyria/rev1/base/keymaps/Kawamashi/features/numword - Copie.c @@ -0,0 +1,122 @@ +/* Copyright 2025 @Kawamashi + * + * 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 "numword.h" + +//static uint16_t num_word_timer = 0; +//static bool is_num_word_on = false; +bool is_num_word_on = false; +static bool exit_num_word = false; + +bool is_num_word_enabled(void) { + return is_num_word_on; +} + +void enable_num_word(void) { + //if (is_num_word_on) return; + is_num_word_on = true; + layer_on(_NUMBERS); +} + +void disable_num_word(void) { + //if (!is_num_word_on) return; + is_num_word_on = false; + layer_off(_NUMBERS); + exit_num_word = false; +} + +void toggle_num_word(void) { + if (is_num_word_on) { + disable_num_word(); + } else { + enable_num_word(); + } +} + +bool should_exit_num_word(uint16_t keycode, const keyrecord_t *record) { + + switch (keycode) { + // Keycodes which should not disable num word mode. + + // Numpad keycodes + case KC_1 ... KC_0: + case KC_PDOT: + //case PG_X: + //case PG_EACU: + case PG_MOIN: + case PG_ASTX: + case PG_PLUS: + case PG_SLSH: + case PG_EXP: + case PG_IND: + case PG_H: + case PG_2PTS: + case LT_EURO: + case NNB_SPC: + + // Misc + case KC_BSPC: + case PG_ODK: // Not to exit Numword when chording it with ODK + case NUMWORD: // For the combo NUMWORD to work + +/* + case PG_EGAL: + case PG_BSLS:*/ + return false; + } + + return true; +} + + +bool process_numword(uint16_t keycode, const keyrecord_t *record) { + // Handle the custom keycodes that go with this feature + if (keycode == NUMWORD) { + if (record->event.pressed) { toggle_num_word(); } + return false; + } + + // Other than the custom keycodes, nothing else in this feature will activate + // if the behavior is not on, so allow QMK to handle the event as usual. + if (!is_num_word_on) { return true; } + // Nothing else acts on key release, either + if (!record->event.pressed) { return true; } + + // Get the base keycode of a mod or layer tap key + switch (keycode) { + case QK_MOD_TAP ... QK_MOD_TAP_MAX: + case QK_LAYER_TAP ... QK_LAYER_TAP_MAX: + // Earlier return if this has not been considered tapped yet + if (record->tap.count == 0) { return true; } + keycode = keycode & 0xFF; + break; +/* case QK_LAYER_TAP ... QK_LAYER_TAP_MAX: // `LT(layer, key)` keys. + // Release event on a held layer-tap key when numword is on. + if (record->tap.count == 0 && !record->event.pressed) { + return false; // Skip default handling so that layer stays on. + } else { + keycode = keycode & 0xFF; // Get tapping keycode. + } + break; */ + } + + exit_num_word = should_exit_num_word(keycode, record); + return true; +} + +void numword_exit_check(void) { + if (exit_num_word) { disable_num_word(); } +} diff --git a/keyboards/splitkb/kyria/rev1/base/keymaps/Kawamashi/features/numword.c b/keyboards/splitkb/kyria/rev1/base/keymaps/Kawamashi/features/numword.c index 42a9a331..b8362687 100644 --- a/keyboards/splitkb/kyria/rev1/base/keymaps/Kawamashi/features/numword.c +++ b/keyboards/splitkb/kyria/rev1/base/keymaps/Kawamashi/features/numword.c @@ -64,7 +64,8 @@ bool should_exit_num_word(uint16_t keycode, const keyrecord_t *record) { case PG_IND: case PG_H: case PG_2PTS: - case LT_EURO: + case PG_EURO: + //case LT_NBSPC: case NNB_SPC: // Misc @@ -85,36 +86,38 @@ bool should_exit_num_word(uint16_t keycode, const keyrecord_t *record) { bool process_numword(uint16_t keycode, const keyrecord_t *record) { // Handle the custom keycodes that go with this feature if (keycode == NUMWORD) { - if (record->event.pressed) { - toggle_num_word(); - return false; - } + if (record->event.pressed) { toggle_num_word(); } + return false; } // Other than the custom keycodes, nothing else in this feature will activate // if the behavior is not on, so allow QMK to handle the event as usual. if (!is_num_word_on) { return true; } + // Nothing else acts on key release, either + if (record->event.pressed) { - // Get the base keycode of a mod or layer tap key - switch (keycode) { - case QK_MOD_TAP ... QK_MOD_TAP_MAX: - // Earlier return if this has not been considered tapped yet - if (record->tap.count == 0) { return true; } - keycode = keycode & 0xFF; - break; - case QK_LAYER_TAP ... QK_LAYER_TAP_MAX: // `LT(layer, key)` keys. - // Release event on a held layer-tap key when numword is on. - if (record->tap.count == 0 && !record->event.pressed && is_num_word_on) { - return false; // Skip default handling so that layer stays on. - } else { - keycode = keycode & 0xFF; // Get tapping keycode. - } - break; -/* default: - break; */ + // Get the base keycode of a mod or layer tap key + switch (keycode) { + case QK_MOD_TAP ... QK_MOD_TAP_MAX: + case QK_LAYER_TAP ... QK_LAYER_TAP_MAX: + // Earlier return if this has not been considered tapped yet + if (record->tap.count == 0) { return true; } + keycode = tap_hold_extractor(keycode); + break; + /* case QK_LAYER_TAP ... QK_LAYER_TAP_MAX: // `LT(layer, key)` keys. + // Release event on a held layer-tap key when numword is on. + if (record->tap.count == 0 && !record->event.pressed) { + return false; // Skip default handling so that layer stays on. + } else { + keycode = keycode & 0xFF; // Get tapping keycode. + } + break; */ + } + + exit_num_word = should_exit_num_word(keycode, record); + } else { + if (exit_num_word) { disable_num_word(); } } - - exit_num_word = should_exit_num_word(keycode, record); return true; } diff --git a/keyboards/splitkb/kyria/rev1/base/keymaps/Kawamashi/features_conf.c b/keyboards/splitkb/kyria/rev1/base/keymaps/Kawamashi/features_conf.c index 31eeb2a0..d7dfa3c1 100644 --- a/keyboards/splitkb/kyria/rev1/base/keymaps/Kawamashi/features_conf.c +++ b/keyboards/splitkb/kyria/rev1/base/keymaps/Kawamashi/features_conf.c @@ -69,6 +69,8 @@ bool is_followed_by_apos(uint16_t keycode, uint16_t prev_keycode) { // even if the tap/hold key is a custom one, with non-basic tap keycode. uint16_t tap_hold_extractor(uint16_t keycode) { switch (keycode) { + case LT_NBSPC: + return NNB_SPC; default: return keycode &= 0xff; } @@ -80,21 +82,21 @@ bool process_custom_tap_hold(uint16_t keycode, keyrecord_t *record) { switch (keycode) { case RCTL_T(FEN_B): - return process_tap_hold(LWIN(KC_DOWN), record); + return process_tap_hold(LWIN(KC_DOWN), record); case SFT_T(COPY): - return process_tap_hold(C(PG_C), record); + return process_tap_hold(C(PG_C), record); -/* case LT_NUMWORD: - return process_numword(NUMWORD, record); */ + case LT_NBSPC: + return process_tap_hold(NNB_SPC, record); case LT_REPT: - repeat_key_invoke(&record->event); - return false; + repeat_key_invoke(&record->event); + return false; case LT_MGC: - alt_repeat_key_invoke(&record->event); - return false; + alt_repeat_key_invoke(&record->event); + return false; } } return true; // Process all other keycodes normally diff --git a/keyboards/splitkb/kyria/rev1/base/keymaps/Kawamashi/keymap - Copie.c b/keyboards/splitkb/kyria/rev1/base/keymaps/Kawamashi/keymap - Copie.c deleted file mode 100644 index 16d5efc3..00000000 --- a/keyboards/splitkb/kyria/rev1/base/keymaps/Kawamashi/keymap - Copie.c +++ /dev/null @@ -1,326 +0,0 @@ -/* Copyright 2019 Thomas Baart - * - * 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 QMK_KEYBOARD_H -#include "keymap.h" -#include "features/layer_lock.h" - - -bool is_caps_lock_on(void) { return host_keyboard_led_state().caps_lock; } - -bool is_letter(uint16_t keycode) { - switch (keycode) { - case KC_A ... KC_L: - case PG_M: - case KC_N ... KC_Z: - case PG_AGRV: - case PG_U: - case PG_EGRV: - case PG_CCED: - return true; - - default: - return false; - } -} - -// Achordion - -uint16_t achordion_timeout(uint16_t tap_hold_keycode) { return 500; } - -bool achordion_eager_mod(uint8_t mod) { - switch (mod) { - case MOD_LSFT: - case MOD_RSFT: - case MOD_LCTL: - case MOD_RCTL: - return true; // Eagerly apply Shift and Ctrl mods. - - default: - return false; - } -} - - -// Caps Word - -bool caps_word_press_user(uint16_t keycode) { - // Keycodes that continue Caps Word, with shift applied. - if (is_letter(keycode)) { - add_weak_mods(MOD_BIT(KC_LSFT)); // Apply shift to next key. - return true; - } else { - switch (keycode) { - // Keycodes that continue Caps Word, without shifting. - case PG_MOIN: - case KC_KP_1 ... KC_KP_0: - case KC_LEFT: - case KC_RIGHT: - case KC_BSPC: - case KC_DEL: - case PG_APOS: - return true; - - default: - return false; // Deactivate Caps Word. - } - } -} - -// Combo -combo_t key_combos[] = {}; -uint16_t COMBO_LEN = 0; - - -// Custom altGr keys - -const custom_altgr_key_t custom_altgr_keys[] = { - {PG_AGRV, PG_AE}, - {PG_B, PG_TS}, - {PG_A, PG_CDAQ}, - {PG_I, PG_RDAQ}, - {PG_N, PG_ESPR}, - {PG_T, PG_AROB}, - {ALGR_T(PG_A), PG_CDAQ}, - {LCTL_T(PG_I), PG_RDAQ}, - {RCTL_T(PG_N), PG_ESPR}, - {ALGR_T(PG_T), PG_AROB}, - {PG_POIN, PG_NM}, - {KC_KP_8, PG_INFN}, - {PG_F, PG_HASH}, - {PG_G, PG_HEG}, - {PG_CCED, PG_DEDL}, - {PG_Q, PG_TECT}, - {PG_X, PG_PVIR}, - {PG_D, PG_DOPY}, -}; - -uint8_t NUM_CUSTOM_ALTGR_KEYS = - sizeof(custom_altgr_keys) / sizeof(custom_altgr_key_t); - - -void matrix_scan_user(void) { - //achordion_task(); - recent_keys_task(); - swapper_task(); -} - -// Tap-hold configuration - -// Handle keyrecord before quantum processing -static uint16_t next_keycode; -static keyrecord_t next_record; - -bool pre_process_record_user(uint16_t keycode, keyrecord_t *record) { - static uint16_t prev_keycode; - static bool tap_condition; - - if (record->event.pressed) { - // Store the previous keycode for instant tap decision - prev_keycode = next_keycode; - // Cache the next input for mod-tap decisions - next_keycode = keycode; - next_record = *record; - } - - // Match mod-tap keys. Tweak this to limit conditions that matches your keyboard and habits. - tap_condition = ((IS_LAYER_ON(_BASE)) && IS_QK_MOD_TAP(keycode) && !IS_QK_LAYER_TAP(prev_keycode) && !is_mod_tap_control(prev_keycode)); - return process_instant_tap(keycode, record, prev_keycode, tap_condition); -} - -bool forbidden_chord(uint16_t tap_hold_keycode, keyrecord_t* tap_hold_record, uint16_t other_keycode, keyrecord_t* other_record) { - switch (tap_hold_keycode) { - case LT_VIRG: - case OSM(MOD_LSFT): - case OSM(MOD_RSFT): - return false; - - default: - // Otherwise, follow the opposite hands rule. - return same_side_combination(tap_hold_record, other_record); - } -} - -bool first_of_chorded_mods(uint16_t keycode) { - switch (keycode) { - case LT_TAB: // Pour pouvoir faire OSM shift + LT_TAB (win + shift + flèche). - case PG_CCED: // Pour pouvoir faire Alt + F4, Alt + F11. - case LCTL_T(PG_I): - case RCTL_T(PG_N): - case OSM(MOD_LSFT): // Pour pouvoir faire OSM shift + LT_TAB (win + shift + flèche). - return true; - - default: - return false; - } -} - -bool get_hold_on_other_key_press(uint16_t keycode, keyrecord_t *record) { - - if (record->event.key.col != next_record.event.key.col) { - // Sinon on a des effets de bord quand on veut taper des chiffres. - if (IS_LAYER_ON(_BASE)) { - // When a mod-tap key overlaps with another non-Ctrl key on the same hand, send its base keycode - if (forbidden_chord(keycode, record, next_keycode, &next_record) && !first_of_chorded_mods(keycode)) { - tap_converter(keycode, record); - } - } - } - return false; -} - -bool get_permissive_hold(uint16_t keycode, keyrecord_t *record) { - - if (forbidden_chord(keycode, record, next_keycode, &next_record)) { - tap_converter(keycode, record); - return false; - } - return true; -} - - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - - // Achordion - //if (!process_achordion(keycode, record)) { return false; } - - // Custom alt gr - if (!process_custom_altgr_keys(keycode, record)) { return false; } - - // Recent keys - if (!process_clever_keys(keycode, record)) { return false; } - - // Numword - if (!process_numword(keycode, record)) { return false; } - - // Layer lock - if (!process_layer_lock(keycode, record, LAYER_LCK)) { return false; } - - // Select word - if (!process_select_word(keycode, record, SELWORD)) { return false; } - - // Macros - if (!process_macros(keycode, record)) { return false; } - - return true; // Process all other keycodes normally -} - - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -/* - * Base Layer: ALPHAS - *»\ - * ,-------------------------------------------. ,-------------------------------------------. - * | Helpsc | À | B | É | . | - | | ^ | V | L | M | X | W | - * |--------+------+------+------+------+------| |------+------+------+------+------+--------|0 - * | Enter | O | U |A/AltG|I/Ctrl| J | | G | T | S | N | R | F | - * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| - * | Tab | Q | Y | È |P/Win | "" | Bksp | End | | Home |Delete| K | D | Z | H | C | Ç/Alt | - * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' - * |NavNum| Space|Shift | E | , | | ' | Space|Shift| Win | Mute | - * | | | |NavNum|Symb. | |Funct.|NavNum| | | | - * `----------------------------------' `----------------------------------' - */ - [_BASE] = LAYOUT( - KC_ESC, PG_AGRV, PG_B, PG_U, PG_X, PG_MOIN, PG_ACIR, PG_G, PG_C, PG_M, PG_POIN, PG_W, - KC_ENT, ALT_T(PG_O), SFT_T(PG_L), ALGR_T(PG_A), LCTL_T(PG_I), PG_J, PG_VIRG, RCTL_T(PG_N), ALGR_T(PG_T), RSFT_T(PG_S), ALT_T(PG_R), PG_V, - LT_TAB, PG_Q, PG_Y, PG_EGRV, LWIN_T(PG_P), PG_HQUO, KC_BSPC, KC_END, KC_HOME, KC_DEL, PG_K, RWIN_T(PG_H), PG_Z, PG_F, PG_D, PG_CCED, - TG(_SYMBOLS), KC_SPC, OSM(MOD_LSFT), LT(_SYMBOLS,PG_E), LT_VIRG, LT_APOS, LT(_SYMBOLS,KC_SPC), OSM(MOD_RSFT), KC_RGUI, KC_MUTE - ), - - -/* - * Layer 1 : Numpad + symbols - * - * ,-------------------------------------------. ,-------------------------------------------. - * | Helpsc | ! | ? | & | ; | | | | ⁻ | 7 | 8 | 9 | * |NumLock | - * |--------+------+------+------+------+------| |------+------+------+------+------+--------| - * | | { | } | ( | ) | LOCK | | = | 4 | 5 | 6 | / | \ | - * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| - * | | [ | ] | < | > |Indice| | | | | |Expos.| 1 | 2 | 3 | + | % | - * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' - * | | | | | | | | 0 | . | | | - * | | | | | | | , | | | | | - * `----------------------------------' `----------------------------------' - */ - [_SYMBOLS] = LAYOUT( - KC_ESC, PG_EXCL, PG_QUES, PG_ESPR, PG_PVIR, PG_PIPE, PG_MOIN, KC_P7, KC_P8, KC_P9, PG_ASTX, KC_NUM, - _______, PG_CACL, SFT_T(PG_RACL), ALGR_T(PG_LPRN), PG_RPRN, LAYER_LCK, PG_EGAL, RCTL_T(KC_P4), ALGR_T(KC_P5), KC_P6, PG_TLSH, PG_BSLS, - _______, PG_CBKT, PG_RBKT, PG_INF, PG_SUP, PG_CARN, _______, _______, _______, _______, PG_ACIR, KC_P1, KC_P2, KC_P3, PG_PLUS, PG_PERC, - _______, _______, _______, KC_SPC, PG_EACU, NUMWORD, KC_P0, KC_PDOT, _______ , _______ - ), -/* - * Layer 2 : Symbols + function keys - * - * ,-------------------------------------------. ,-------------------------------------------. - * | Helpsc | F1 | F2 | F3 | F4 | F5 | | | ; | ! | # | ° | | - * |--------+------+------+------+------+------| |------+------+------+------+------+--------| - * | |Ctrl A|Ctrl X|Ctrl V|Ctrl C| LOCK | | Mute | ( | ) | @ | & | Mute | - * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| - * | | F6 | F7 | F8 | F9 | F10 | | | | | | |Ctrl Z|Ctrl Y| F11 | F12 | | - * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' - * | | | | | | | | | | | | - * | | | | | | | !!! | , | | | | - * `----------------------------------' `----------------------------------' - */ - [_SHORTNAV] = LAYOUT( - KC_ESC, A(KC_F4), ALT_TAB, LWIN(PG_G), _______, _______, _______, C(KC_LEFT), KC_UP, C(KC_RIGHT), _______, _______, - _______, C(PG_A), C(PG_POIN), C(PG_G), C(PG_D), LAYER_LCK, KC_MUTE, RCTL_T(KC_LEFT), KC_DOWN, KC_RIGHT, KC_F2 , KC_MUTE, - _______, SELWORD, LWIN(KC_TAB), REV_TAB, ALT_TAB, _______, _______, S(KC_END), S(KC_HOME), _______, _______, C(PG_Z), C(PG_Y), _______, _______, _______, - _______, _______, _______, QUES_PT, QUES_PT, EXCL_PT, EXCL_PT, _______, _______, _______ - ), - -/* - * Layer 3 : Function keys + windows management - * - * ,-------------------------------------------. ,-------------------------------------------. - * | | F12 | F7 | F8 | F9 | | | | | | | | | - * |--------+------+------+------+------+------| |------+------+------+------+------+--------| - * | | F11 | F4 | F5 | F6 | LOCK | | | | | | | | - * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| - * | | F10 | F1 | F2 | F3 | | | | | | | | | | | | | - * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' - * | | | | | | | | | | | | - * | | | | | | | | | | | | - * `----------------------------------' `----------------------------------' - */ - [_FUNCAPPS] = LAYOUT( - KC_ESC, KC_F12, KC_F9, KC_F8, KC_F7, C(KC_PAUS), _______, SWIN(KC_LEFT), LWIN(KC_UP), SWIN(KC_RIGHT), _______, QK_BOOT, - _______, ALT_T(KC_F11), SFT_T(KC_F6), KC_F5, KC_F4, LAYER_LCK, _______, RCTL_T(FEN_G), LWIN(KC_DOWN), LWIN(KC_RIGHT), _______, _______, - _______, KC_F10, KC_F3, KC_F2, KC_F1, _______, _______, _______, _______, _______, _______, LWIN(PG_H), LWIN(KC_HOME), _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), - -// /* -// * Layer template -// * -// * ,-------------------------------------------. ,-------------------------------------------. -// * | | | | | | | | | | | | | | -// * |--------+------+------+------+------+------| |------+------+------+------+------+--------| -// * | | | | | | | | | | | | | | -// * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| -// * | | | | | | | | | | | | | | | | | | -// * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' -// * | | | | | | | | | | | | -// * | | | | | | | | | | | | -// * `----------------------------------' `----------------------------------' -// */ -// [_LAYERINDEX] = LAYOUT( -// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ -// ), -}; \ No newline at end of file diff --git a/keyboards/splitkb/kyria/rev1/base/keymaps/Kawamashi/keymap.c b/keyboards/splitkb/kyria/rev1/base/keymaps/Kawamashi/keymap.c index cac98e1d..a8408bf4 100644 --- a/keyboards/splitkb/kyria/rev1/base/keymaps/Kawamashi/keymap.c +++ b/keyboards/splitkb/kyria/rev1/base/keymaps/Kawamashi/keymap.c @@ -106,17 +106,17 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { // Custom behaviour of the typo dead-key if (!process_odk_layer(keycode, record)) { return false; } - // Clever keys + // Clever keys if (!process_clever_keys(keycode, record)) { return false; } - // Process all other keycodes normally + // Process all other keycodes normally return true; } void post_process_record_user(uint16_t keycode, keyrecord_t* record) { os4a_layer_exit_check(); - numword_exit_check(); + //numword_exit_check(); end_CK(record); } @@ -203,10 +203,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `----------------------------------' `----------------------------------' */ [_SYMBOLS] = LAYOUT( - _______, PG_ACIR, PG_LCBR, PG_RCBR, PG_DLR, PG_PERC, PG_HASH, PG_DQUO, PG_EGAL, ALGR(PG_J), PG_GRV, _______, - _______, ALGR(PG_O), PG_LPRN, PG_RPRN, PG_PVIR, PG_2PTS, PG_BSLS, MT_SLSH, PG_MOIN, PG_PLUS, PG_ASTX, _______, - _______, PG_INF, PG_LSBR, PG_RSBR, PG_SUP, _______, _______, _______, _______, _______, _______, PG_APOD, PG_ESPR, PG_PIPE, PG_TILD, _______, - _______, _______, _______, PG_UNDS, KC_SPC, _______, _______, _______, _______, _______ + _______, PG_ACIR, PG_LCBR, PG_RCBR, PG_DLR, PG_PERC, PG_HASH, PG_DQUO, PG_EGAL, ALGR(PG_J), PG_GRV, _______, + _______, ALGR(PG_O), PG_LPRN, PG_RPRN, PG_PVIR, PG_2PTS, PG_BSLS, MT_SLSH, PG_MOIN, PG_PLUS, PG_ASTX, _______, + _______, PG_INF, PG_LSBR, PG_RSBR, PG_SUP, _______, _______, _______, _______, _______, _______, PG_APOD, PG_ESPR, PG_PIPE, PG_TILD, _______, + _______, _______, _______, PG_UNDS, KC_SPC, _______, _______, _______, _______, _______ ), @@ -225,10 +225,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `----------------------------------' `----------------------------------' */ [_NUMBERS] = LAYOUT( - _______, PG_DLR, PG_MOIN, PG_PLUS, _______, PG_PERC, PG_EXP, _______, PG_EGAL, PG_ASTX, _______, _______, - _______, KC_4, KC_3, KC_2, MT_1, PG_2PTS, PG_IND, MT_SLSH, KC_6, KC_7, KC_8, _______, - _______, _______, _______, PG_H, KC_5, _______, _______, _______, _______, _______, _______, KC_9, PG_DEG, _______, PG_ODK, _______, - _______, _______, KC_PDOT, KC_0 , LT_EURO, NNB_SPC, KC_SPC, KC_PDOT, _______, _______ + _______, PG_DLR, PG_MOIN, PG_PLUS, PG_EURO, PG_PERC, PG_EXP, _______, PG_EGAL, PG_ASTX, _______, _______, + _______, KC_4, KC_3, KC_2, MT_1, PG_2PTS, PG_IND, MT_SLSH, KC_6, KC_7, KC_8, _______, + _______, _______, _______, PG_H, KC_5, _______, _______, _______, _______, _______, _______, KC_9, PG_DEG, _______, PG_ODK, _______, + _______, _______, KC_PDOT, KC_0 , LT_NBSPC, _______, KC_SPC, _______, _______, _______ ), @@ -269,7 +269,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `----------------------------------' `----------------------------------' */ [_SHORTNAV] = LAYOUT( - _______, KC_BSPC, LWIN(KC_TAB), LWIN(PG_V), RCS(PG_V), KC_VOLU, KC_PGUP, C(KC_LEFT), KC_UP, C(KC_RGHT), _______, _______, + _______, _______, LWIN(KC_TAB), LWIN(PG_V), RCS(PG_V), KC_VOLU, KC_PGUP, C(KC_LEFT), KC_UP, C(KC_RGHT), _______, _______, _______, C(PG_A), C(PG_X), C(PG_V), SFT_T(COPY), KC_VOLD, KC_PGDN, KC_LEFT, KC_DOWN, KC_RIGHT, KC_F2 , _______, _______, KC_SPC, KC_SPC, KC_MUTE, C(PG_Z), C(PG_Y), _______, _______, _______, _______, _______, C(KC_PGUP), C(KC_PGDN), C(PG_W), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ diff --git a/keyboards/splitkb/kyria/rev1/base/keymaps/Kawamashi/keymap.h b/keyboards/splitkb/kyria/rev1/base/keymaps/Kawamashi/keymap.h index eed7d499..7464921d 100644 --- a/keyboards/splitkb/kyria/rev1/base/keymaps/Kawamashi/keymap.h +++ b/keyboards/splitkb/kyria/rev1/base/keymaps/Kawamashi/keymap.h @@ -53,20 +53,12 @@ enum custom_keycodes { RAZ, CAPSWORD, OU_GRV, - //PG_OE, - //E_CIRC, -/* I_CIRC, - A_CIRC, - O_CIRC, - U_CIRC, - I_TREM,*/ MAGIC, OS_SHFT, OS_CTRL, OS_RALT, OS_LALT, OS_WIN, - //OS_ODK, CNL_ODK, TG_APOS, PG_DEG @@ -81,8 +73,7 @@ enum custom_keycodes { #define TT_FA TT(_FUNCAPPS) #define MT_SLSH SFT_T(PG_SLSH) #define MT_1 SFT_T(KC_1) -//#define LT_NUMWORD LT(_SHORTNAV, NUMWORD) -#define LT_EURO LT(_SHORTNAV, PG_EURO) +#define LT_NBSPC LT(_SHORTNAV, NNB_SPC) #define E_CIRC S(FG_0) #define OS_ODK OSL(_ODK) #define OS_RSA OSM(MOD_RALT | MOD_LSFT) diff --git a/keyboards/splitkb/kyria/rev1/base/keymaps/Kawamashi/keymap_french_propergol.h b/keyboards/splitkb/kyria/rev1/base/keymaps/Kawamashi/keymap_french_propergol.h index ac300d7b..505ef76d 100644 --- a/keyboards/splitkb/kyria/rev1/base/keymaps/Kawamashi/keymap_french_propergol.h +++ b/keyboards/splitkb/kyria/rev1/base/keymaps/Kawamashi/keymap_french_propergol.h @@ -28,7 +28,7 @@ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ * │     │ , │ É │ U │ P │ - │ V │ M │ C │ J │ X │ ' │ - │     │ * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐    │ - * │      │ O │ A │ I │ N │ . │ G │ T │ S │ R │ L │ ’ │ € │    │ + * │      │ O │ A │ I │ N │ . │ G │ T │ S │ R │ L │ _ │ ’ │    │ * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤ * │    │ E │ Q │ Z │ Y │ H │ B │ K │ D │ F │ W │ **│          │ * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ @@ -76,7 +76,7 @@ #define PG_S KC_K // S #define PG_R KC_L // R #define PG_L KC_SCLN // L -#define PG_EURO KC_QUOT // € +#define PG_UNDS KC_QUOT // _ #define PG_APOS KC_NUHS // ’ // Row 4 @@ -95,7 +95,7 @@ /* Shifted symbols * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ - * │ ~ │ | │ < │ > │ $ │ % │ ^ │ & │ _ │ # │ @ │ * │ \ │       │ + * │ ~ │ € │ < │ > │ $ │ % │ ^ │ & │ | │ # │ @ │ * │ \ │       │ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ * │     │ ? │   │   │   │ ! │   │   │   │   │   │ " │ + │     │ * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐    │ @@ -109,14 +109,14 @@ // Row 1 #define PG_TILD S(KC_GRV) // ~ -#define PG_PIPE S(KC_1) // | +#define PG_EURO S(KC_1) // € #define PG_INF S(KC_2) // < #define PG_SUP S(KC_3) // > #define PG_DLR S(KC_4) // $ #define PG_PERC S(KC_5) // % #define PG_ACIR S(KC_6) // ^ #define PG_ESPR S(KC_7) // & -#define PG_UNDS S(KC_8) // _ +#define PG_PIPE S(KC_8) // | #define PG_HASH S(KC_9) // # #define PG_AROB S(KC_0) // @ #define PG_ASTX S(PG_SLSH) // * @@ -132,7 +132,7 @@ // Row 3 #define PG_2PTS S(PG_POIN) // : #define PG_RSBR S(PG_APOS) // ] -#define PG_LSBR S(PG_EURO) // [ +#define PG_LSBR S(PG_UNDS) // [ // Row 4 #define PG_PVIR S(PG_ODK)