~ruther/qmk_firmware

ab2a43edb060b393387d12dfb6c24f99cad9e871 — stanrc85 4 years ago d17caeb
[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
M users/stanrc85/config.h => users/stanrc85/config.h +6 -0
@@ 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

A users/stanrc85/indicator_layers_sneakbox.c => users/stanrc85/indicator_layers_sneakbox.c +28 -0
@@ 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;
}
\ No newline at end of file

M users/stanrc85/rules.mk => users/stanrc85/rules.mk +8 -0
@@ 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

M users/stanrc85/stanrc85.c => users/stanrc85/stanrc85.c +18 -0
@@ 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);