aboutsummaryrefslogtreecommitdiffstats
path: root/src/keymap.c
diff options
context:
space:
mode:
authorLouis Burda <quent.burda@gmail.com>2023-01-09 13:39:17 +0100
committerLouis Burda <quent.burda@gmail.com>2023-01-09 13:39:17 +0100
commitc70a527d0418b4f32437873f682680f451fa4fb8 (patch)
tree485c66f56f417f039f02968658e81945a6790520 /src/keymap.c
parent2c1db6b9b0ee16f7da7ef18164ce96fda7b4a572 (diff)
downloadsxkbd-c70a527d0418b4f32437873f682680f451fa4fb8.tar.gz
sxkbd-c70a527d0418b4f32437873f682680f451fa4fb8.zip
Fix macro_send for multiple held keys
Diffstat (limited to 'src/keymap.c')
-rw-r--r--src/keymap.c42
1 files changed, 39 insertions, 3 deletions
diff --git a/src/keymap.c b/src/keymap.c
index ff22dc1..78b995e 100644
--- a/src/keymap.c
+++ b/src/keymap.c
@@ -49,7 +49,7 @@
\
DE_J , DE_L , DE_U , DE_Y , DE_HASH , DE_SS , \
DE_M , DE_N , DE_E , DE_I , DE_O , SW(SPEC), \
- DE_K , DE_H , DE_COMM , DE_DOT , DE_MINS , XXXXXXX , \
+ DE_K , DE_H , DE_COMM , DE_DOT , DE_MINS , SW(MISC), \
SW(NUMS), KC_SPC , KC_LCTL \
)
@@ -125,6 +125,18 @@
_______ , _______ , _______ \
)
+#define LAYER_MISC_DE KEYMAP( \
+ XXXXXXX , SX(TTY1), SX(TTY2), SX(TTY3), SX(TTY4), SX(TTY5), \
+ XXXXXXX , SX(TTY6), SX(TTY7), SX(TTY8), SX(TTY9),SX(TTY10), \
+ XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , \
+ XXXXXXX , XXXXXXX , XXXXXXX , \
+ \
+ XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , \
+ XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , \
+ XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , \
+ XXXXXXX , XXXXXXX , XXXXXXX \
+)
+
#define LAYER_GAME_DE KEYMAP( \
KC_ESC , DE_Q , DE_W , DE_E , DE_R , DE_T , \
SW(GNUM), DE_A , DE_S , DE_D , DE_F , DE_G , \
@@ -158,6 +170,7 @@ enum {
NUMS, /* numbers */
SPEC, /* specials */
META, /* functions */
+ MISC,
GAME, /* gaming base */
GNUM, /* gaming nums */
};
@@ -166,6 +179,16 @@ enum {
KVM1,
KVM2,
QUSW,
+ TTY1,
+ TTY2,
+ TTY3,
+ TTY4,
+ TTY5,
+ TTY6,
+ TTY7,
+ TTY8,
+ TTY9,
+ TTY10,
};
const uint32_t keymap_layers_de[][KEY_ROWS][KEY_COLS] = {
@@ -176,6 +199,7 @@ const uint32_t keymap_layers_de[][KEY_ROWS][KEY_COLS] = {
[NUMS] = LAYER_NUMS_DE,
[SPEC] = LAYER_SPEC_DE,
[META] = LAYER_META_DE,
+ [MISC] = LAYER_MISC_DE,
[GAME] = LAYER_GAME_DE,
[GNUM] = LAYER_GNUM_DE
@@ -185,14 +209,22 @@ const uint32_t keymap_layers_de_count = ARRLEN(keymap_layers_de);
const uint32_t (*keymap_layers)[KEY_ROWS][KEY_COLS] = keymap_layers_de;
uint32_t keymap_layers_count = keymap_layers_de_count;
-const uint32_t macro_kvm1[] = {
+static const uint32_t macro_kvm1[] = {
KC_LEFT_CTRL, KC_LEFT_CTRL, KC_1
};
-const uint32_t macro_kvm2[] = {
+static const uint32_t macro_kvm2[] = {
KC_LEFT_CTRL, KC_LEFT_CTRL, KC_2
};
+static const uint32_t ttysw_lut[] = {
+ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5,
+ KC_F6, KC_F7, KC_F8, KC_F9, KC_F10
+};
+static uint32_t macro_ttysw[] = {
+ HOLD(KC_LEFT_CTRL), HOLD(KC_LEFT_ALT), KC_F1,
+};
+
void
process_user_keypress(uint8_t sym, uint x, uint y)
{
@@ -211,6 +243,10 @@ process_user_keypress(uint8_t sym, uint x, uint y)
hid_switch_layer_with_key(QUIK, x, y);
}
break;
+ case TTY1...TTY10:
+ macro_ttysw[2] = ttysw_lut[sym - TTY1];
+ hid_send_macro(macro_ttysw, ARRLEN(macro_ttysw));
+ break;
}
}