1
0
Fork 0

[Core] Tri Layer Keys (#19795)

Co-authored-by: wilba <wilba@wilba.tech>
Co-authored-by: Pablo Martínez <58857054+elpekenin@users.noreply.github.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Nick Brassel <nick@tzarc.org>
This commit is contained in:
Drashna Jael're 2023-02-11 15:23:07 -08:00 committed by GitHub
parent 4002843797
commit fe02abc479
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
19 changed files with 377 additions and 15 deletions

View file

@ -0,0 +1,30 @@
// Copyright 2023 QMK
// SPDX-License-Identifier: GPL-2.0-or-later
#include "process_tri_layer.h"
#include "tri_layer.h"
#include "action_layer.h"
bool process_tri_layer(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case QK_TRI_LAYER_LOWER:
if (record->event.pressed) {
layer_on(get_tri_layer_lower_layer());
update_tri_layer(get_tri_layer_lower_layer(), get_tri_layer_upper_layer(), get_tri_layer_adjust_layer());
} else {
layer_off(get_tri_layer_lower_layer());
update_tri_layer(get_tri_layer_lower_layer(), get_tri_layer_upper_layer(), get_tri_layer_adjust_layer());
}
return false;
case QK_TRI_LAYER_UPPER:
if (record->event.pressed) {
layer_on(get_tri_layer_upper_layer());
update_tri_layer(get_tri_layer_lower_layer(), get_tri_layer_upper_layer(), get_tri_layer_adjust_layer());
} else {
layer_off(get_tri_layer_upper_layer());
update_tri_layer(get_tri_layer_lower_layer(), get_tri_layer_upper_layer(), get_tri_layer_adjust_layer());
}
return false;
}
return true;
}

View file

@ -0,0 +1,16 @@
// Copyright 2023 QMK
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#include "action.h"
/**
* @brief Handles tri layer behavior
*
* @param keycode the keycode
* @param record the key record structure
* @return true continue handling keycodes
* @return false stop handling keycodes
*/
bool process_tri_layer(uint16_t keycode, keyrecord_t *record);