keyboard

My QMK keyboard layouts
git clone git://gtms.dev/keyboard
Log | Files | Refs | README | LICENSE

commit e7f26d8f25701914df9d144e124b283ed449723e
parent a216db265608e807df9e6b2da2389aa3453fd2d5
Author: Tomas Nemec <owl@gtms.dev>
Date:   Thu,  1 May 2025 12:44:41 +0200

feat: framework 16

Diffstat:
Akeyboards/framework/ansi/keymaps/tms/config.h | 6++++++
Akeyboards/framework/ansi/keymaps/tms/keymap.c | 200+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 206 insertions(+), 0 deletions(-)

diff --git a/keyboards/framework/ansi/keymaps/tms/config.h b/keyboards/framework/ansi/keymaps/tms/config.h @@ -0,0 +1,6 @@ +#define CHORDAL_HOLD +#define PERMISSIVE_HOLD +#define ENABLE_COMPILE_KEYCODE +#define RETRO_TAPPING +#define TAPPING_TERM 180 +#define QUICK_TAP_TERM 0 diff --git a/keyboards/framework/ansi/keymaps/tms/keymap.c b/keyboards/framework/ansi/keymaps/tms/keymap.c @@ -0,0 +1,200 @@ +// Copyright 2022 Framework Computer +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H +#include "framework.h" + +enum _layers { _BASE, _SMB, _QWERTY, _FN, _FN_LOCK, _FM }; + +// Left-hand home row mods +#define HOME_A LGUI_T(KC_A) +#define HOME_O LALT_T(KC_O) +#define HOME_E LSFT_T(KC_E) +#define HOME_U LCTL_T(KC_U) + +// Right-hand home row mods +#define HOME_H RCTL_T(KC_H) +#define HOME_T RSFT_T(KC_T) +#define HOME_N LALT_T(KC_N) +#define HOME_S RGUI_T(KC_S) + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +// ┌──────┬─────────┬────────┬────────┬────────┬──────┬──────┬────────┬────────┬────────┬────────┬──────┬──────┬──────┐ +// │ caps │ mute │ vold │ volu │ mprv │ mply │ mnxt │ bRID │ bRIU │ sCRN │ aIRP │ pscr │ msel │ del │ +// ├──────┼─────────┼────────┼────────┼────────┼──────┼──────┼────────┼────────┼────────┼────────┼──────┼──────┼──────┤ +// │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ │ │ bspc │ +// ├──────┼─────────┼────────┼────────┼────────┼──────┼──────┼────────┼────────┼────────┼────────┼──────┼──────┼──────┤ +// │ tab │ ; │ , │ . │ p │ y │ f │ g │ c │ r │ l │ \ │ / │ │ +// ├──────┼─────────┼────────┼────────┼────────┼──────┼──────┼────────┼────────┼────────┼────────┼──────┼──────┴──────┤ +// │ esc │ HOME_A │ HOME_O │ HOME_E │ HOME_U │ i │ d │ HOME_H │ HOME_T │ HOME_N │ HOME_S │ - │ ent │ +// ├──────┴─────────┼────────┼────────┼────────┼──────┼──────┼────────┼────────┼────────┼────────┼──────┼─────────────┤ +// │ lsft │ ' │ q │ j │ k │ x │ b │ m │ w │ v │ z │ rsft │ +// ├──────┬─────────┼────────┼────────┼────────┴──────┴──────┴────────┼────────┼────────┼────────┼──────┼──────┬──────┤ +// │ lctl │ MO(_FN) │ lgui │ lalt │ LT(_SMB, spc) │ ralt │ rctl │ left │ up │ down │ rght │ +// └──────┴─────────┴────────┴────────┴───────────────────────────────┴────────┴────────┴────────┴──────┴──────┴──────┘ +[_BASE] = LAYOUT( + KC_CAPS , KC_MUTE , KC_VOLD , KC_VOLU , KC_MPRV , KC_MPLY , KC_MNXT , KC_BRID , KC_BRIU , KC_SCRN , KC_AIRP , KC_PSCR , KC_MSEL , KC_DEL , + KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , _______ , _______ , KC_BSPC, + KC_TAB , KC_SCLN , KC_COMM , KC_DOT , KC_P , KC_Y , KC_F , KC_G , KC_C , KC_R , KC_L , KC_BSLS , KC_SLSH , _______, + KC_ESC , HOME_A , HOME_O , HOME_E , HOME_U , KC_I , KC_D , HOME_H , HOME_T , HOME_N , HOME_S , KC_MINS , KC_ENT, + KC_LSFT , KC_QUOT , KC_Q , KC_J , KC_K , KC_X , KC_B , KC_M , KC_W , KC_V , KC_Z , KC_RSFT, + KC_LCTL , MO(_FN) , KC_LGUI , KC_LALT , LT(_SMB, KC_SPC) , KC_RALT , KC_RCTL , KC_LEFT , KC_UP , KC_DOWN , KC_RGHT +), + +// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ +// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +// ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ +// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +// ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ +// │ │ & │ < │ > │ % │ @ │ ^ │ $ │ [ │ ] │ ` │ ! │ ? │ │ +// ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┴─────┤ +// │ ~ │ | │ : │ ( │ 0 │ ) │ { │ 1 │ } │ = │ + │ _ │ │ +// ├─────┴─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼───────────┤ +// │ lsft │ 6 │ 7 │ 8 │ 9 │ # │ * │ 2 │ 3 │ 4 │ 5 │ rsft │ +// ├─────┬─────┼─────┼─────┼─────┴─────┴─────┴─────┼─────┼─────┼─────┼─────┼─────┬─────┤ +// │ │ │ │ │ │ │ │ │ │ │ │ +// └─────┴─────┴─────┴─────┴───────────────────────┴─────┴─────┴─────┴─────┴─────┴─────┘ +[_SMB] = LAYOUT( + _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______, + _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______, + _______ , KC_AMPR , KC_LT , KC_GT , KC_PERC , KC_AT , KC_CIRC , KC_DLR , KC_LBRC , KC_RBRC , KC_GRV , KC_EXLM , KC_QUES , _______, + KC_TILD , KC_PIPE , KC_COLN , KC_LPRN , KC_0 , KC_RPRN , KC_LCBR , KC_1 , KC_RCBR , KC_EQL , KC_PLUS , KC_UNDS , _______, + KC_LSFT , KC_6 , KC_7 , KC_8 , KC_9 , KC_HASH , KC_ASTR , KC_2 , KC_3 , KC_4 , KC_5 , KC_RSFT, + _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ +), + +// ┌──────┬─────────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┐ +// │ esc │ mute │ vold │ volu │ mprv │ mply │ mnxt │ bRID │ bRIU │ sCRN │ aIRP │ pscr │ msel │ del │ +// ├──────┼─────────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ +// │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ bspc │ +// ├──────┼─────────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤ +// │ tab │ q │ w │ e │ r │ t │ y │ u │ i │ o │ p │ [ │ ] │ \ │ +// ├──────┼─────────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┴──────┤ +// │ caps │ a │ s │ d │ f │ g │ h │ j │ k │ l │ ; │ ' │ ent │ +// ├──────┴─────────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼─────────────┤ +// │ lsft │ z │ x │ c │ v │ b │ n │ m │ , │ . │ / │ rsft │ +// ├──────┬─────────┼──────┼──────┼──────┴──────┴──────┴──────┼──────┼──────┼──────┼──────┼──────┬──────┤ +// │ lctl │ MO(_FN) │ lgui │ lalt │ spc │ ralt │ rctl │ left │ up │ down │ rght │ +// └──────┴─────────┴──────┴──────┴───────────────────────────┴──────┴──────┴──────┴──────┴──────┴──────┘ +[_QWERTY] = LAYOUT( + KC_ESC , KC_MUTE , KC_VOLD , KC_VOLU , KC_MPRV , KC_MPLY , KC_MNXT , KC_BRID , KC_BRIU , KC_SCRN , KC_AIRP , KC_PSCR , KC_MSEL , KC_DEL , + KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS , KC_EQL , KC_BSPC, + KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_LBRC , KC_RBRC , KC_BSLS, + KC_CAPS , KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN , KC_QUOT , KC_ENT, + KC_LSFT , KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM , KC_DOT , KC_SLSH , KC_RSFT, + KC_LCTL , MO(_FN) , KC_LGUI , KC_LALT , KC_SPC , KC_RALT , KC_RCTL , KC_LEFT , KC_UP , KC_DOWN , KC_RGHT +), + +// ┌─────────┬─────┬─────────┬──────────┬─────────┬─────────┬─────────┬─────────┬──────┬─────┬──────┬──────┬──────┬─────────┐ +// │ FN_LOCK │ f1 │ f2 │ f3 │ f4 │ f5 │ f6 │ f7 │ f8 │ f9 │ f10 │ f11 │ f12 │ ins │ +// ├─────────┼─────┼─────────┼──────────┼─────────┼─────────┼─────────┼─────────┼──────┼─────┼──────┼──────┼──────┼─────────┤ +// │ │ │ │ │ │ │ │ │ │ │ │ │ │ QK_BOOT │ +// ├─────────┼─────┼─────────┼──────────┼─────────┼─────────┼─────────┼─────────┼──────┼─────┼──────┼──────┼──────┼─────────┤ +// │ QWERTY │ │ RGB_TOG │ RGB_MOD │ RGB_HUI │ RGB_SAI │ RGB_SPI │ RGB_VAI │ │ │ paus │ │ │ │ +// ├─────────┼─────┼─────────┼──────────┼─────────┼─────────┼─────────┼─────────┼──────┼─────┼──────┼──────┼──────┴─────────┤ +// │ BASE │ │ sYRQ │ RGB_RMOD │ RGB_HUD │ RGB_SAD │ RGB_SPD │ RGB_VAD │ sCRL │ │ │ │ │ +// ├─────────┴─────┼─────────┼──────────┼─────────┼─────────┼─────────┼─────────┼──────┼─────┼──────┼──────┼────────────────┤ +// │ │ │ │ BL_BRTG │ │ paus │ │ │ │ │ │ │ +// ├─────────┬─────┼─────────┼──────────┼─────────┴─────────┴─────────┴─────────┼──────┼─────┼──────┼──────┼──────┬─────────┤ +// │ │ │ │ │ BL_STEP │ │ │ home │ pgup │ pgdn │ end │ +// └─────────┴─────┴─────────┴──────────┴───────────────────────────────────────┴──────┴─────┴──────┴──────┴──────┴─────────┘ +[_FN] = LAYOUT( + FN_LOCK , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , KC_INS , + _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , QK_BOOT, + QWERTY , _______ , RGB_TOG , RGB_MOD , RGB_HUI , RGB_SAI , RGB_SPI , RGB_VAI , _______ , _______ , KC_PAUS , _______ , _______ , _______, + BASE , _______ , KC_SYRQ , RGB_RMOD , RGB_HUD , RGB_SAD , RGB_SPD , RGB_VAD , KC_SCRL , _______ , _______ , _______ , _______, + _______ , _______ , _______ , BL_BRTG , _______ , KC_BRK , _______ , _______ , _______ , _______ , _______ , _______, + _______ , _______ , _______ , _______ , BL_STEP , _______ , _______ , KC_HOME , KC_PGUP , KC_PGDN , KC_END +), + +// ┌─────┬─────────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ +// │ │ f1 │ f2 │ f3 │ f4 │ f5 │ f6 │ f7 │ f8 │ f9 │ f10 │ f11 │ f12 │ │ +// ├─────┼─────────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ +// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +// ├─────┼─────────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ +// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +// ├─────┼─────────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┴─────┤ +// │ │ │ │ │ │ │ │ │ │ │ │ │ │ +// ├─────┴─────────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼───────────┤ +// │ │ │ │ │ │ │ │ │ │ │ │ │ +// ├─────┬─────────┼─────┼─────┼─────┴─────┴─────┴─────┼─────┼─────┼─────┼─────┼─────┬─────┤ +// │ │ MO(_FM) │ │ │ │ │ │ │ │ │ │ +// └─────┴─────────┴─────┴─────┴───────────────────────┴─────┴─────┴─────┴─────┴─────┴─────┘ +[_FN_LOCK] = LAYOUT( + _______ , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , _______, + _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______, + _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______, + _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______, + _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______, + _______ , MO(_FM) , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ +), + +// ┌─────────┬──────┬─────────┬──────────┬─────────┬─────────┬─────────┬─────────┬──────┬──────┬──────┬──────┬──────┬─────┐ +// │ FN_LOCK │ mute │ vold │ volu │ mprv │ mply │ mnxt │ bRID │ bRIU │ sCRN │ aIRP │ pscr │ msel │ ins │ +// ├─────────┼──────┼─────────┼──────────┼─────────┼─────────┼─────────┼─────────┼──────┼──────┼──────┼──────┼──────┼─────┤ +// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +// ├─────────┼──────┼─────────┼──────────┼─────────┼─────────┼─────────┼─────────┼──────┼──────┼──────┼──────┼──────┼─────┤ +// │ │ │ RGB_TOG │ RGB_MOD │ RGB_HUI │ RGB_SAI │ RGB_SPI │ RGB_VAI │ │ │ paus │ │ │ │ +// ├─────────┼──────┼─────────┼──────────┼─────────┼─────────┼─────────┼─────────┼──────┼──────┼──────┼──────┼──────┴─────┤ +// │ │ │ sYRQ │ RGB_RMOD │ RGB_HUD │ RGB_SAD │ RGB_SPD │ RGB_VAD │ sCRL │ │ │ │ │ +// ├─────────┴──────┼─────────┼──────────┼─────────┼─────────┼─────────┼─────────┼──────┼──────┼──────┼──────┼────────────┤ +// │ │ │ │ BL_BRTG │ │ paus │ │ │ │ │ │ │ +// ├─────────┬──────┼─────────┼──────────┼─────────┴─────────┴─────────┴─────────┼──────┼──────┼──────┼──────┼──────┬─────┤ +// │ │ │ │ │ BL_STEP │ │ │ home │ pgup │ pgdn │ end │ +// └─────────┴──────┴─────────┴──────────┴───────────────────────────────────────┴──────┴──────┴──────┴──────┴──────┴─────┘ +[_FM] = LAYOUT( + FN_LOCK , KC_MUTE , KC_VOLD , KC_VOLU , KC_MPRV , KC_MPLY , KC_MNXT , KC_BRID , KC_BRIU , KC_SCRN , KC_AIRP , KC_PSCR , KC_MSEL , KC_INS , + _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______, + _______ , _______ , RGB_TOG , RGB_MOD , RGB_HUI , RGB_SAI , RGB_SPI , RGB_VAI , _______ , _______ , KC_PAUS , _______ , _______ , _______, + _______ , _______ , KC_SYRQ , RGB_RMOD , RGB_HUD , RGB_SAD , RGB_SPD , RGB_VAD , KC_SCRL , _______ , _______ , _______ , _______, + _______ , _______ , _______ , BL_BRTG , _______ , KC_BRK , _______ , _______ , _______ , _______ , _______ , _______, + _______ , _______ , _______ , _______ , BL_STEP , _______ , _______ , KC_HOME , KC_PGUP , KC_PGDN , KC_END +) +}; +// clang-format off + +// Make sure to keep FN Lock even after reset +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + break; + case BASE: + if (record->event.pressed) { + set_single_persistent_default_layer(_BASE); + } + return false; + break; + case FN_LOCK: + if (record->event.pressed) { + if (layer_state_is(_FN)) { + set_single_persistent_default_layer(_FN_LOCK); + } + if (layer_state_is(_FM)) { + set_single_persistent_default_layer(_BASE); + } + } + return false; + break; + default: + break; + } + return true; +} + +// clang-format off +const char chordal_hold_layout[MATRIX_ROWS][MATRIX_COLS] PROGMEM = + LAYOUT( + 'L' , 'L' , 'L' , 'L' , 'L' , 'R' , 'R' , 'R' , 'R' , 'R' , 'R' , 'R' , 'R' , 'R', + 'L' , 'L' , 'L' , 'L' , 'L' , 'L' , 'R' , 'R' , 'R' , 'R' , 'R' , 'R' , 'R' , 'R', + 'L' , 'L' , 'L' , 'L' , 'L' , 'L' , 'R' , 'R' , 'R' , 'R' , 'R' , 'R' , 'R' , 'R', + 'L' , 'L' , 'L' , 'L' , 'L' , 'L' , 'R' , 'R' , 'R' , 'R' , 'R' , 'R' , 'R', + 'L' , 'L' , 'L' , 'L' , 'L' , 'R' , 'R' , 'R' , 'R' , 'R', 'R' , 'R', + 'L' , 'L' , 'L' , 'L' , '*' , 'R' , 'R' , 'R' , 'R' , 'R' , 'R' +); +// clang-format on +// 77