[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_LAYERS
|
||||||
#define RGBLIGHT_SLEEP
|
#define RGBLIGHT_SLEEP
|
||||||
#endif
|
#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
|
LTO_ENABLE = no
|
||||||
VELOCIKEY_ENABLE=yes
|
VELOCIKEY_ENABLE=yes
|
||||||
endif
|
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)
|
ifeq ($(strip $(KEYBOARD)), tkc/osav2)
|
||||||
SRC += rgblight_layers_osa.c
|
SRC += rgblight_layers_osa.c
|
||||||
VIA_ENABLE = yes
|
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)
|
#if defined(HAS_INDICATORS)
|
||||||
static uint8_t led_user = 0;
|
static uint8_t led_user = 0;
|
||||||
#endif
|
#endif
|
||||||
|
@ -55,6 +67,9 @@ void lock_unlock (qk_tap_dance_state_t *state, void *user_data) {
|
||||||
tap_code16(KC_CAD);
|
tap_code16(KC_CAD);
|
||||||
#if defined(HAS_INDICATORS)
|
#if defined(HAS_INDICATORS)
|
||||||
led_user = 0;
|
led_user = 0;
|
||||||
|
#if defined(KEYBOARD_sneakbox_aliceclone)
|
||||||
|
led_user = 1;
|
||||||
|
#endif
|
||||||
writePin(INDICATOR_PIN_0, !led_user);
|
writePin(INDICATOR_PIN_0, !led_user);
|
||||||
wait_ms(200);
|
wait_ms(200);
|
||||||
writePin(INDICATOR_PIN_1, !led_user);
|
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);
|
tap_code16(KC_LOCK);
|
||||||
#if defined(HAS_INDICATORS)
|
#if defined(HAS_INDICATORS)
|
||||||
led_user = 1;
|
led_user = 1;
|
||||||
|
#if defined(KEYBOARD_sneakbox_aliceclone)
|
||||||
|
led_user = 0;
|
||||||
|
#endif
|
||||||
writePin(INDICATOR_PIN_2, !led_user);
|
writePin(INDICATOR_PIN_2, !led_user);
|
||||||
wait_ms(200);
|
wait_ms(200);
|
||||||
writePin(INDICATOR_PIN_1, !led_user);
|
writePin(INDICATOR_PIN_1, !led_user);
|
||||||
|
|
Loading…
Reference in a new issue