diff --git a/atreus/atreus-fschl38.svg b/atreus/atreus-fschl38.svg index dacb8d3..6d44cb5 100644 --- a/atreus/atreus-fschl38.svg +++ b/atreus/atreus-fschl38.svg @@ -115,6 +115,15 @@ path.combo { visibility: hidden; } /* End Tabler Icons Cleanup */ + +svg.keymap { fill: #d1d6db; } +rect.key { fill: #3f4750; } +rect.key, rect.combo { stroke: #60666c; } +rect.combo, rect.combo-separate { fill: #1f3d7a; } +rect.held, rect.combo.held { fill: #854747; } +text.label, text.footer { stroke: black; } +text.trans { fill: #7e8184; } +path.combo { stroke: #7f7f7f; } L0: @@ -161,9 +170,7 @@ path.combo { - -HGUIA - +A @@ -213,9 +220,7 @@ path.combo { - -HGUIO - +O @@ -239,7 +244,7 @@ path.combo { -` +# @@ -247,11 +252,11 @@ path.combo { -N +K -M +H @@ -531,7 +536,7 @@ path.combo { -BSPC +PGUP @@ -563,9 +568,7 @@ path.combo { - -HMOULEFT - +LEFT @@ -581,7 +584,7 @@ path.combo { -DEL +PGDN @@ -640,47 +643,42 @@ path.combo { -VOLD -LGUI - - -LSFT + + + - - -BSPC + + + - - -LCTL + + + - - -LALT + + + - - -SPC + + + - - -TO(COLEMAK) + + + -PSCR -SCRL -PAUS @@ -689,9 +687,11 @@ path.combo { +EURO +SS diff --git a/atreus/atreus-fschl38.yaml b/atreus/atreus-fschl38.yaml index 850abcf..59b7baa 100644 --- a/atreus/atreus-fschl38.yaml +++ b/atreus/atreus-fschl38.yaml @@ -2,8 +2,8 @@ layout: {qmk_keyboard: keyboardio/atreus, layout_name: LAYOUT} layers: L0: - [Q, W, F, P, B, J, L, U, Z, BSPC] - - [HGUI A, HALT R, HSFT S, HCTL T, G, HMOU M, HCTL N, HSFT E, HALT I, HGUI O] - - [Y, X, C, D, V, '`', \, N, M, ','] + - [A, HALT R, HSFT S, HCTL T, G, HMOU M, HCTL N, HSFT E, HALT I, O] + - [Y, X, C, D, V, '#', \, K, H, ','] - [., /, '', '', '', THUMB1, THUMB2, THUMB3, THUMB4, THUMB5] - [THUMB6, '', '', ''] L1: @@ -22,13 +22,25 @@ layers: - {t: ▽, type: trans} - ['0', '', '', ''] L2: - - [\, F7, F8, F9, F10, Ctl+ F, HOME, END, Ctl+Sft+ F, BSPC] - - [HGUI AT, HALT F4, HSFT F5, HCTL F6, F11, HMOU LEFT, DOWN, UP, RIGHT, DEL] + - [\, F7, F8, F9, F10, Ctl+ F, HOME, END, Ctl+Sft+ F, PGUP] + - [HGUI AT, HALT F4, HSFT F5, HCTL F6, F11, LEFT, DOWN, UP, RIGHT, PGDN] - ['@', F1, F2, F3, F12, '', '', Ctl+ H, PGDN, PGUP] - - [Ctl+Sft+ H, Ctl+ P, '', VOLD, LGUI, LSFT, BSPC, LCTL, LALT, SPC] - - [TO(COLEMAK), PSCR, SCRL, PAUS] + - - Ctl+Sft+ H + - Ctl+ P + - '' + - '' + - '' + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - - {t: ▽, type: trans} + - '' + - '' + - '' L3: - - ['', '', MS U, '', '', '', '', UDIA, '', ''] + - [EURO, SS, MS U, '', '', '', '', UDIA, '', ''] - - ADIA - MS L - MS D diff --git a/atreus/drawer-config.yaml b/atreus/drawer-config.yaml index beae77d..497c96b 100644 --- a/atreus/drawer-config.yaml +++ b/atreus/drawer-config.yaml @@ -6,7 +6,7 @@ draw_config: combo_h: 26.0 key_rx: 6.0 key_ry: 6.0 - dark_mode: false + dark_mode: true n_columns: 1 separate_combo_diagrams: false combo_diagrams_scale: 2 diff --git a/atreus/qmk/keymaps/fschl-38/config.h b/atreus/qmk/keymaps/fschl-38/config.h index 5269455..90509ed 100644 --- a/atreus/qmk/keymaps/fschl-38/config.h +++ b/atreus/qmk/keymaps/fschl-38/config.h @@ -33,20 +33,4 @@ along with this program. If not, see . // https://docs.qmk.fm/features/caps_word#caps-word #define DOUBLE_TAP_SHIFT_TURNS_ON_CAPS_WORD - -#ifdef RGBLIGHT_ENABLE - #define RGBLIGHT_EFFECT_BREATHING - #define RGBLIGHT_EFFECT_RAINBOW_MOOD - #define RGBLIGHT_EFFECT_RAINBOW_SWIRL - #define RGBLIGHT_EFFECT_SNAKE - #define RGBLIGHT_EFFECT_KNIGHT - #define RGBLIGHT_EFFECT_CHRISTMAS - #define RGBLIGHT_EFFECT_STATIC_GRADIENT - #define RGBLIGHT_EFFECT_RGB_TEST - #define RGBLIGHT_EFFECT_ALTERNATING - #define RGBLIGHT_EFFECT_TWINKLE - #define RGBLIGHT_LIMIT_VAL 120 - #define RGBLIGHT_HUE_STEP 10 - #define RGBLIGHT_SAT_STEP 17 - #define RGBLIGHT_VAL_STEP 17 -#endif +#define COMBO_TERM 50 diff --git a/atreus/qmk/keymaps/fschl-38/keymap.c b/atreus/qmk/keymaps/fschl-38/keymap.c index fef58a1..a45d2d0 100644 --- a/atreus/qmk/keymaps/fschl-38/keymap.c +++ b/atreus/qmk/keymaps/fschl-38/keymap.c @@ -6,43 +6,30 @@ #include QMK_KEYBOARD_H #include "keymap_german.h" -enum layer_names { - COLEMAK, +enum { + COLEMAK = 0, NUM_SYM, NAV_FUN, MOUSEMO, + + NUM_LAYERS }; /* * About Layer switching: * https://docs.qmk.fm/feature_layers#switching-and-toggling-layers - * - */ - -/* - * TODOs - - Umlauts ä+ö on pinky hold (remove homerow GUI, currently using it on left thumb anyway) - - Umlauts ü on holding u - - thumb6 is shift on hold, to ease typing acronyms - - use caps-word feature!?!! - - could be bad to have space, enter and shift on the same thumb exclusively - - maybe move DEL to right thumb and have shift only on left thumb? - - optionally make DEL, BSPC as combos on top/bottom row (reachable and - effortless to combine with HRM - */ // Left-hand thumb keys -#define THUMB1 KC_LSFT // activates CAPS_WORD on double tap (see below) +#define THUMB1 LSFT_T(KC_DEL) #define THUMB2 LT(NAV_FUN, KC_ESC) -#define THUMB3 LSFT_T(KC_TAB) +#define THUMB3 LGUI_T(KC_TAB) // TODO: think about removing hold-mod // right-hand thumb keys -#define THUMB4 CTL_T(KC_SPC) +#define THUMB4 CTL_T(KC_SPC) // TODO: think about removing hold-mod #define THUMB5 LT(NUM_SYM, KC_ENT) #define THUMB6 LT(NAV_FUN, KC_BSPC) - // Left-hand home row mods #define HGUI_A LGUI_T(KC_A) #define HALT_R LALT_T(KC_R) @@ -62,16 +49,6 @@ enum layer_names { // MOUSEMO on right hand index M #define HMOU_M LT(MOUSEMO, KC_M) -#define HMOU_LEFT LT(MOUSEMO, KC_LEFT) - -// https://docs.qmk.fm/features/key_overrides -const key_override_t *key_overrides[] = { - &ko_make_basic(MOD_MASK_SHIFT, KC_BSPC, KC_DEL), // S-BSP ≡ DEL - // Emacs got me used to these, so let's convince other programs that - // we are in fact sending the correct keys. - &ko_make_basic(MOD_MASK_CTRL, KC_I, KC_TAB), // C-i ≡ Tab - &ko_make_basic(MOD_MASK_CTRL, KC_M, KC_ENT), // C-m ≡ Return -}; // default bottom row /* KC_ESC, KC_TAB, KC_LGUI, KC_LSFT, KC_BSPC, KC_LCTL, KC_LALT, KC_SPC, MO(_RS), KC_MINS, KC_QUOT, KC_ENT ), */ @@ -79,8 +56,9 @@ const key_override_t *key_overrides[] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [COLEMAK] = LAYOUT( /* Colema-DH */ KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Z, KC_BSPC, - HGUI_A, HALT_R, HSFT_S, HCTL_T, KC_G, HMOU_M, HCTL_N, HSFT_E, HALT_I, HGUI_O, - KC_Y, KC_X, KC_C, KC_D, KC_V, KC_GRV, KC_BSLS, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH , + KC_A, HALT_R, HSFT_S, HCTL_T, KC_G, HMOU_M, HCTL_N, HSFT_E, HALT_I, KC_O, + /* HGUI_A, HALT_R, HSFT_S, HCTL_T, KC_G, HMOU_M, HCTL_N, HSFT_E, HALT_I, HGUI_O, */ + KC_Y, KC_X, KC_C, KC_D, KC_V, KC_HASH, KC_BSLS, KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH , XXXXXXX, XXXXXXX, XXXXXXX, THUMB1, THUMB2, THUMB3, THUMB4, THUMB5, THUMB6, XXXXXXX, XXXXXXX, XXXXXXX), /* @@ -92,31 +70,49 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * > } ) ] @ LOCK || , . 1 2 3 = * | ~ & || ^ LAYER 0 */ - [NUM_SYM] = LAYOUT - ( + [NUM_SYM] = LAYOUT( DE_EXLM, DE_DQUO, DE_QUES, DE_PERC, DE_DLR, DE_SLSH, KC_7, KC_8, KC_9, DE_PLUS, DE_LABK, DE_LCBR, DE_LPRN, DE_LBRC, DE_QUOT, DE_ASTR, KC_4, KC_5, KC_6, DE_MINS, DE_RABK, DE_RCBR, DE_RPRN, DE_RBRC, DE_AT, QK_LLCK, KC_COMM, KC_DOT, KC_1, KC_2, KC_3, DE_EQL, XXXXXXX, XXXXXXX, XXXXXXX, DE_PIPE, DE_TILD, DE_AMPR, KC_CIRC, _______, DE_0, XXXXXXX, XXXXXXX, XXXXXXX), /* + * TODO: this is an idea and does NOT represent the implementation below * ´ F7 F8 F9 F10 || INS HOME UP END PgUp * ` F4 F5 F6 F11 || Left Down Up Right PgDown * F1 F2 F3 F12 LOCK || VolUp Prev Stop Pause Play Next * XXXXX _____ pause || VolDown Print XXXXX */ - [NAV_FUN] = LAYOUT( /* */ - DE_BSLS, KC_F7, KC_F8, KC_F9, KC_F10, LCTL(KC_F), KC_HOME, KC_END, RCS(KC_F), KC_BSPC, - HGUI_AT, HALT_F4, HSFT_F5, HCTL_F6, KC_F11, HMOU_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_DEL, + [NAV_FUN] = LAYOUT( + DE_BSLS, KC_F7, KC_F8, KC_F9, KC_F10, LCTL(KC_F), KC_HOME, KC_END, RCS(KC_F), KC_PGUP, + HGUI_AT, HALT_F4, HSFT_F5, HCTL_F6, KC_F11, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_PGDN, DE_AT, KC_F1, KC_F2, KC_F3, KC_F12, XXXXXXX, XXXXXXX, LCTL(KC_H), KC_PGDN, KC_PGUP, RCS(KC_H), LCTL(KC_P), - KC_NO, KC_VOLD, KC_LGUI, KC_LSFT, KC_BSPC, KC_LCTL, KC_LALT, KC_SPC, TO(COLEMAK), KC_PSCR, KC_SCRL, KC_PAUS), + XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, _______, _______, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX), [MOUSEMO] = LAYOUT( - XXXXXXX, XXXXXXX, KC_MS_U, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, DE_UDIA, XXXXXXX, XXXXXXX, + DE_EURO, DE_SS , KC_MS_U, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, DE_UDIA, XXXXXXX, XXXXXXX, DE_ADIA, KC_MS_L, KC_MS_D, KC_MS_R, KC_BTN3, _______, KC_VOLD, KC_MUTE, KC_VOLU, DE_ODIA, XXXXXXX, KC_WH_L, XXXXXXX, KC_WH_R, XXXXXXX, XXXXXXX, XXXXXXX, KC_MPRV, KC_MSTP, KC_MPLY, KC_MNXT, XXXXXXX, _______, _______, _______, _______, KC_BTN1, KC_WH_D, KC_WH_U, KC_BTN2, _______, _______, _______, _______) }; // https://docs.qmk.fm/features/combo#combos +/* - Umlauts ä+ö+ü are combos with a near key */ +/* - ä = w+a; ö = z+o; ü = z+u */ +/* - ß = F+P; € = H+, */ +/* - thumb1 is shift on hold, to ease typing acronyms */ + +const uint16_t PROGMEM AUML_combo[] = {KC_W, KC_A, COMBO_END}; +const uint16_t PROGMEM OUML_combo[] = {KC_Z, KC_O, COMBO_END}; +const uint16_t PROGMEM UUML_combo[] = {KC_Z, KC_U, COMBO_END}; +const uint16_t PROGMEM EUR_combo[] = {KC_H, KC_COMM, COMBO_END}; +const uint16_t PROGMEM SS_combo[] = {KC_F, KC_P, COMBO_END}; + +combo_t key_combos[] = { + COMBO(AUML_combo, DE_ADIA), + COMBO(OUML_combo, DE_ODIA), + COMBO(UUML_combo, DE_UDIA), + COMBO(SS_combo, DE_SS), + COMBO(EUR_combo, DE_EURO), +}; diff --git a/atreus/qmk/keymaps/fschl-38/rules.mk b/atreus/qmk/keymaps/fschl-38/rules.mk index 365e786..f55eebe 100644 --- a/atreus/qmk/keymaps/fschl-38/rules.mk +++ b/atreus/qmk/keymaps/fschl-38/rules.mk @@ -2,10 +2,11 @@ LAYER_LOCK_ENABLE = yes MOUSEKEY_ENABLE = yes # Mouse keys # https://docs.qmk.fm/features/key_overrides -KEY_OVERRIDE_ENABLE = yes +# KEY_OVERRIDE_ENABLE = yes # https://docs.qmk.fm/features/combo -# COMBO_ENABLE = yes +COMBO_ENABLE = yes +# not enough space on the controller for caps-word feature :( # https://docs.qmk.fm/features/caps_word#caps-word CAPS_WORD_ENABLE = yes