forked from mirrors/qmk_firmware
[Keymap] sneakbox keymap and userspace code (redo) (#10977)
* Add support for LAYOUT_alice to sneakbox pcb * define variables for sneakbox led pins * set rules for sneakbox pcb * add rotary encoder to userspace * fix rotary function * add custom layer indicators for sneakbox * Revert "Add support for LAYOUT_alice to sneakbox pcb" This reverts commit 5ed94d8d897de6ef4f7a349368a6342cef5eff06. * add license header * Use KEYBOARD_sneakbox_aliceclone * cleaned up indicator code
This commit is contained in:
parent
d17caeb8ec
commit
ab2a43edb0
4 changed files with 60 additions and 0 deletions
|
@ -7,3 +7,9 @@
|
|||
#define RGBLIGHT_LAYERS
|
||||
#define RGBLIGHT_SLEEP
|
||||
#endif
|
||||
|
||||
#ifdef KEYBOARD_sneakbox_aliceclone
|
||||
#define INDICATOR_PIN_0 D7
|
||||
#define INDICATOR_PIN_1 D6
|
||||
#define INDICATOR_PIN_2 D4
|
||||
#endif
|
||||
|
|
28
users/stanrc85/indicator_layers_sneakbox.c
Normal file
28
users/stanrc85/indicator_layers_sneakbox.c
Normal file
|
@ -0,0 +1,28 @@
|
|||
/* Copyright 2020 Stanrc85
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "stanrc85.h"
|
||||
|
||||
layer_state_t layer_state_set_user(layer_state_t state) {
|
||||
writePin(INDICATOR_PIN_2, layer_state_cmp(state, _FN2_60) || layer_state_cmp(state, _DEFAULT));
|
||||
writePin(INDICATOR_PIN_1, layer_state_cmp(state, _FN1_60) || layer_state_cmp(state, _DEFAULT));
|
||||
return state;
|
||||
}
|
||||
|
||||
bool led_update_user(led_t led_state) {
|
||||
writePin(INDICATOR_PIN_0, led_state.caps_lock);
|
||||
return false;
|
||||
}
|
|
@ -18,6 +18,14 @@ ifeq ($(strip $(KEYBOARD)), projectkb/alice/rev2)
|
|||
LTO_ENABLE = no
|
||||
VELOCIKEY_ENABLE=yes
|
||||
endif
|
||||
ifeq ($(strip $(KEYBOARD)), sneakbox/aliceclone)
|
||||
SRC += indicator_layers_sneakbox.c
|
||||
#SRC += startup_fanfare.c
|
||||
OPT_DEFS += -DHAS_INDICATORS
|
||||
OPT_DEFS += -DHAS_ROTARY
|
||||
VIA_ENABLE = yes
|
||||
LTO_ENABLE = no
|
||||
endif
|
||||
ifeq ($(strip $(KEYBOARD)), tkc/osav2)
|
||||
SRC += rgblight_layers_osa.c
|
||||
VIA_ENABLE = yes
|
||||
|
|
|
@ -44,6 +44,18 @@ void ctl_copy_reset (qk_tap_dance_state_t *state, void *user_data) {
|
|||
}
|
||||
}
|
||||
|
||||
#if defined(HAS_ROTARY)
|
||||
void encoder_update_user(uint8_t index, bool clockwise) {
|
||||
if (index == 0) { /* First encoder */
|
||||
if (clockwise) {
|
||||
tap_code(KC_VOLD);
|
||||
} else {
|
||||
tap_code(KC_VOLU);
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(HAS_INDICATORS)
|
||||
static uint8_t led_user = 0;
|
||||
#endif
|
||||
|
@ -55,6 +67,9 @@ void lock_unlock (qk_tap_dance_state_t *state, void *user_data) {
|
|||
tap_code16(KC_CAD);
|
||||
#if defined(HAS_INDICATORS)
|
||||
led_user = 0;
|
||||
#if defined(KEYBOARD_sneakbox_aliceclone)
|
||||
led_user = 1;
|
||||
#endif
|
||||
writePin(INDICATOR_PIN_0, !led_user);
|
||||
wait_ms(200);
|
||||
writePin(INDICATOR_PIN_1, !led_user);
|
||||
|
@ -68,6 +83,9 @@ void lock_unlock (qk_tap_dance_state_t *state, void *user_data) {
|
|||
tap_code16(KC_LOCK);
|
||||
#if defined(HAS_INDICATORS)
|
||||
led_user = 1;
|
||||
#if defined(KEYBOARD_sneakbox_aliceclone)
|
||||
led_user = 0;
|
||||
#endif
|
||||
writePin(INDICATOR_PIN_2, !led_user);
|
||||
wait_ms(200);
|
||||
writePin(INDICATOR_PIN_1, !led_user);
|
||||
|
|
Loading…
Reference in a new issue