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