From 4648092db1c169d9e62bb6a0c577ab99434652e7 Mon Sep 17 00:00:00 2001 From: Stacy Harper Date: Thu, 26 Aug 2021 19:20:20 +0200 Subject: Add landscape layers --- keyboard.c | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) (limited to 'keyboard.c') diff --git a/keyboard.c b/keyboard.c index 879704c..373abcb 100644 --- a/keyboard.c +++ b/keyboard.c @@ -97,7 +97,14 @@ void kbd_init(struct kbd *kb, struct layout * layouts, char * layer_names_list) } fprintf(stderr, "Found %d layers\n",i); - kb->layout = &kb->layouts[kb->layers[kb->layer_index]]; + enum layout_id layer; + if (kb->landscape) { + layer = kb->landscape_layers[kb->layer_index]; + } else { + layer = kb->layers[kb->layer_index]; + } + + kb->layout = &kb->layouts[layer]; kb->prevlayout = kb->layout; /* upload keymap */ @@ -236,10 +243,21 @@ kbd_press_key(struct kbd *kb, struct key *k, uint32_t time) { case NextLayer: //switch to the next layout in the layer sequence kb->layer_index++; - if (kb->layers[kb->layer_index] == NumLayouts) { + enum layout_id layer; + if (kb->landscape) { + layer = kb->landscape_layers[kb->layer_index]; + } else { + layer = kb->layers[kb->layer_index]; + } + if (layer == NumLayouts) { kb->layer_index = 0; + if (kb->landscape) { + layer = kb->landscape_layers[kb->layer_index]; + } else { + layer = kb->layers[kb->layer_index]; + } } - kbd_switch_layout(kb, &kb->layouts[kb->layers[kb->layer_index]]); + kbd_switch_layout(kb, &kb->layouts[layer]); break; case BackLayer: //switch to the previously active layout -- cgit 1.4.1