From fdac535f4f9d3796b7bd458127f5bb478f2f3a21 Mon Sep 17 00:00:00 2001 From: Fatih Arslan Date: Mon, 10 Feb 2025 22:07:12 +0300 Subject: [PATCH 01/13] Initial default keymap Signed-off-by: Fatih Arslan --- qmk/kyria/keymap.c | 274 ++++++++++++++++++++++++++++++++++++++++++++ qmk/kyria/readme.md | 242 ++++++++++++++++++++++++++++++++++++++ qmk/kyria/rules.mk | 2 + 3 files changed, 518 insertions(+) create mode 100644 qmk/kyria/keymap.c create mode 100644 qmk/kyria/readme.md create mode 100644 qmk/kyria/rules.mk diff --git a/qmk/kyria/keymap.c b/qmk/kyria/keymap.c new file mode 100644 index 0000000..1bd7229 --- /dev/null +++ b/qmk/kyria/keymap.c @@ -0,0 +1,274 @@ +// Copyright 2024 splitkb.com (support@splitkb.com) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +enum layers { + _QWERTY = 0, + _DVORAK, + _COLEMAK_DH, + _NAV, + _SYM, + _FUNCTION, + _ADJUST, +}; + + +// Aliases for readability +#define QWERTY DF(_QWERTY) +#define COLEMAK DF(_COLEMAK_DH) +#define DVORAK DF(_DVORAK) + +#define SYM MO(_SYM) +#define NAV MO(_NAV) +#define FKEYS MO(_FUNCTION) +#define ADJUST MO(_ADJUST) + +#define CTL_ESC MT(MOD_LCTL, KC_ESC) +#define CTL_QUOT MT(MOD_RCTL, KC_QUOTE) +#define CTL_MINS MT(MOD_RCTL, KC_MINUS) +#define ALT_ENT MT(MOD_LALT, KC_ENT) + +// Note: LAlt/Enter (ALT_ENT) is not the same thing as the keyboard shortcut Alt+Enter. +// The notation `mod/tap` denotes a key that activates the modifier `mod` when held down, and +// produces the key `tap` when tapped (i.e. pressed and released). + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* + * Base Layer: QWERTY + * + * ,-------------------------------------------. ,-------------------------------------------. + * | Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp | + * |--------+------+------+------+------+------| |------+------+------+------+------+--------| + * |Ctrl/Esc| A | S | D | F | G | | H | J | K | L | ; : |Ctrl/' | + * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| + * | LShift | Z | X | C | V | B | [ { |CapsLk| |F-keys| ] } | N | M | , < | . > | / ? | RShift | + * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + * |Adjust| LGUI | LAlt/| Space| Nav | | Sym | Space| AltGr| RGUI | Menu | + * | | | Enter| | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-----------------------------------. ,-----------------------------------. + * | MUTE | ____ | _____ | ____ | ____ | | MUTE | ____ | _____ | ____ | ____ | + * `-----------------------------------' `-----------------------------------' + */ + [_QWERTY] = LAYOUT_split_3x6_5_hlc( + KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y, KC_U , KC_I , KC_O , KC_P , KC_BSPC, + CTL_ESC , KC_A , KC_S , KC_D , KC_F , KC_G , KC_H, KC_J , KC_K , KC_L ,KC_SCLN,CTL_QUOT, + KC_LSFT , KC_Z , KC_X , KC_C , KC_V , KC_B , KC_LBRC,KC_CAPS, FKEYS , KC_RBRC, KC_N, KC_M ,KC_COMM, KC_DOT ,KC_SLSH, KC_RSFT, + ADJUST , KC_LGUI, ALT_ENT, KC_SPC , NAV , SYM , KC_SPC ,KC_RALT, KC_RGUI, KC_APP, + KC_MUTE, KC_NO, KC_NO, KC_NO, KC_NO, KC_MUTE, KC_NO, KC_NO, KC_NO, KC_NO + ), + +/* + * Base Layer: Dvorak + * + * ,-------------------------------------------. ,-------------------------------------------. + * | Tab | ' | , < | . > | P | Y | | F | G | C | R | L | Bksp | + * |--------+------+------+------+------+------| |------+------+------+------+------+--------| + * |Ctrl/Esc| A | O | E | U | I | | D | H | T | N | S |Ctrl/- _| + * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| + * | LShift | ; : | Q | J | K | X | [ { |CapsLk| |F-keys| ] } | B | M | W | V | Z | RShift | + * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + * |Adjust| LGUI | LAlt/| Space| Nav | | Sym | Space| AltGr| RGUI | Menu | + * | | | Enter| | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-----------------------------------. ,-----------------------------------. + * | MUTE | ____ | _____ | ____ | ____ | | MUTE | ____ | _____ | ____ | ____ | + * `-----------------------------------' `-----------------------------------' + */ + [_DVORAK] = LAYOUT_split_3x6_5_hlc( + KC_TAB ,KC_QUOTE,KC_COMM, KC_DOT, KC_P , KC_Y , KC_F, KC_G , KC_C , KC_R , KC_L , KC_BSPC, + CTL_ESC , KC_A , KC_O , KC_E , KC_U , KC_I , KC_D, KC_H , KC_T , KC_N , KC_S , CTL_MINS, + KC_LSFT ,KC_SCLN, KC_Q , KC_J , KC_K , KC_X , KC_LBRC,KC_CAPS, FKEYS , KC_RBRC, KC_B, KC_M , KC_W , KC_V , KC_Z , KC_RSFT, + ADJUST, KC_LGUI, ALT_ENT, KC_SPC , NAV , SYM , KC_SPC ,KC_RALT, KC_RGUI, KC_APP, + KC_MUTE, KC_NO, KC_NO, KC_NO, KC_NO, KC_MUTE, KC_NO, KC_NO, KC_NO, KC_NO + ), + +/* + * Base Layer: Colemak DH + * + * ,-------------------------------------------. ,-------------------------------------------. + * | Tab | Q | W | F | P | B | | J | L | U | Y | ; : | Bksp | + * |--------+------+------+------+------+------| |------+------+------+------+------+--------| + * |Ctrl/Esc| A | R | S | T | G | | M | N | E | I | O |Ctrl/' | + * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| + * | LShift | Z | X | C | D | V | [ { |CapsLk| |F-keys| ] } | K | H | , < | . > | / ? | RShift | + * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + * |Adjust| LGUI | LAlt/| Space| Nav | | Sym | Space| AltGr| RGUI | Menu | + * | | | Enter| | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-----------------------------------. ,-----------------------------------. + * | MUTE | ____ | _____ | ____ | ____ | | MUTE | ____ | _____ | ____ | ____ | + * `-----------------------------------' `-----------------------------------' + */ + [_COLEMAK_DH] = LAYOUT_split_3x6_5_hlc( + KC_TAB , KC_Q , KC_W , KC_F , KC_P , KC_B , KC_J, KC_L , KC_U , KC_Y ,KC_SCLN, KC_BSPC, + CTL_ESC , KC_A , KC_R , KC_S , KC_T , KC_G , KC_M, KC_N , KC_E , KC_I , KC_O , CTL_QUOT, + KC_LSFT , KC_Z , KC_X , KC_C , KC_D , KC_V , KC_LBRC,KC_CAPS, FKEYS , KC_RBRC, KC_K, KC_H ,KC_COMM, KC_DOT ,KC_SLSH, KC_RSFT, + ADJUST, KC_LGUI, ALT_ENT, KC_SPC , NAV , SYM , KC_SPC ,KC_RALT, KC_RGUI, KC_APP, + KC_MUTE, KC_NO, KC_NO, KC_NO, KC_NO, KC_MUTE, KC_NO, KC_NO, KC_NO, KC_NO + ), + +/* + * Nav Layer: Media, navigation + * + * ,-------------------------------------------. ,-------------------------------------------. + * | | | | | | | | PgUp | Home | ↑ | End | VolUp| Delete | + * |--------+------+------+------+------+------| |------+------+------+------+------+--------| + * | | GUI | Alt | Ctrl | Shift| | | PgDn | ← | ↓ | → | VolDn| Insert | + * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| + * | | | | | | | |ScLck | | | | Pause|M Prev|M Play|M Next|VolMut| PrtSc | + * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + * | | | | | | | | | | | | + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-----------------------------------. ,-----------------------------------. + * | | | | | | | | | | | | + * `-----------------------------------' `-----------------------------------' + */ + [_NAV] = LAYOUT_split_3x6_5_hlc( + _______, _______, _______, _______, _______, _______, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_VOLU, KC_DEL, + _______, KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, _______, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_VOLD, KC_INS, + _______, _______, _______, _______, _______, _______, _______, KC_SCRL, _______, _______,KC_PAUSE, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_PSCR, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + +/* + * Sym Layer: Numbers and symbols + * + * ,-------------------------------------------. ,-------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | = | + * |--------+------+------+------+------+------| |------+------+------+------+------+--------| + * | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | + | + * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| + * | | | \ | : | ; | - | [ | { | | | | } | ] | _ | , | . | / | ? | + * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + * | | | | | | | | | | | | + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-----------------------------------. ,-----------------------------------. + * | | | | | | | | | | | | + * `-----------------------------------' `-----------------------------------' + */ + [_SYM] = LAYOUT_split_3x6_5_hlc( + KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_EQL , + KC_TILD , KC_EXLM, KC_AT , KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_PLUS, + KC_PIPE , KC_BSLS, KC_COLN, KC_SCLN, KC_MINS, KC_LBRC, KC_LCBR, _______, _______, KC_RCBR, KC_RBRC, KC_UNDS, KC_COMM, KC_DOT, KC_SLSH, KC_QUES, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + +/* + * Function Layer: Function keys + * + * ,-------------------------------------------. ,-------------------------------------------. + * | | F9 | F10 | F11 | F12 | | | | | | | | | + * |--------+------+------+------+------+------| |------+------+------+------+------+--------| + * | | F5 | F6 | F7 | F8 | | | | Shift| Ctrl | Alt | GUI | | + * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| + * | | F1 | F2 | F3 | F4 | | | | | | | | | | | | | + * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + * | | | | | | | | | | | | + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-----------------------------------. ,-----------------------------------. + * | | | | | | | | | | | | + * `-----------------------------------' `-----------------------------------' + */ + [_FUNCTION] = LAYOUT_split_3x6_5_hlc( + _______, KC_F9 , KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, + _______, KC_F5 , KC_F6 , KC_F7 , KC_F8 , _______, _______, KC_RSFT, KC_RCTL, KC_LALT, KC_RGUI, _______, + _______, KC_F1 , KC_F2 , KC_F3 , KC_F4 , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + +/* + * Adjust Layer: Default layer settings, RGB + * + * ,-------------------------------------------. ,-------------------------------------------. + * | | | |QWERTY| | | | | | | | | | + * |--------+------+------+------+------+------| |------+------+------+------+------+--------| + * | | | |Dvorak| | | | TOG | SAI | HUI | VAI | MOD | | + * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| + * | | | |Colmak| | | | | | | | | SAD | HUD | VAD | RMOD | | + * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + * | | | | | | | | | | | | + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-----------------------------------. ,-----------------------------------. + * | | | | | | | | | | | | + * `-----------------------------------' `-----------------------------------' + */ + [_ADJUST] = LAYOUT_split_3x6_5_hlc( + _______, _______, _______, QWERTY , _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, DVORAK , _______, _______, RGB_TOG, RGB_SAI, RGB_HUI, RGB_VAI, RGB_MOD , _______, + _______, _______, _______, COLEMAK, _______, _______,_______, _______, _______, _______, _______, RGB_SAD, RGB_HUD, RGB_VAD, RGB_RMOD, _______, + _______, _______, _______,_______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + +// /* +// * Halcyon Layer template +// * +// * ,-------------------------------------------. ,-------------------------------------------. +// * | | | | | | | | | | | | | | +// * |--------+------+------+------+------+------| |------+------+------+------+------+--------| +// * | | | | | | | | | | | | | | +// * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| +// * | | | | | | | | | | | | | | | | | | +// * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' +// * | | | | | | | | | | | | +// * | | | | | | | | | | | | +// * `----------------------------------' `----------------------------------' +// * ,-----------------------------------. ,-----------------------------------. +// * | | | | | | | | | | | | +// * `-----------------------------------' `-----------------------------------' +// */ +// [_LAYERINDEX] = LAYOUT_split_3x6_5_hlc( +// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +// +// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +// ), +}; + +#ifdef ENCODER_ENABLE +bool encoder_update_user(uint8_t index, bool clockwise) { + + if (index == 0) { + // Volume control + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } else if (index == 1) { + // Volume control + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } else if (index == 2) { + // Page up/Page down + if (clockwise) { + tap_code(KC_PGDN); + } else { + tap_code(KC_PGUP); + } + } else if (index == 3) { + // Page up/Page down + if (clockwise) { + tap_code(KC_PGDN); + } else { + tap_code(KC_PGUP); + } + } + return false; +} +#endif diff --git a/qmk/kyria/readme.md b/qmk/kyria/readme.md new file mode 100644 index 0000000..e56bbbb --- /dev/null +++ b/qmk/kyria/readme.md @@ -0,0 +1,242 @@ +# Halcyon Kyria's Default Keymap + +![KLE render of the default Halcyon Kyria keymap with QWERTY as the base layer. Layers are shown in sublegends.](https://i.ibb.co/RQZx2dY/default-kyria2.jpg) + + +The default keymap contains 5 layers which allows it to include all keys found on an ANSI layout TKL keyboard plus media keys. + +The five different layers are the following: +1. Base layer (QWERTY, Colemak-DH or Dvorak) +2. Navigation layer +3. Symbols/Numbers layer +4. Function layer +5. Adjust layer + +## Base layer(s) +``` +Base Layer: - + +,-------------------------------------------. ,-------------------------------------------. +| Tab | - | - | - | - | - | | - | - | - | - | - | Bksp | +|--------+------+------+------+------+------| |------+------+------+------+------+--------| +|Ctrl/Esc| - | - | - | - | - | | - | - | - | - | - |Ctrl/ - | +|--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| +| LShift | - | - | - | - | - | [ { |CapsLk| |F-Keys| ] } | - | - | - | - | - | RShift | +`----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + |Adjust| LGUI | LAlt/| Space| Nav | | Sym | Space| AltGr| RGUI | Menu | + | | | Enter| | | | | | | | | + `----------------------------------' `----------------------------------' +``` +Three different well-known keyboard layouts are provided to fill in the placeholder `-` keys: QWERTY, Colemak-DH, and Dvorak. The default layer can be changed at runtime, more info on that in the section on the [adjust layer](#adjust-layer). + +For the rest of this write-up, the base layer will be assumed to be QWERTY and will be used as a reference to describe physical keys, e.g. “B key” vs, the much more verbose, “lower inner index key”. + +``` +Base Layer: QWERTY + +,-------------------------------------------. ,-------------------------------------------. +| Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp | +|--------+------+------+------+------+------| |------+------+------+------+------+--------| +|Ctrl/Esc| A | S | D | F | G | | H | J | K | L | ; : |Ctrl/' "| +|--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| +| LShift | Z | X | C | V | B | [ { |CapsLk| |F-keys| ] } | N | M | , < | . > | / ? | RShift | +`----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + |Adjust| LGUI | LAlt/| Space| Nav | | Sym | Space| AltGr| RGUI | Menu | + | | | Enter| | | | | | | | | + `----------------------------------' `----------------------------------' +``` + +Aside from variations in the alpha cluster, the rest of the base keys remain the same and are designed to feel familiar. + +![Step-by-step animation of the transformation of an ortholinear TKL to a Kyria](https://i.imgur.com/uVDCOek.gif) + +
+After making transformations to the classic ANSI US QWERTY TKL 60% to arrive to the layout of the Kyria, as illustrated in the animation above, the result looks like this: + +``` +,-------------------------------------------. ,-------------------------------------------. +| Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp | +|--------+------+------+------+------+------| |------+------+------+------+------+--------| +| Cap Lk | A | S | D | F | G | | H | J | K | L | ; : | ' " | +|--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| +| LShift | Z | X | C | V | B | | | | | | N | M | , < | . > | / ? | RShift | +`----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + | LCtrl| LGUI | LAlt | Space| | | | Space| AltGr| RGUI | Menu | + | | | | | | | | | | | | + `----------------------------------' '----------------------------------' +``` + +First thing to notice is the presence of blank keys. To fill in the blank keys above the Space keys, we can take inspiration from other split keyboards featuring an extra inner index column on each half. A common mapping for those kind of keys are the bracket keys that got removed in the fourth step of the animated transformation. The thumb keys besides Spaces is prime real estate for dedicated layer-switching keys. It doesn't matter on which side is assigned the sym-layer-switch key but it helps to keep the nav-layer-switch on the left in order to keep the arrow keys on the right side like on a classic keyboard, so we'll put nav on the left and sym on the right. We'll address the remaining blank thumb keys later. + +The base layer is starting to form but there remains some flaws. One glaring issue is the position of Control. Control is a very commonly used function but the key on which it sits right now is way too tucked in under the hand to be able to press it comfortably with either the thumb or the pinky from resting position. In fact, installing a rotary encoder there is a common move among Kyria users and I guarantee you that activating Control by holding down a rotary encoder does not spark joy. Instead, let's employ a popular trick that involves remapping the current Caps Lock key, which is positioned at a comfortable position on the keyboard, to Control. + +We can go further though; a variant of this trick makes the Control key produce Escape when tapped. This is called a “modtap”. There is no use to tapping Control by itself without chording it with another key and there is no use to holding down the Esc key so why not combine the two into a single key? + +All of this leaves us with three blank keys. + +``` +,-------------------------------------------. ,-------------------------------------------. +| Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp | +|--------+------+------+------+------+------| |------+------+------+------+------+--------| +|Ctrl/Esc| A | S | D | F | G | | H | J | K | L | ; : | ' " | +|--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| +| LShift | Z | X | C | V | B | [ { | | | | ] } | N | M | , < | . > | / ? | RShift | +`--------+-------------+--------------------+------+------| |------+------+--------------------+------+---------------' + | | LGUI | LAlt | Space| Nav | | Sym | Space| AltGr| RGUI | Menu | + | | | | | | | | | | | | + `----------------------------------' '----------------------------------' +``` + +These keys are not easily reachable while touch typing (that is, not reachable without picking up your hand) and should thus be associated with functions that you are not likely to be typed within a stream of text. The idea is that if you have to pick up your hand to hit a key, you want it to be at a time when you are likely to be pausing your interaction with the machine, rather than in the midst of a flurry of typing. They're thus well suited for accessing the adjust layer and the function layer. We can also toss in Caps Lock even though it is an editing-type function that gets used within a stream of text because shouting in ALL-CAPS should be a deliberate action. + +``` +,-------------------------------------------. ,-------------------------------------------. +| Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp | +|--------+------+------+------+------+------| |------+------+------+------+------+--------| +|Ctrl/Esc| A | S | D | F | G | | H | J | K | L | ; : | ' " | +|--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| +| LShift | Z | X | C | V | B | [ { |CapsLk| |F-keys| ] } | N | M | , < | . > | / ? | RShift | +`----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + |Adjust| LGUI | LAlt | Space| Nav | | Sym | Space| AltGr| RGUI | Menu | + | | | | | | | | | | | | + `----------------------------------' `----------------------------------' +``` + +The next glaring issue is the absence of an Enter key on the current base layer this far. Enter is a very frequently used key so it deserves to be placed at a good spot in the keymap. The best way to insert it in the keymap with minimal changes to the current layout is to use modtaps. A tempting solution is to turn the RShift key into a RShift/Enter modtap but that can result in chat messages sent too frustratingly early when you're not used to it. Using GUI is also sub-optimal because tapping the GUI modifier actually has a use as opposed to taps of the Control or the Shift key. Pressing and releasing the GUI key by itself opens the App menu in many desktop environments. The natural choice is thus LAlt/Enter. That way, Enter is 1u away from resting thumb position and is unlikely to get accidentally activated because Alt is very rarely used in the midst of prose. + +Finally, we're one Quality-Of-Life update away from the actual base layer. Ctrl/' " not only preserves symmetry in the keymap with Ctrl/Esc but also helps balance the load between your pinkies and invites you to use both hands instead of contortions. Perhaps more importantly, it also frees you from the necessity of picking up your hand, breaking touch typing position and pressing a pinky key with your ring finger in order to execute Ctrl+A or Ctrl+Z. That becomes even more important on a board with such an aggressive pinky columnar stagger like the Kyria. + + +``` +,-------------------------------------------. ,-------------------------------------------. +| Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp | +|--------+------+------+------+------+------| |------+------+------+------+------+--------| +|Ctrl/Esc| A | S | D | F | G | | H | J | K | L | ; : |Ctrl/' "| +|--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| +| LShift | Z | X | C | V | B | [ { |CapsLk| |F-keys| ] } | N | M | , < | . > | / ? | RShift | +`----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + |Adjust| LGUI | LAlt/| Space| Nav | | Sym | Space| AltGr| RGUI | Menu | + | | | Enter| | | | | | | | | + `----------------------------------' `----------------------------------' +``` + +
+ +## Navigation layer + +``` +Nav Layer: Media, navigation + +,-------------------------------------------. ,-------------------------------------------. +| | | | | | | | PgUp | Home | ↑ | End | VolUp| Delete | +|--------+------+------+------+------+------| |------+------+------+------+------+--------| +| | GUI | Alt | Ctrl | Shift| | | PgDn | ← | ↓ | → | VolDn| Insert | +|--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| +| | | | | | | |ScLck | | | | Pause|M Prev|M Play|M Next|VolMut| PrtSc | +`----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + | | | | | | | | | | | | + | | | | | | | | | | | | + `----------------------------------' `----------------------------------' +``` + +This is where you'll find all the keys that are generally between the main block of a classic keyboard and the numpad in addition to media controls and modifiers on easy access on the home row for fast and comfortable chording with navigation keys. + +Useful mnemonics: +- “GACS” to remember the order of the modifiers on the left-hand home row +- Scroll Lock is on the same key as Caps Lock because they're both locks +- Delete is on the same key as Backspace because they both erase characters +- Home is the leftmost position on the current line so it is above . Same logic applies for End. +- Media Previous = ⏮, Media Next = ⏭ +- Page Up, Page Down and Volume Up, Volume Down are positioned like the main Up and Down keys. + +## Sym layer +``` +Sym Layer: Numbers, symbols + +,-------------------------------------------. ,-------------------------------------------. +| ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | = | +|--------+------+------+------+------+------| |------+------+------+------+------+--------| +| ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | + | +|--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| +| | | \ | : | ; | - | [ | { | | | | } | ] | _ | , | . | / | ? | +`----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + | | | | | | | | | | | | + | | | | | | | | | | | | + `----------------------------------' `----------------------------------' +``` +The top row is the unshifted num row, the home row of the layer is the shifted num row and the bottom row contains the hyphen `-` and the underscore `_` on the best lower row spot because of how frequent they are as well as redundant symbols that are already present on the base layer but are reproduced here to avoid juggling back and forth between base, shift, and sym when typing a string of symbols. + +The layout of the first two rows needs no introduction, you're already used to them but it's worth looking into the structure of the bottom row. + +The two halves are mirrored in a sense. On the right, you can find , . / at their usual spots with the addition of Shift+/=? to the right of the / key to remove the need to press simultaneously Sym and a Shift key to access `?`. + +Now, if you look at the left side, you'll notice that the mirror of , is ;, the mirror of . is : and the mirror of / is \\. The same logic used for Shift+/=? also applies to Shift+\\=|. + +In case you wish to combine Shift with a symbol key anyways, you can hold down Shift on the base layer with your pinky, activate Sym with your right thumb and while still holding down the Shift key, tap your desired symbol key. Same thing if you need Ctrl+Digit. + +## Function layer +``` +Function Layer: Function keys + +,-------------------------------------------. ,-------------------------------------------. +| | F9 | F10 | F11 | F12 | | | | | | | | | +|--------+------+------+------+------+------| |------+------+------+------+------+--------| +| | F5 | F6 | F7 | F8 | | | | Shift| Ctrl | Alt | GUI | | +|--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| +| | F1 | F2 | F3 | F4 | | | | | | | | | | | | | +`----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + | | | | | | | | | | | | + | | | | | | | | | | | | + `----------------------------------' `----------------------------------' +``` +In a similar fashion to the nav layer, pressing down `FKEYS` with the right thumb enables a numpad of function keys on the opposite hand and modifiers on the right-hand home row. Once again, mirror symmetry is leveraged in this keymap for the order of the right-hand modifiers. + +The Alt modifier, despite being situated on the right half of the keyboard is *not* `KC_RALT`, it is `KC_LALT`. `KC_RALT` is actually the AltGr key which generally acts very differently to the left Alt key. Keyboard shortcuts involving AltGr+F# are rare and infrequent as opposed to the much more common Alt+F# shortcuts. Consequently, `KC_LALT` was chosen for the function layer. + +Since there are more than 10 function keys, the cluster of F-keys does not follow the usual 3×3+1 numpad arrangement. + + +## Adjust layer +``` +Adjust Layer: Default layer settings, RGB + +,-------------------------------------------. ,-------------------------------------------. +| | | |QWERTY| | | | | | | | | | +|--------+------+------+------+------+------| |------+------+------+------+------+--------| +| | | |Dvorak| | | | TOG | SAI | HUI | VAI | MOD | | +|--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| +| | | |Colmak| | | | | | | | | SAD | HUD | VAD | RMOD | | +`----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + | | | | | | | | | | | | + | | | | | | | | | | | | + `----------------------------------' `----------------------------------' +``` + +Default layer settings on the left and various RGB underglow controls on the right. + +The default layer settings are lined up on the middle finger column because the home middle finger key is D on QWERTY (like the “D” in “Dvorak”) and the lower middle finger key is C on QWERTY (like the “C” in “Colemak”). I can hear you say that “QWERTY” doesn't start with “E” but Dvorak and Colemak were already aligned in a column so the QWERTY may as well join the formation. + +NOTE: The default layer settings set by those keys are *NOT* stored in EEPROM and thus do not persist through boots. If you wish to change the default layer in a non-volatile manner, either change the order of the layers in the firmware, for example like so if you want to set Dvorak as the new default: +```c +enum layers { + _DVORAK = 0, + _QWERTY, + _COLEMAK_DH, + _NAV, + _SYM, + _FUNCTION, + _ADJUST +}; +``` +or re-define the `QWERTY`, `COLEMAK` and `DVORAK` keys to point to custom keycodes starting on `SAFE_RANGE` and calling the `set_single_persistent_default_layer` function inside of `process_record_user`. + +## Hardware Features + +### Rotary Encoder +The left rotary encoder is programmed to control the volume whereas the right encoder sends PgUp or PgDn on every turn. + +## Going further… + +This default keymap can be used as is, unchanged, as a daily driver for your Kyria but you're invited to treat your keymap like a bonsai. At the beginning, it's just like the default keymap but from time to time, you can tweak it a little. Cut a little key here, let another combo grow there. Slowly but surely it will be a unique keymap that will fit you like a glove. + +Check out the #keymap-ideas channel on the official SplitKB Discord server for inspiration. diff --git a/qmk/kyria/rules.mk b/qmk/kyria/rules.mk new file mode 100644 index 0000000..54a02a4 --- /dev/null +++ b/qmk/kyria/rules.mk @@ -0,0 +1,2 @@ +# This adds module functionality to your keyboard (files found in users/halcyon_modules) +USER_NAME := halcyon_modules From dc025b85fbd4f61a43317e1147852000045b7dcf Mon Sep 17 00:00:00 2001 From: Fatih Arslan Date: Mon, 10 Feb 2025 22:07:41 +0300 Subject: [PATCH 02/13] Remove dvorak and colemak, start changing keymap Signed-off-by: Fatih Arslan --- qmk/kyria/keymap.c | 66 +++++----------------------------------------- 1 file changed, 7 insertions(+), 59 deletions(-) diff --git a/qmk/kyria/keymap.c b/qmk/kyria/keymap.c index 1bd7229..1e0cc71 100644 --- a/qmk/kyria/keymap.c +++ b/qmk/kyria/keymap.c @@ -16,8 +16,6 @@ enum layers { // Aliases for readability #define QWERTY DF(_QWERTY) -#define COLEMAK DF(_COLEMAK_DH) -#define DVORAK DF(_DVORAK) #define SYM MO(_SYM) #define NAV MO(_NAV) @@ -53,60 +51,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------' `-----------------------------------' */ [_QWERTY] = LAYOUT_split_3x6_5_hlc( - KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y, KC_U , KC_I , KC_O , KC_P , KC_BSPC, - CTL_ESC , KC_A , KC_S , KC_D , KC_F , KC_G , KC_H, KC_J , KC_K , KC_L ,KC_SCLN,CTL_QUOT, + KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y, KC_U , KC_I , KC_O , KC_P , KC_BSLS, + KC_LCTL , KC_A , KC_S , KC_D , KC_F , KC_G , KC_H, KC_J , KC_K , KC_L ,KC_SCLN,CTL_QUOT, KC_LSFT , KC_Z , KC_X , KC_C , KC_V , KC_B , KC_LBRC,KC_CAPS, FKEYS , KC_RBRC, KC_N, KC_M ,KC_COMM, KC_DOT ,KC_SLSH, KC_RSFT, - ADJUST , KC_LGUI, ALT_ENT, KC_SPC , NAV , SYM , KC_SPC ,KC_RALT, KC_RGUI, KC_APP, - KC_MUTE, KC_NO, KC_NO, KC_NO, KC_NO, KC_MUTE, KC_NO, KC_NO, KC_NO, KC_NO - ), - -/* - * Base Layer: Dvorak - * - * ,-------------------------------------------. ,-------------------------------------------. - * | Tab | ' | , < | . > | P | Y | | F | G | C | R | L | Bksp | - * |--------+------+------+------+------+------| |------+------+------+------+------+--------| - * |Ctrl/Esc| A | O | E | U | I | | D | H | T | N | S |Ctrl/- _| - * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| - * | LShift | ; : | Q | J | K | X | [ { |CapsLk| |F-keys| ] } | B | M | W | V | Z | RShift | - * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' - * |Adjust| LGUI | LAlt/| Space| Nav | | Sym | Space| AltGr| RGUI | Menu | - * | | | Enter| | | | | | | | | - * `----------------------------------' `----------------------------------' - * ,-----------------------------------. ,-----------------------------------. - * | MUTE | ____ | _____ | ____ | ____ | | MUTE | ____ | _____ | ____ | ____ | - * `-----------------------------------' `-----------------------------------' - */ - [_DVORAK] = LAYOUT_split_3x6_5_hlc( - KC_TAB ,KC_QUOTE,KC_COMM, KC_DOT, KC_P , KC_Y , KC_F, KC_G , KC_C , KC_R , KC_L , KC_BSPC, - CTL_ESC , KC_A , KC_O , KC_E , KC_U , KC_I , KC_D, KC_H , KC_T , KC_N , KC_S , CTL_MINS, - KC_LSFT ,KC_SCLN, KC_Q , KC_J , KC_K , KC_X , KC_LBRC,KC_CAPS, FKEYS , KC_RBRC, KC_B, KC_M , KC_W , KC_V , KC_Z , KC_RSFT, - ADJUST, KC_LGUI, ALT_ENT, KC_SPC , NAV , SYM , KC_SPC ,KC_RALT, KC_RGUI, KC_APP, - KC_MUTE, KC_NO, KC_NO, KC_NO, KC_NO, KC_MUTE, KC_NO, KC_NO, KC_NO, KC_NO - ), - -/* - * Base Layer: Colemak DH - * - * ,-------------------------------------------. ,-------------------------------------------. - * | Tab | Q | W | F | P | B | | J | L | U | Y | ; : | Bksp | - * |--------+------+------+------+------+------| |------+------+------+------+------+--------| - * |Ctrl/Esc| A | R | S | T | G | | M | N | E | I | O |Ctrl/' | - * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| - * | LShift | Z | X | C | D | V | [ { |CapsLk| |F-keys| ] } | K | H | , < | . > | / ? | RShift | - * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' - * |Adjust| LGUI | LAlt/| Space| Nav | | Sym | Space| AltGr| RGUI | Menu | - * | | | Enter| | | | | | | | | - * `----------------------------------' `----------------------------------' - * ,-----------------------------------. ,-----------------------------------. - * | MUTE | ____ | _____ | ____ | ____ | | MUTE | ____ | _____ | ____ | ____ | - * `-----------------------------------' `-----------------------------------' - */ - [_COLEMAK_DH] = LAYOUT_split_3x6_5_hlc( - KC_TAB , KC_Q , KC_W , KC_F , KC_P , KC_B , KC_J, KC_L , KC_U , KC_Y ,KC_SCLN, KC_BSPC, - CTL_ESC , KC_A , KC_R , KC_S , KC_T , KC_G , KC_M, KC_N , KC_E , KC_I , KC_O , CTL_QUOT, - KC_LSFT , KC_Z , KC_X , KC_C , KC_D , KC_V , KC_LBRC,KC_CAPS, FKEYS , KC_RBRC, KC_K, KC_H ,KC_COMM, KC_DOT ,KC_SLSH, KC_RSFT, - ADJUST, KC_LGUI, ALT_ENT, KC_SPC , NAV , SYM , KC_SPC ,KC_RALT, KC_RGUI, KC_APP, + ADJUST , KC_LGUI, KC_LGUI, KC_BSPC , NAV , SYM , KC_SPC ,KC_RALT, KC_RGUI, KC_APP, KC_MUTE, KC_NO, KC_NO, KC_NO, KC_NO, KC_MUTE, KC_NO, KC_NO, KC_NO, KC_NO ), @@ -191,9 +139,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,-------------------------------------------. ,-------------------------------------------. * | | | |QWERTY| | | | | | | | | | * |--------+------+------+------+------+------| |------+------+------+------+------+--------| - * | | | |Dvorak| | | | TOG | SAI | HUI | VAI | MOD | | + * | | | | | | | | TOG | SAI | HUI | VAI | MOD | | * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| - * | | | |Colmak| | | | | | | | | SAD | HUD | VAD | RMOD | | + * | | | | | | | | | | | | | SAD | HUD | VAD | RMOD | | * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' * | | | | | | | | | | | | * | | | | | | | | | | | | @@ -204,8 +152,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_ADJUST] = LAYOUT_split_3x6_5_hlc( _______, _______, _______, QWERTY , _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, DVORAK , _______, _______, RGB_TOG, RGB_SAI, RGB_HUI, RGB_VAI, RGB_MOD , _______, - _______, _______, _______, COLEMAK, _______, _______,_______, _______, _______, _______, _______, RGB_SAD, RGB_HUD, RGB_VAD, RGB_RMOD, _______, + _______, _______, _______, _______, _______, _______, RGB_TOG, RGB_SAI, RGB_HUI, RGB_VAI, RGB_MOD , _______, + _______, _______, _______, _______, _______, _______,_______, _______, _______, _______, _______, RGB_SAD, RGB_HUD, RGB_VAD, RGB_RMOD, _______, _______, _______, _______,_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), From e0708cbceed293d6068d7aba67b7998e1b10742f Mon Sep 17 00:00:00 2001 From: Fatih Arslan Date: Tue, 11 Feb 2025 00:00:43 +0300 Subject: [PATCH 03/13] Swap to my own layouts Signed-off-by: Fatih Arslan --- qmk/kyria/keymap.c | 179 +++++++++++++++------------------------------ 1 file changed, 59 insertions(+), 120 deletions(-) diff --git a/qmk/kyria/keymap.c b/qmk/kyria/keymap.c index 1e0cc71..409a80f 100644 --- a/qmk/kyria/keymap.c +++ b/qmk/kyria/keymap.c @@ -5,31 +5,16 @@ enum layers { _QWERTY = 0, - _DVORAK, - _COLEMAK_DH, - _NAV, - _SYM, - _FUNCTION, - _ADJUST, + _SYMBOLS, + _NUMPAD, }; // Aliases for readability -#define QWERTY DF(_QWERTY) +#define MACLOCK LGUI(LCTL(KC_Q)) -#define SYM MO(_SYM) -#define NAV MO(_NAV) -#define FKEYS MO(_FUNCTION) -#define ADJUST MO(_ADJUST) - -#define CTL_ESC MT(MOD_LCTL, KC_ESC) #define CTL_QUOT MT(MOD_RCTL, KC_QUOTE) -#define CTL_MINS MT(MOD_RCTL, KC_MINUS) -#define ALT_ENT MT(MOD_LALT, KC_ENT) -// Note: LAlt/Enter (ALT_ENT) is not the same thing as the keyboard shortcut Alt+Enter. -// The notation `mod/tap` denotes a key that activates the modifier `mod` when held down, and -// produces the key `tap` when tapped (i.e. pressed and released). // clang-format off const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { @@ -39,11 +24,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,-------------------------------------------. ,-------------------------------------------. * | Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp | * |--------+------+------+------+------+------| |------+------+------+------+------+--------| - * |Ctrl/Esc| A | S | D | F | G | | H | J | K | L | ; : |Ctrl/' | + * | Ctrl | A | S | D | F | G | | H | J | K | L | ; : |Ctrl/' | * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| - * | LShift | Z | X | C | V | B | [ { |CapsLk| |F-keys| ] } | N | M | , < | . > | / ? | RShift | + * | LShift | Z | X | C | V | B | Shift|Hyper | | ESC | Shift| N | M | , < | . > | / ? | RShift | * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' - * |Adjust| LGUI | LAlt/| Space| Nav | | Sym | Space| AltGr| RGUI | Menu | + * |Left | Right| GUI | Bspc | ALT | | ALT | Enter| Space| Up | Down | * | | | Enter| | | | | | | | | * `----------------------------------' `----------------------------------' * ,-----------------------------------. ,-----------------------------------. @@ -52,111 +37,65 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_QWERTY] = LAYOUT_split_3x6_5_hlc( KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y, KC_U , KC_I , KC_O , KC_P , KC_BSLS, - KC_LCTL , KC_A , KC_S , KC_D , KC_F , KC_G , KC_H, KC_J , KC_K , KC_L ,KC_SCLN,CTL_QUOT, - KC_LSFT , KC_Z , KC_X , KC_C , KC_V , KC_B , KC_LBRC,KC_CAPS, FKEYS , KC_RBRC, KC_N, KC_M ,KC_COMM, KC_DOT ,KC_SLSH, KC_RSFT, - ADJUST , KC_LGUI, KC_LGUI, KC_BSPC , NAV , SYM , KC_SPC ,KC_RALT, KC_RGUI, KC_APP, + KC_LCTL , KC_A , KC_S , KC_D , LT(_NUMPAD, KC_F) , LT(_SYMBOLS, KC_G), KC_H, KC_J , KC_K , KC_L ,KC_SCLN,CTL_QUOT, + KC_LSFT , KC_Z , KC_X , KC_C , KC_V , KC_B , OSM(MOD_LSFT), HYPR(KC_5), KC_ESC , OSM(MOD_RSFT), KC_N, KC_M ,KC_COMM, KC_DOT ,KC_SLSH, KC_RSFT, + KC_LEFT , KC_RIGHT, KC_LGUI, KC_BSPC , KC_LALT, KC_RALT , KC_ENT , LT(_SYMBOLS, KC_SPC), KC_UP, KC_DOWN, KC_MUTE, KC_NO, KC_NO, KC_NO, KC_NO, KC_MUTE, KC_NO, KC_NO, KC_NO, KC_NO ), -/* - * Nav Layer: Media, navigation - * - * ,-------------------------------------------. ,-------------------------------------------. - * | | | | | | | | PgUp | Home | ↑ | End | VolUp| Delete | - * |--------+------+------+------+------+------| |------+------+------+------+------+--------| - * | | GUI | Alt | Ctrl | Shift| | | PgDn | ← | ↓ | → | VolDn| Insert | - * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| - * | | | | | | | |ScLck | | | | Pause|M Prev|M Play|M Next|VolMut| PrtSc | - * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' - * | | | | | | | | | | | | - * | | | | | | | | | | | | - * `----------------------------------' `----------------------------------' - * ,-----------------------------------. ,-----------------------------------. - * | | | | | | | | | | | | - * `-----------------------------------' `-----------------------------------' - */ - [_NAV] = LAYOUT_split_3x6_5_hlc( - _______, _______, _______, _______, _______, _______, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_VOLU, KC_DEL, - _______, KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, _______, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_VOLD, KC_INS, - _______, _______, _______, _______, _______, _______, _______, KC_SCRL, _______, _______,KC_PAUSE, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_PSCR, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), + /* + * Symbol Layer template + * + * ,-------------------------------------------. ,-------------------------------------------. + * | | ! | @ | { | { | | | | F1 | F2 | | | * | | + * |--------+------+------+------+------+------| |------+------+------+------+------+--------| + * | | & | $ | ( | ) | ` | | Left | Down | Up | Right| | | + * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| + * | | # | ^ | [ | ] | ~ | | | | | | _ | - | = | % | | | + * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + * | | | | | | | | | | | | + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-----------------------------------. ,-----------------------------------. + * | | | | | | | | | | | | + * `-----------------------------------' `-----------------------------------' + */ + [_SYMBOLS] = LAYOUT_split_3x6_5_hlc( + _______, KC_EXCLAIM, KC_AT, KC_LEFT_CURLY_BRACE, KC_RIGHT_CURLY_BRACE, KC_PIPE, KC_F1, KC_F2, _______, _______, KC_ASTERISK, _______, + _______, KC_AMPERSAND, KC_DOLLAR, KC_LEFT_PAREN, KC_RIGHT_PAREN, KC_GRAVE, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, _______, _______, + _______, KC_HASH, KC_CIRCUMFLEX,KC_LBRC, KC_RBRC, KC_TILDE,_______, _______, _______, _______, KC_UNDERSCORE, KC_MINUS,KC_EQUAL,KC_PERCENT,_______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -/* - * Sym Layer: Numbers and symbols - * - * ,-------------------------------------------. ,-------------------------------------------. - * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | = | - * |--------+------+------+------+------+------| |------+------+------+------+------+--------| - * | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | + | - * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| - * | | | \ | : | ; | - | [ | { | | | | } | ] | _ | , | . | / | ? | - * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' - * | | | | | | | | | | | | - * | | | | | | | | | | | | - * `----------------------------------' `----------------------------------' - * ,-----------------------------------. ,-----------------------------------. - * | | | | | | | | | | | | - * `-----------------------------------' `-----------------------------------' - */ - [_SYM] = LAYOUT_split_3x6_5_hlc( - KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_EQL , - KC_TILD , KC_EXLM, KC_AT , KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_PLUS, - KC_PIPE , KC_BSLS, KC_COLN, KC_SCLN, KC_MINS, KC_LBRC, KC_LCBR, _______, _______, KC_RCBR, KC_RBRC, KC_UNDS, KC_COMM, KC_DOT, KC_SLSH, KC_QUES, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + /* + * Numpad Layer template + * + * ,-------------------------------------------. ,-------------------------------------------. + * | | | | | | | | | 7 | 8 | 9 | | | + * |--------+------+------+------+------+------| |------+------+------+------+------+-------| + * | | | | | | | | | 4 | 5 | 6 | | | + * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+-------| + * | | | | | | | | | | | | | 1 | 2 | 3 | | | + * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + * | | | Space| BSPC | | | | 0 | | | | + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-----------------------------------. ,-----------------------------------. + * | | | | | | | | | | | | + * `-----------------------------------' `-----------------------------------' + */ + [_NUMPAD] = LAYOUT_split_3x6_5_hlc( + _______, _______, _______, _______, _______, _______, _______, KC_KP_7, KC_KP_8, KC_KP_9, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC_KP_4, KC_KP_5, KC_KP_6, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_KP_1, KC_KP_2, KC_KP_3, _______, _______, + _______, _______, KC_SPC, KC_BSPC, _______, _______, KC_KP_DOT, KC_KP_ENTER, _______, _______, + + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), -/* - * Function Layer: Function keys - * - * ,-------------------------------------------. ,-------------------------------------------. - * | | F9 | F10 | F11 | F12 | | | | | | | | | - * |--------+------+------+------+------+------| |------+------+------+------+------+--------| - * | | F5 | F6 | F7 | F8 | | | | Shift| Ctrl | Alt | GUI | | - * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| - * | | F1 | F2 | F3 | F4 | | | | | | | | | | | | | - * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' - * | | | | | | | | | | | | - * | | | | | | | | | | | | - * `----------------------------------' `----------------------------------' - * ,-----------------------------------. ,-----------------------------------. - * | | | | | | | | | | | | - * `-----------------------------------' `-----------------------------------' - */ - [_FUNCTION] = LAYOUT_split_3x6_5_hlc( - _______, KC_F9 , KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, - _______, KC_F5 , KC_F6 , KC_F7 , KC_F8 , _______, _______, KC_RSFT, KC_RCTL, KC_LALT, KC_RGUI, _______, - _______, KC_F1 , KC_F2 , KC_F3 , KC_F4 , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), -/* - * Adjust Layer: Default layer settings, RGB - * - * ,-------------------------------------------. ,-------------------------------------------. - * | | | |QWERTY| | | | | | | | | | - * |--------+------+------+------+------+------| |------+------+------+------+------+--------| - * | | | | | | | | TOG | SAI | HUI | VAI | MOD | | - * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| - * | | | | | | | | | | | | | SAD | HUD | VAD | RMOD | | - * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' - * | | | | | | | | | | | | - * | | | | | | | | | | | | - * `----------------------------------' `----------------------------------' - * ,-----------------------------------. ,-----------------------------------. - * | | | | | | | | | | | | - * `-----------------------------------' `-----------------------------------' - */ - [_ADJUST] = LAYOUT_split_3x6_5_hlc( - _______, _______, _______, QWERTY , _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, RGB_TOG, RGB_SAI, RGB_HUI, RGB_VAI, RGB_MOD , _______, - _______, _______, _______, _______, _______, _______,_______, _______, _______, _______, _______, RGB_SAD, RGB_HUD, RGB_VAD, RGB_RMOD, _______, - _______, _______, _______,_______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), // /* // * Halcyon Layer template From 5680f1802f4349f121ecb603130adce490951b07 Mon Sep 17 00:00:00 2001 From: Fatih Arslan Date: Tue, 11 Feb 2025 00:07:00 +0300 Subject: [PATCH 04/13] Add a few more keycodes Signed-off-by: Fatih Arslan --- qmk/kyria/keymap.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/qmk/kyria/keymap.c b/qmk/kyria/keymap.c index 409a80f..47ef2bd 100644 --- a/qmk/kyria/keymap.c +++ b/qmk/kyria/keymap.c @@ -87,9 +87,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------' `-----------------------------------' */ [_NUMPAD] = LAYOUT_split_3x6_5_hlc( - _______, _______, _______, _______, _______, _______, _______, KC_KP_7, KC_KP_8, KC_KP_9, _______, _______, - _______, _______, _______, _______, _______, _______, _______, KC_KP_4, KC_KP_5, KC_KP_6, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_KP_1, KC_KP_2, KC_KP_3, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_MINUS, _______, + _______, _______, _______, _______, _______, _______, _______, KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_PLUS, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_KP_1, KC_KP_2, KC_KP_3, KC_SLSH, _______, _______, _______, KC_SPC, KC_BSPC, _______, _______, KC_KP_DOT, KC_KP_ENTER, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ From f03f2bee20ecb8784f516e30af5d091b5701c6bc Mon Sep 17 00:00:00 2001 From: Fatih Arslan Date: Tue, 11 Feb 2025 08:40:57 +0300 Subject: [PATCH 05/13] Fix zero in numpad, add comma and dot Signed-off-by: Fatih Arslan --- qmk/kyria/keymap.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/qmk/kyria/keymap.c b/qmk/kyria/keymap.c index 47ef2bd..5c062a7 100644 --- a/qmk/kyria/keymap.c +++ b/qmk/kyria/keymap.c @@ -88,9 +88,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_NUMPAD] = LAYOUT_split_3x6_5_hlc( _______, _______, _______, _______, _______, _______, _______, KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_MINUS, _______, - _______, _______, _______, _______, _______, _______, _______, KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_PLUS, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_KP_1, KC_KP_2, KC_KP_3, KC_SLSH, _______, - _______, _______, KC_SPC, KC_BSPC, _______, _______, KC_KP_DOT, KC_KP_ENTER, _______, _______, + _______, _______, _______, _______, _______, _______, KC_COMM, KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_PLUS, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DOT, KC_KP_1, KC_KP_2, KC_KP_3, KC_SLSH, _______, + _______, _______, KC_SPC, KC_BSPC, _______, _______, KC_KP_0, KC_KP_ENTER, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), From 2d3f7b4361e1dbe7bda403726f5a201e6d96364d Mon Sep 17 00:00:00 2001 From: Fatih Arslan Date: Tue, 11 Feb 2025 08:54:03 +0300 Subject: [PATCH 06/13] Update readme Signed-off-by: Fatih Arslan --- qmk/kyria/readme.md | 254 +++++--------------------------------------- 1 file changed, 29 insertions(+), 225 deletions(-) diff --git a/qmk/kyria/readme.md b/qmk/kyria/readme.md index e56bbbb..e17ca0f 100644 --- a/qmk/kyria/readme.md +++ b/qmk/kyria/readme.md @@ -1,242 +1,46 @@ -# Halcyon Kyria's Default Keymap +# My custom keymap for the Kyria Halcyon -![KLE render of the default Halcyon Kyria keymap with QWERTY as the base layer. Layers are shown in sublegends.](https://i.ibb.co/RQZx2dY/default-kyria2.jpg) +Setup: -The default keymap contains 5 layers which allows it to include all keys found on an ANSI layout TKL keyboard plus media keys. - -The five different layers are the following: -1. Base layer (QWERTY, Colemak-DH or Dvorak) -2. Navigation layer -3. Symbols/Numbers layer -4. Function layer -5. Adjust layer - -## Base layer(s) -``` -Base Layer: - - -,-------------------------------------------. ,-------------------------------------------. -| Tab | - | - | - | - | - | | - | - | - | - | - | Bksp | -|--------+------+------+------+------+------| |------+------+------+------+------+--------| -|Ctrl/Esc| - | - | - | - | - | | - | - | - | - | - |Ctrl/ - | -|--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| -| LShift | - | - | - | - | - | [ { |CapsLk| |F-Keys| ] } | - | - | - | - | - | RShift | -`----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' - |Adjust| LGUI | LAlt/| Space| Nav | | Sym | Space| AltGr| RGUI | Menu | - | | | Enter| | | | | | | | | - `----------------------------------' `----------------------------------' -``` -Three different well-known keyboard layouts are provided to fill in the placeholder `-` keys: QWERTY, Colemak-DH, and Dvorak. The default layer can be changed at runtime, more info on that in the section on the [adjust layer](#adjust-layer). - -For the rest of this write-up, the base layer will be assumed to be QWERTY and will be used as a reference to describe physical keys, e.g. “B key” vs, the much more verbose, “lower inner index key”. - -``` -Base Layer: QWERTY - -,-------------------------------------------. ,-------------------------------------------. -| Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp | -|--------+------+------+------+------+------| |------+------+------+------+------+--------| -|Ctrl/Esc| A | S | D | F | G | | H | J | K | L | ; : |Ctrl/' "| -|--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| -| LShift | Z | X | C | V | B | [ { |CapsLk| |F-keys| ] } | N | M | , < | . > | / ? | RShift | -`----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' - |Adjust| LGUI | LAlt/| Space| Nav | | Sym | Space| AltGr| RGUI | Menu | - | | | Enter| | | | | | | | | - `----------------------------------' `----------------------------------' -``` - -Aside from variations in the alpha cluster, the rest of the base keys remain the same and are designed to feel familiar. - -![Step-by-step animation of the transformation of an ortholinear TKL to a Kyria](https://i.imgur.com/uVDCOek.gif) - -
-After making transformations to the classic ANSI US QWERTY TKL 60% to arrive to the layout of the Kyria, as illustrated in the animation above, the result looks like this: - -``` -,-------------------------------------------. ,-------------------------------------------. -| Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp | -|--------+------+------+------+------+------| |------+------+------+------+------+--------| -| Cap Lk | A | S | D | F | G | | H | J | K | L | ; : | ' " | -|--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| -| LShift | Z | X | C | V | B | | | | | | N | M | , < | . > | / ? | RShift | -`----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' - | LCtrl| LGUI | LAlt | Space| | | | Space| AltGr| RGUI | Menu | - | | | | | | | | | | | | - `----------------------------------' '----------------------------------' -``` - -First thing to notice is the presence of blank keys. To fill in the blank keys above the Space keys, we can take inspiration from other split keyboards featuring an extra inner index column on each half. A common mapping for those kind of keys are the bracket keys that got removed in the fourth step of the animated transformation. The thumb keys besides Spaces is prime real estate for dedicated layer-switching keys. It doesn't matter on which side is assigned the sym-layer-switch key but it helps to keep the nav-layer-switch on the left in order to keep the arrow keys on the right side like on a classic keyboard, so we'll put nav on the left and sym on the right. We'll address the remaining blank thumb keys later. - -The base layer is starting to form but there remains some flaws. One glaring issue is the position of Control. Control is a very commonly used function but the key on which it sits right now is way too tucked in under the hand to be able to press it comfortably with either the thumb or the pinky from resting position. In fact, installing a rotary encoder there is a common move among Kyria users and I guarantee you that activating Control by holding down a rotary encoder does not spark joy. Instead, let's employ a popular trick that involves remapping the current Caps Lock key, which is positioned at a comfortable position on the keyboard, to Control. - -We can go further though; a variant of this trick makes the Control key produce Escape when tapped. This is called a “modtap”. There is no use to tapping Control by itself without chording it with another key and there is no use to holding down the Esc key so why not combine the two into a single key? - -All of this leaves us with three blank keys. - -``` -,-------------------------------------------. ,-------------------------------------------. -| Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp | -|--------+------+------+------+------+------| |------+------+------+------+------+--------| -|Ctrl/Esc| A | S | D | F | G | | H | J | K | L | ; : | ' " | -|--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| -| LShift | Z | X | C | V | B | [ { | | | | ] } | N | M | , < | . > | / ? | RShift | -`--------+-------------+--------------------+------+------| |------+------+--------------------+------+---------------' - | | LGUI | LAlt | Space| Nav | | Sym | Space| AltGr| RGUI | Menu | - | | | | | | | | | | | | - `----------------------------------' '----------------------------------' -``` - -These keys are not easily reachable while touch typing (that is, not reachable without picking up your hand) and should thus be associated with functions that you are not likely to be typed within a stream of text. The idea is that if you have to pick up your hand to hit a key, you want it to be at a time when you are likely to be pausing your interaction with the machine, rather than in the midst of a flurry of typing. They're thus well suited for accessing the adjust layer and the function layer. We can also toss in Caps Lock even though it is an editing-type function that gets used within a stream of text because shouting in ALL-CAPS should be a deliberate action. - -``` -,-------------------------------------------. ,-------------------------------------------. -| Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp | -|--------+------+------+------+------+------| |------+------+------+------+------+--------| -|Ctrl/Esc| A | S | D | F | G | | H | J | K | L | ; : | ' " | -|--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| -| LShift | Z | X | C | V | B | [ { |CapsLk| |F-keys| ] } | N | M | , < | . > | / ? | RShift | -`----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' - |Adjust| LGUI | LAlt | Space| Nav | | Sym | Space| AltGr| RGUI | Menu | - | | | | | | | | | | | | - `----------------------------------' `----------------------------------' ``` +# Install QMK if not yet installed +brew install qmk/qmk/qmk -The next glaring issue is the absence of an Enter key on the current base layer this far. Enter is a very frequently used key so it deserves to be placed at a good spot in the keymap. The best way to insert it in the keymap with minimal changes to the current layout is to use modtaps. A tempting solution is to turn the RShift key into a RShift/Enter modtap but that can result in chat messages sent too frustratingly early when you're not used to it. Using GUI is also sub-optimal because tapping the GUI modifier actually has a use as opposed to taps of the Control or the Shift key. Pressing and releasing the GUI key by itself opens the App menu in many desktop environments. The natural choice is thus LAlt/Enter. That way, Enter is 1u away from resting thumb position and is unlikely to get accidentally activated because Alt is very rarely used in the midst of prose. +# Clone qmk repository with +qmk setup -Finally, we're one Quality-Of-Life update away from the actual base layer. Ctrl/' " not only preserves symmetry in the keymap with Ctrl/Esc but also helps balance the load between your pinkies and invites you to use both hands instead of contortions. Perhaps more importantly, it also frees you from the necessity of picking up your hand, breaking touch typing position and pressing a pinky key with your ring finger in order to execute Ctrl+A or Ctrl+Z. That becomes even more important on a board with such an aggressive pinky columnar stagger like the Kyria. +# Clone qmk user repository repository with +cd ~/Code +git clone git@github.com:fatih/qmk_userspace.git +# Add userspace to the config +qmk config user.overlay_dir="$(realpath qmk_userspace)" -``` -,-------------------------------------------. ,-------------------------------------------. -| Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp | -|--------+------+------+------+------+------| |------+------+------+------+------+--------| -|Ctrl/Esc| A | S | D | F | G | | H | J | K | L | ; : |Ctrl/' "| -|--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| -| LShift | Z | X | C | V | B | [ { |CapsLk| |F-keys| ] } | N | M | , < | . > | / ? | RShift | -`----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' - |Adjust| LGUI | LAlt/| Space| Nav | | Sym | Space| AltGr| RGUI | Menu | - | | | Enter| | | | | | | | | - `----------------------------------' `----------------------------------' -``` - -
- -## Navigation layer - -``` -Nav Layer: Media, navigation - -,-------------------------------------------. ,-------------------------------------------. -| | | | | | | | PgUp | Home | ↑ | End | VolUp| Delete | -|--------+------+------+------+------+------| |------+------+------+------+------+--------| -| | GUI | Alt | Ctrl | Shift| | | PgDn | ← | ↓ | → | VolDn| Insert | -|--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| -| | | | | | | |ScLck | | | | Pause|M Prev|M Play|M Next|VolMut| PrtSc | -`----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' - | | | | | | | | | | | | - | | | | | | | | | | | | - `----------------------------------' `----------------------------------' -``` - -This is where you'll find all the keys that are generally between the main block of a classic keyboard and the numpad in addition to media controls and modifiers on easy access on the home row for fast and comfortable chording with navigation keys. - -Useful mnemonics: -- “GACS” to remember the order of the modifiers on the left-hand home row -- Scroll Lock is on the same key as Caps Lock because they're both locks -- Delete is on the same key as Backspace because they both erase characters -- Home is the leftmost position on the current line so it is above . Same logic applies for End. -- Media Previous = ⏮, Media Next = ⏭ -- Page Up, Page Down and Volume Up, Volume Down are positioned like the main Up and Down keys. - -## Sym layer -``` -Sym Layer: Numbers, symbols - -,-------------------------------------------. ,-------------------------------------------. -| ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | = | -|--------+------+------+------+------+------| |------+------+------+------+------+--------| -| ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | + | -|--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| -| | | \ | : | ; | - | [ | { | | | | } | ] | _ | , | . | / | ? | -`----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' - | | | | | | | | | | | | - | | | | | | | | | | | | - `----------------------------------' `----------------------------------' -``` -The top row is the unshifted num row, the home row of the layer is the shifted num row and the bottom row contains the hyphen `-` and the underscore `_` on the best lower row spot because of how frequent they are as well as redundant symbols that are already present on the base layer but are reproduced here to avoid juggling back and forth between base, shift, and sym when typing a string of symbols. - -The layout of the first two rows needs no introduction, you're already used to them but it's worth looking into the structure of the bottom row. - -The two halves are mirrored in a sense. On the right, you can find , . / at their usual spots with the addition of Shift+/=? to the right of the / key to remove the need to press simultaneously Sym and a Shift key to access `?`. - -Now, if you look at the left side, you'll notice that the mirror of , is ;, the mirror of . is : and the mirror of / is \\. The same logic used for Shift+/=? also applies to Shift+\\=|. - -In case you wish to combine Shift with a symbol key anyways, you can hold down Shift on the base layer with your pinky, activate Sym with your right thumb and while still holding down the Shift key, tap your desired symbol key. Same thing if you need Ctrl+Digit. - -## Function layer -``` -Function Layer: Function keys - -,-------------------------------------------. ,-------------------------------------------. -| | F9 | F10 | F11 | F12 | | | | | | | | | -|--------+------+------+------+------+------| |------+------+------+------+------+--------| -| | F5 | F6 | F7 | F8 | | | | Shift| Ctrl | Alt | GUI | | -|--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| -| | F1 | F2 | F3 | F4 | | | | | | | | | | | | | -`----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' - | | | | | | | | | | | | - | | | | | | | | | | | | - `----------------------------------' `----------------------------------' -``` -In a similar fashion to the nav layer, pressing down `FKEYS` with the right thumb enables a numpad of function keys on the opposite hand and modifiers on the right-hand home row. Once again, mirror symmetry is leveraged in this keymap for the order of the right-hand modifiers. - -The Alt modifier, despite being situated on the right half of the keyboard is *not* `KC_RALT`, it is `KC_LALT`. `KC_RALT` is actually the AltGr key which generally acts very differently to the left Alt key. Keyboard shortcuts involving AltGr+F# are rare and infrequent as opposed to the much more common Alt+F# shortcuts. Consequently, `KC_LALT` was chosen for the function layer. - -Since there are more than 10 function keys, the cluster of F-keys does not follow the usual 3×3+1 numpad arrangement. - - -## Adjust layer -``` -Adjust Layer: Default layer settings, RGB - -,-------------------------------------------. ,-------------------------------------------. -| | | |QWERTY| | | | | | | | | | -|--------+------+------+------+------+------| |------+------+------+------+------+--------| -| | | |Dvorak| | | | TOG | SAI | HUI | VAI | MOD | | -|--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| -| | | |Colmak| | | | | | | | | SAD | HUD | VAD | RMOD | | -`----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' - | | | | | | | | | | | | - | | | | | | | | | | | | - `----------------------------------' `----------------------------------' -``` +# Add userspace configs for each target +qmk userspace-add -kb splitkb/halcyon/kyria/rev4 -km fatih -e HLC_TFT_DISPLAY=1 -e TARGET=splitkb_halcyon_kyria_rev4_default_hlc_display +qmk userspace-add -kb splitkb/halcyon/kyria/rev4 -km fatih -e HLC_ENCODER=1 -e TARGET=splitkb_halcyon_kyria_rev4_default_hlc_encoder -Default layer settings on the left and various RGB underglow controls on the right. +# link keymap into the qmk folder +ln -s ~/Code/dotfiles/qmk/kyria/ ~/qmk_firmware/keyboards/splitkb/halcyon/kyria/keymaps/fatih -The default layer settings are lined up on the middle finger column because the home middle finger key is D on QWERTY (like the “D” in “Dvorak”) and the lower middle finger key is C on QWERTY (like the “C” in “Colemak”). I can hear you say that “QWERTY” doesn't start with “E” but Dvorak and Colemak were already aligned in a column so the QWERTY may as well join the formation. +# compile the firmware, for left with display, for right with the encoder +qmk compile -kb splitkb/halcyon/kyria/rev4 -km fatih -e HLC_TFT_DISPLAY=1 -e TARGET=splitkb_halcyon_kyria_rev4_default_hlc_display +qmk compile -kb splitkb/halcyon/kyria/rev4 -km fatih -e HLC_ENCODER=1 -e TARGET=splitkb_halcyon_kyria_rev4_default_hlc_encoder -NOTE: The default layer settings set by those keys are *NOT* stored in EEPROM and thus do not persist through boots. If you wish to change the default layer in a non-volatile manner, either change the order of the layers in the firmware, for example like so if you want to set Dvorak as the new default: -```c -enum layers { - _DVORAK = 0, - _QWERTY, - _COLEMAK_DH, - _NAV, - _SYM, - _FUNCTION, - _ADJUST -}; +# flash the layout with our layout +qmk flash -kb splitkb/halcyon/kyria/rev4 -km fatih -e HLC_TFT_DISPLAY=1 -e TARGET=splitkb_halcyon_kyria_rev4_default_hlc_display +qmk flash -kb splitkb/halcyon/kyria/rev4 -km fatih -e HLC_ENCODER=1 -e TARGET=splitkb_halcyon_kyria_rev4_default_hlc_encoder ``` -or re-define the `QWERTY`, `COLEMAK` and `DVORAK` keys to point to custom keycodes starting on `SAFE_RANGE` and calling the `set_single_persistent_default_layer` function inside of `process_record_user`. -## Hardware Features +Notes: -### Rotary Encoder -The left rotary encoder is programmed to control the volume whereas the right encoder sends PgUp or PgDn on every turn. +To flash each side: -## Going further… +1. Plug first left side +2. Run the `qmk flash` command above with the `display` option +3. Press reset button twice (next to the host USB-C input) -This default keymap can be used as is, unchanged, as a daily driver for your Kyria but you're invited to treat your keymap like a bonsai. At the beginning, it's just like the default keymap but from time to time, you can tweak it a little. Cut a little key here, let another combo grow there. Slowly but surely it will be a unique keymap that will fit you like a glove. +4. Plug the right side +5. Run the `qmk flash` command above with the `encoder` option -Check out the #keymap-ideas channel on the official SplitKB Discord server for inspiration. From a2a6d45e2107935db5efc9bacf4a0bd1df1e8e76 Mon Sep 17 00:00:00 2001 From: Fatih Arslan Date: Tue, 11 Feb 2025 09:08:12 +0300 Subject: [PATCH 07/13] More updates, add numrow Signed-off-by: Fatih Arslan --- qmk/kyria/keymap.c | 29 ++++++++++++++++++++++++++++- qmk/kyria/readme.md | 1 + 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/qmk/kyria/keymap.c b/qmk/kyria/keymap.c index 5c062a7..7c7be77 100644 --- a/qmk/kyria/keymap.c +++ b/qmk/kyria/keymap.c @@ -7,6 +7,7 @@ enum layers { _QWERTY = 0, _SYMBOLS, _NUMPAD, + _NUMROW, }; @@ -39,7 +40,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y, KC_U , KC_I , KC_O , KC_P , KC_BSLS, KC_LCTL , KC_A , KC_S , KC_D , LT(_NUMPAD, KC_F) , LT(_SYMBOLS, KC_G), KC_H, KC_J , KC_K , KC_L ,KC_SCLN,CTL_QUOT, KC_LSFT , KC_Z , KC_X , KC_C , KC_V , KC_B , OSM(MOD_LSFT), HYPR(KC_5), KC_ESC , OSM(MOD_RSFT), KC_N, KC_M ,KC_COMM, KC_DOT ,KC_SLSH, KC_RSFT, - KC_LEFT , KC_RIGHT, KC_LGUI, KC_BSPC , KC_LALT, KC_RALT , KC_ENT , LT(_SYMBOLS, KC_SPC), KC_UP, KC_DOWN, + KC_LEFT , KC_RIGHT, KC_LGUI, KC_BSPC , LT(_NUMROW, KC_LALT), LT(_NUMROW, KC_RALT) , KC_ENT , LT(_SYMBOLS, KC_SPC), KC_UP, KC_DOWN, KC_MUTE, KC_NO, KC_NO, KC_NO, KC_NO, KC_MUTE, KC_NO, KC_NO, KC_NO, KC_NO ), @@ -95,6 +96,32 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), +/* + * Numrow Layer template + * + * ,-------------------------------------------. ,-------------------------------------------. + * | | | | | | | | | | | | | | + * |--------+------+------+------+------+------| |------+------+------+------+------+--------| + * | | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | | + * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | | | + * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + * | | | | | | | | | | | | + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-----------------------------------. ,-----------------------------------. + * | | | | | | | | | | | | + * `-----------------------------------' `-----------------------------------' + */ + [_NUMROW] = LAYOUT_split_3x6_5_hlc( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, G(KC_1), G(KC_2), G(KC_3), G(KC_4), G(KC_5), G(KC_6), G(KC_7), G(KC_8), G(KC_9), G(KC_0), _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + // /* diff --git a/qmk/kyria/readme.md b/qmk/kyria/readme.md index e17ca0f..84a3a3a 100644 --- a/qmk/kyria/readme.md +++ b/qmk/kyria/readme.md @@ -25,6 +25,7 @@ qmk userspace-add -kb splitkb/halcyon/kyria/rev4 -km fatih -e HLC_ENCODER=1 -e T ln -s ~/Code/dotfiles/qmk/kyria/ ~/qmk_firmware/keyboards/splitkb/halcyon/kyria/keymaps/fatih # compile the firmware, for left with display, for right with the encoder +# this is for verification, we only need do it once, we'll use qmk flash later qmk compile -kb splitkb/halcyon/kyria/rev4 -km fatih -e HLC_TFT_DISPLAY=1 -e TARGET=splitkb_halcyon_kyria_rev4_default_hlc_display qmk compile -kb splitkb/halcyon/kyria/rev4 -km fatih -e HLC_ENCODER=1 -e TARGET=splitkb_halcyon_kyria_rev4_default_hlc_encoder From 3d088fc743dff928cc168024cbb4fc63d2112225 Mon Sep 17 00:00:00 2001 From: Fatih Arslan Date: Wed, 12 Feb 2025 16:20:02 +0300 Subject: [PATCH 08/13] Fix numpad number Signed-off-by: Fatih Arslan --- qmk/kyria/keymap.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/qmk/kyria/keymap.c b/qmk/kyria/keymap.c index 7c7be77..7e5f3c2 100644 --- a/qmk/kyria/keymap.c +++ b/qmk/kyria/keymap.c @@ -80,7 +80,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+-------| * | | | | | | | | | | | | | 1 | 2 | 3 | | | * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' - * | | | Space| BSPC | | | | 0 | | | | + * | | | Space| BSPC | | | | Ent | 0 | | | * | | | | | | | | | | | | * `----------------------------------' `----------------------------------' * ,-----------------------------------. ,-----------------------------------. @@ -88,10 +88,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------' `-----------------------------------' */ [_NUMPAD] = LAYOUT_split_3x6_5_hlc( - _______, _______, _______, _______, _______, _______, _______, KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_MINUS, _______, + _______, _______, _______, _______, _______, _______, _______, KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_MINUS, QK_BOOT, _______, _______, _______, _______, _______, _______, KC_COMM, KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_PLUS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DOT, KC_KP_1, KC_KP_2, KC_KP_3, KC_SLSH, _______, - _______, _______, KC_SPC, KC_BSPC, _______, _______, KC_KP_0, KC_KP_ENTER, _______, _______, + _______, _______, KC_SPC, KC_BSPC, _______, _______, KC_KP_ENTER, KC_KP_0, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), From b4f9ae59d5e9f03b5c6f6d4227c8783ede03cf9f Mon Sep 17 00:00:00 2001 From: Fatih Arslan Date: Thu, 13 Feb 2025 16:33:59 +0300 Subject: [PATCH 09/13] Change again Signed-off-by: Fatih Arslan --- qmk/kyria/keymap.c | 60 +++++++++++++++++----------------------------- 1 file changed, 22 insertions(+), 38 deletions(-) diff --git a/qmk/kyria/keymap.c b/qmk/kyria/keymap.c index 7e5f3c2..ff7305a 100644 --- a/qmk/kyria/keymap.c +++ b/qmk/kyria/keymap.c @@ -7,7 +7,6 @@ enum layers { _QWERTY = 0, _SYMBOLS, _NUMPAD, - _NUMROW, }; @@ -16,6 +15,18 @@ enum layers { #define CTL_QUOT MT(MOD_RCTL, KC_QUOTE) +// Left-hand home row mods +#define HOME_A LCTL_T(KC_A) +#define HOME_S LALT_T(KC_S) +#define HOME_D LGUI_T(KC_D) +#define HOME_F LSFT_T(KC_F) + +// Right-hand home row mods +#define HOME_J RSFT_T(KC_J) +#define HOME_K RGUI_T(KC_K) +#define HOME_L LALT_T(KC_L) +#define HOME_SCLN RCTL_T(KC_SCLN) + // clang-format off const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { @@ -38,9 +49,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_QWERTY] = LAYOUT_split_3x6_5_hlc( KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y, KC_U , KC_I , KC_O , KC_P , KC_BSLS, - KC_LCTL , KC_A , KC_S , KC_D , LT(_NUMPAD, KC_F) , LT(_SYMBOLS, KC_G), KC_H, KC_J , KC_K , KC_L ,KC_SCLN,CTL_QUOT, + KC_LCTL , LSFT_T(KC_A) , KC_S , KC_D , LT(_NUMPAD, KC_F) , LT(_SYMBOLS, KC_G), KC_H, LT(_NUMPAD, KC_J) , KC_K , KC_L ,RSFT_T(KC_SCLN),CTL_QUOT, KC_LSFT , KC_Z , KC_X , KC_C , KC_V , KC_B , OSM(MOD_LSFT), HYPR(KC_5), KC_ESC , OSM(MOD_RSFT), KC_N, KC_M ,KC_COMM, KC_DOT ,KC_SLSH, KC_RSFT, - KC_LEFT , KC_RIGHT, KC_LGUI, KC_BSPC , LT(_NUMROW, KC_LALT), LT(_NUMROW, KC_RALT) , KC_ENT , LT(_SYMBOLS, KC_SPC), KC_UP, KC_DOWN, + KC_LEFT , KC_RIGHT, KC_LGUI, KC_BSPC , KC_TAB, KC_RALT , KC_ENT , LT(_SYMBOLS, KC_SPC), KC_UP, KC_DOWN, KC_MUTE, KC_NO, KC_NO, KC_NO, KC_NO, KC_MUTE, KC_NO, KC_NO, KC_NO, KC_NO ), @@ -50,7 +61,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,-------------------------------------------. ,-------------------------------------------. * | | ! | @ | { | { | | | | F1 | F2 | | | * | | * |--------+------+------+------+------+------| |------+------+------+------+------+--------| - * | | & | $ | ( | ) | ` | | Left | Down | Up | Right| | | + * | | & | $ | ( | ) | ` | | Left | Down | Up | Right| + | | * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| * | | # | ^ | [ | ] | ~ | | | | | | _ | - | = | % | | | * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' @@ -63,7 +74,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_SYMBOLS] = LAYOUT_split_3x6_5_hlc( _______, KC_EXCLAIM, KC_AT, KC_LEFT_CURLY_BRACE, KC_RIGHT_CURLY_BRACE, KC_PIPE, KC_F1, KC_F2, _______, _______, KC_ASTERISK, _______, - _______, KC_AMPERSAND, KC_DOLLAR, KC_LEFT_PAREN, KC_RIGHT_PAREN, KC_GRAVE, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, _______, _______, + _______, KC_AMPERSAND, KC_DOLLAR, KC_LEFT_PAREN, KC_RIGHT_PAREN, KC_GRAVE, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_KP_PLUS, _______, _______, KC_HASH, KC_CIRCUMFLEX,KC_LBRC, KC_RBRC, KC_TILDE,_______, _______, _______, _______, KC_UNDERSCORE, KC_MINUS,KC_EQUAL,KC_PERCENT,_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, @@ -74,13 +85,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * Numpad Layer template * * ,-------------------------------------------. ,-------------------------------------------. - * | | | | | | | | | 7 | 8 | 9 | | | + * | | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | - | | * |--------+------+------+------+------+------| |------+------+------+------+------+-------| - * | | | | | | | | | 4 | 5 | 6 | | | + * | | | | | | | | | 4 | 5 | 6 | + | | * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+-------| - * | | | | | | | | | | | | | 1 | 2 | 3 | | | + * | | | | | | | | | | | | | 1 | 2 | 3 | / | | * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' - * | | | Space| BSPC | | | | Ent | 0 | | | + * | | | GUI | BSPC | | | | Ent | 0 | | | * | | | | | | | | | | | | * `----------------------------------' `----------------------------------' * ,-----------------------------------. ,-----------------------------------. @@ -88,41 +99,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------' `-----------------------------------' */ [_NUMPAD] = LAYOUT_split_3x6_5_hlc( - _______, _______, _______, _______, _______, _______, _______, KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_MINUS, QK_BOOT, + _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_MINUS, QK_BOOT, _______, _______, _______, _______, _______, _______, KC_COMM, KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_PLUS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DOT, KC_KP_1, KC_KP_2, KC_KP_3, KC_SLSH, _______, - _______, _______, KC_SPC, KC_BSPC, _______, _______, KC_KP_ENTER, KC_KP_0, _______, _______, + _______, _______, KC_LGUI, KC_BSPC, _______, KC_SPC, KC_KP_ENTER, KC_KP_0, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), -/* - * Numrow Layer template - * - * ,-------------------------------------------. ,-------------------------------------------. - * | | | | | | | | | | | | | | - * |--------+------+------+------+------+------| |------+------+------+------+------+--------| - * | | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | | - * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| - * | | | | | | | | | | | | | | | | | | - * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' - * | | | | | | | | | | | | - * | | | | | | | | | | | | - * `----------------------------------' `----------------------------------' - * ,-----------------------------------. ,-----------------------------------. - * | | | | | | | | | | | | - * `-----------------------------------' `-----------------------------------' - */ - [_NUMROW] = LAYOUT_split_3x6_5_hlc( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, G(KC_1), G(KC_2), G(KC_3), G(KC_4), G(KC_5), G(KC_6), G(KC_7), G(KC_8), G(KC_9), G(KC_0), _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), - - // /* // * Halcyon Layer template From a63bc7bb54c97065749e7c251da06cba924f83b8 Mon Sep 17 00:00:00 2001 From: Fatih Arslan Date: Thu, 13 Feb 2025 16:37:36 +0300 Subject: [PATCH 10/13] Change the tab position Signed-off-by: Fatih Arslan --- qmk/kyria/keymap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qmk/kyria/keymap.c b/qmk/kyria/keymap.c index ff7305a..4be5bc3 100644 --- a/qmk/kyria/keymap.c +++ b/qmk/kyria/keymap.c @@ -51,7 +51,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y, KC_U , KC_I , KC_O , KC_P , KC_BSLS, KC_LCTL , LSFT_T(KC_A) , KC_S , KC_D , LT(_NUMPAD, KC_F) , LT(_SYMBOLS, KC_G), KC_H, LT(_NUMPAD, KC_J) , KC_K , KC_L ,RSFT_T(KC_SCLN),CTL_QUOT, KC_LSFT , KC_Z , KC_X , KC_C , KC_V , KC_B , OSM(MOD_LSFT), HYPR(KC_5), KC_ESC , OSM(MOD_RSFT), KC_N, KC_M ,KC_COMM, KC_DOT ,KC_SLSH, KC_RSFT, - KC_LEFT , KC_RIGHT, KC_LGUI, KC_BSPC , KC_TAB, KC_RALT , KC_ENT , LT(_SYMBOLS, KC_SPC), KC_UP, KC_DOWN, + KC_LEFT , KC_RIGHT, KC_LGUI, KC_BSPC , KC_LALT, KC_TAB , KC_ENT , LT(_SYMBOLS, KC_SPC), KC_UP, KC_DOWN, KC_MUTE, KC_NO, KC_NO, KC_NO, KC_NO, KC_MUTE, KC_NO, KC_NO, KC_NO, KC_NO ), From d6d198950e7c118213c4dd804a6a799419856651 Mon Sep 17 00:00:00 2001 From: Fatih Arslan Date: Thu, 13 Feb 2025 17:20:39 +0300 Subject: [PATCH 11/13] Remove from index fingers Signed-off-by: Fatih Arslan --- qmk/kyria/keymap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qmk/kyria/keymap.c b/qmk/kyria/keymap.c index 4be5bc3..59c8f24 100644 --- a/qmk/kyria/keymap.c +++ b/qmk/kyria/keymap.c @@ -49,7 +49,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_QWERTY] = LAYOUT_split_3x6_5_hlc( KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y, KC_U , KC_I , KC_O , KC_P , KC_BSLS, - KC_LCTL , LSFT_T(KC_A) , KC_S , KC_D , LT(_NUMPAD, KC_F) , LT(_SYMBOLS, KC_G), KC_H, LT(_NUMPAD, KC_J) , KC_K , KC_L ,RSFT_T(KC_SCLN),CTL_QUOT, + KC_LCTL , KC_A , KC_S , KC_D , LT(_NUMPAD, KC_F) , LSFT_T(KC_G), RSFT_T(KC_H), KC_J , KC_K , KC_L ,KC_SCLN, CTL_QUOT, KC_LSFT , KC_Z , KC_X , KC_C , KC_V , KC_B , OSM(MOD_LSFT), HYPR(KC_5), KC_ESC , OSM(MOD_RSFT), KC_N, KC_M ,KC_COMM, KC_DOT ,KC_SLSH, KC_RSFT, KC_LEFT , KC_RIGHT, KC_LGUI, KC_BSPC , KC_LALT, KC_TAB , KC_ENT , LT(_SYMBOLS, KC_SPC), KC_UP, KC_DOWN, KC_MUTE, KC_NO, KC_NO, KC_NO, KC_NO, KC_MUTE, KC_NO, KC_NO, KC_NO, KC_NO From 70998c879b2c1d81ceeb41b5cf7f8a9c89f560f5 Mon Sep 17 00:00:00 2001 From: Fatih Arslan Date: Fri, 14 Feb 2025 11:44:05 +0300 Subject: [PATCH 12/13] More change, and keycodes Signed-off-by: Fatih Arslan --- qmk/kyria/keymap.c | 45 +++++++++++++++++++-------------------------- 1 file changed, 19 insertions(+), 26 deletions(-) diff --git a/qmk/kyria/keymap.c b/qmk/kyria/keymap.c index 59c8f24..6e0ee6e 100644 --- a/qmk/kyria/keymap.c +++ b/qmk/kyria/keymap.c @@ -13,20 +13,13 @@ enum layers { // Aliases for readability #define MACLOCK LGUI(LCTL(KC_Q)) -#define CTL_QUOT MT(MOD_RCTL, KC_QUOTE) - -// Left-hand home row mods -#define HOME_A LCTL_T(KC_A) -#define HOME_S LALT_T(KC_S) -#define HOME_D LGUI_T(KC_D) -#define HOME_F LSFT_T(KC_F) - -// Right-hand home row mods -#define HOME_J RSFT_T(KC_J) -#define HOME_K RGUI_T(KC_K) -#define HOME_L LALT_T(KC_L) -#define HOME_SCLN RCTL_T(KC_SCLN) +#define BROWSER_SEARCH LGUI(KC_F) +#define BROWSER_NEWTAB LGUI(KC_T) +#define BROWSER_CLOSETTAB LGUI(KC_W) +#define BROWSER_NEXTTAB LAG(KC_RIGHT) +#define BROWSER_PREVTAB LAG(KC_LEFT) +#define CTL_QUOT MT(MOD_RCTL, KC_QUOTE) // clang-format off const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { @@ -38,9 +31,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |--------+------+------+------+------+------| |------+------+------+------+------+--------| * | Ctrl | A | S | D | F | G | | H | J | K | L | ; : |Ctrl/' | * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| - * | LShift | Z | X | C | V | B | Shift|Hyper | | ESC | Shift| N | M | , < | . > | / ? | RShift | + * | LShift | Z | X | C | V | B | Shift|Hyper | | LOCK | ESC | N | M | , < | . > | / ? | RShift | * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' - * |Left | Right| GUI | Bspc | ALT | | ALT | Enter| Space| Up | Down | + * |Left | Right| GUI | Bspc | ALT | | TAB | Enter| Space| Up | Down | * | | | Enter| | | | | | | | | * `----------------------------------' `----------------------------------' * ,-----------------------------------. ,-----------------------------------. @@ -48,9 +41,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------' `-----------------------------------' */ [_QWERTY] = LAYOUT_split_3x6_5_hlc( - KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y, KC_U , KC_I , KC_O , KC_P , KC_BSLS, - KC_LCTL , KC_A , KC_S , KC_D , LT(_NUMPAD, KC_F) , LSFT_T(KC_G), RSFT_T(KC_H), KC_J , KC_K , KC_L ,KC_SCLN, CTL_QUOT, - KC_LSFT , KC_Z , KC_X , KC_C , KC_V , KC_B , OSM(MOD_LSFT), HYPR(KC_5), KC_ESC , OSM(MOD_RSFT), KC_N, KC_M ,KC_COMM, KC_DOT ,KC_SLSH, KC_RSFT, + KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y, KC_U , KC_I , KC_O , KC_P , KC_BSLS, + KC_LCTL , KC_A , KC_S , KC_D , LT(_NUMPAD, KC_F) , LSFT_T(KC_G), RSFT_T(KC_H), KC_J , KC_K , KC_L , KC_SCLN, CTL_QUOT, + KC_LSFT , KC_Z , KC_X , KC_C , KC_V , KC_B , OSM(MOD_LSFT), HYPR(KC_5), MACLOCK, KC_ESC , KC_N, KC_M , KC_COMM, KC_DOT ,KC_SLSH, KC_RSFT, KC_LEFT , KC_RIGHT, KC_LGUI, KC_BSPC , KC_LALT, KC_TAB , KC_ENT , LT(_SYMBOLS, KC_SPC), KC_UP, KC_DOWN, KC_MUTE, KC_NO, KC_NO, KC_NO, KC_NO, KC_MUTE, KC_NO, KC_NO, KC_NO, KC_NO ), @@ -59,7 +52,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * Symbol Layer template * * ,-------------------------------------------. ,-------------------------------------------. - * | | ! | @ | { | { | | | | F1 | F2 | | | * | | + * | | ! | @ | { | { | | | | F1 | F2 | VOLU | VOLD | * | | * |--------+------+------+------+------+------| |------+------+------+------+------+--------| * | | & | $ | ( | ) | ` | | Left | Down | Up | Right| + | | * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| @@ -73,10 +66,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------' `-----------------------------------' */ [_SYMBOLS] = LAYOUT_split_3x6_5_hlc( - _______, KC_EXCLAIM, KC_AT, KC_LEFT_CURLY_BRACE, KC_RIGHT_CURLY_BRACE, KC_PIPE, KC_F1, KC_F2, _______, _______, KC_ASTERISK, _______, - _______, KC_AMPERSAND, KC_DOLLAR, KC_LEFT_PAREN, KC_RIGHT_PAREN, KC_GRAVE, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_KP_PLUS, _______, + _______, KC_EXCLAIM, KC_AT, KC_LEFT_CURLY_BRACE, KC_RIGHT_CURLY_BRACE, KC_PIPE, KC_F1, KC_F2, KC_VOLU, KC_VOLD, KC_ASTERISK, _______, + BROWSER_NEWTAB, KC_AMPERSAND, KC_DOLLAR, KC_LEFT_PAREN, KC_RIGHT_PAREN, KC_GRAVE, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_PLUS, _______, _______, KC_HASH, KC_CIRCUMFLEX,KC_LBRC, KC_RBRC, KC_TILDE,_______, _______, _______, _______, KC_UNDERSCORE, KC_MINUS,KC_EQUAL,KC_PERCENT,_______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, BROWSER_PREVTAB, BROWSER_NEXTTAB, BROWSER_CLOSETTAB, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), @@ -99,10 +92,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------' `-----------------------------------' */ [_NUMPAD] = LAYOUT_split_3x6_5_hlc( - _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_MINUS, QK_BOOT, - _______, _______, _______, _______, _______, _______, KC_COMM, KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_PLUS, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DOT, KC_KP_1, KC_KP_2, KC_KP_3, KC_SLSH, _______, - _______, _______, KC_LGUI, KC_BSPC, _______, KC_SPC, KC_KP_ENTER, KC_KP_0, _______, _______, + _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_MINUS, QK_BOOT, + _______, _______, _______, _______, _______, _______, KC_COMM, KC_4, KC_5, KC_6, KC_PLUS, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DOT, KC_1, KC_2, KC_3, KC_SLSH, _______, + _______, _______, KC_LGUI, KC_BSPC, _______, KC_SPC, KC_ENTER, KC_0, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), From a49a51ca6fa87d0b6ee94bea77331104f10d7284 Mon Sep 17 00:00:00 2001 From: Fatih Arslan Date: Mon, 17 Feb 2025 23:30:26 +0300 Subject: [PATCH 13/13] alt mod tap with tabs Signed-off-by: Fatih Arslan --- qmk/kyria/keymap.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/qmk/kyria/keymap.c b/qmk/kyria/keymap.c index 6e0ee6e..80f9b14 100644 --- a/qmk/kyria/keymap.c +++ b/qmk/kyria/keymap.c @@ -34,7 +34,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | LShift | Z | X | C | V | B | Shift|Hyper | | LOCK | ESC | N | M | , < | . > | / ? | RShift | * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' * |Left | Right| GUI | Bspc | ALT | | TAB | Enter| Space| Up | Down | - * | | | Enter| | | | | | | | | + * | | | | | | | | | | | | * `----------------------------------' `----------------------------------' * ,-----------------------------------. ,-----------------------------------. * | MUTE | ____ | _____ | ____ | ____ | | MUTE | ____ | _____ | ____ | ____ | @@ -43,8 +43,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_QWERTY] = LAYOUT_split_3x6_5_hlc( KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y, KC_U , KC_I , KC_O , KC_P , KC_BSLS, KC_LCTL , KC_A , KC_S , KC_D , LT(_NUMPAD, KC_F) , LSFT_T(KC_G), RSFT_T(KC_H), KC_J , KC_K , KC_L , KC_SCLN, CTL_QUOT, - KC_LSFT , KC_Z , KC_X , KC_C , KC_V , KC_B , OSM(MOD_LSFT), HYPR(KC_5), MACLOCK, KC_ESC , KC_N, KC_M , KC_COMM, KC_DOT ,KC_SLSH, KC_RSFT, - KC_LEFT , KC_RIGHT, KC_LGUI, KC_BSPC , KC_LALT, KC_TAB , KC_ENT , LT(_SYMBOLS, KC_SPC), KC_UP, KC_DOWN, + KC_LSFT , KC_Z , KC_X , KC_C , KC_V , KC_B , OSM(MOD_LSFT), HYPR(KC_5), MACLOCK, KC_ESC , KC_N, KC_M , KC_COMM, KC_DOT ,KC_SLSH, KC_RSFT, + KC_LEFT , KC_RIGHT, KC_LGUI, KC_BSPC , LALT_T(KC_TAB), RALT_T(KC_TAB) , KC_ENT , LT(_SYMBOLS, KC_SPC), KC_UP, KC_DOWN, KC_MUTE, KC_NO, KC_NO, KC_NO, KC_NO, KC_MUTE, KC_NO, KC_NO, KC_NO, KC_NO ), @@ -66,7 +66,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------' `-----------------------------------' */ [_SYMBOLS] = LAYOUT_split_3x6_5_hlc( - _______, KC_EXCLAIM, KC_AT, KC_LEFT_CURLY_BRACE, KC_RIGHT_CURLY_BRACE, KC_PIPE, KC_F1, KC_F2, KC_VOLU, KC_VOLD, KC_ASTERISK, _______, + _______, KC_EXCLAIM, KC_AT, KC_LEFT_CURLY_BRACE, KC_RIGHT_CURLY_BRACE, KC_PIPE, KC_F1, KC_F2, KC_VOLU, KC_VOLD, KC_ASTERISK, KC_MUTE, BROWSER_NEWTAB, KC_AMPERSAND, KC_DOLLAR, KC_LEFT_PAREN, KC_RIGHT_PAREN, KC_GRAVE, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_PLUS, _______, _______, KC_HASH, KC_CIRCUMFLEX,KC_LBRC, KC_RBRC, KC_TILDE,_______, _______, _______, _______, KC_UNDERSCORE, KC_MINUS,KC_EQUAL,KC_PERCENT,_______, _______, _______, _______, BROWSER_PREVTAB, BROWSER_NEXTTAB, BROWSER_CLOSETTAB, _______, _______, _______, _______, _______,