summaryrefslogtreecommitdiff
path: root/users/nstickney/nstickney.c
diff options
context:
space:
mode:
authorJames Young <18669334+noroadsleft@users.noreply.github.com>2021-08-09 12:14:22 -0700
committerJames Young <18669334+noroadsleft@users.noreply.github.com>2021-08-09 12:14:22 -0700
commit7bec943043b8d03482e9f4ffc69cc63b9fc4a18a (patch)
treee138b4d121f2196d3983e1643cab4381ee729c9b /users/nstickney/nstickney.c
parentc0628c2820b436550f62af5f6b7fae1f66b0bf8b (diff)
parent26ea090190b815862f108903e5f41f20c6d16d66 (diff)
Merge remote-tracking branch 'upstream/master' into develop
Fixes merge conflicts in: - keyboards/bm40hsrgb/config.h - Conflict from PR 13132: - RGB_DISABLE_WHEN_USB_SUSPENDED signature updated in develop branch, unmodified in master branch - updated file with changes from master branch - keyboards/keebio/iris/keymaps/nstickney/keymap.c - Conflict from PR 11456: - layer_state_set_user() updated in develop branch, removed in master branch - updated file with changes from master branch
Diffstat (limited to 'users/nstickney/nstickney.c')
-rw-r--r--users/nstickney/nstickney.c112
1 files changed, 82 insertions, 30 deletions
diff --git a/users/nstickney/nstickney.c b/users/nstickney/nstickney.c
index 3e18e5c838..8222e7289d 100644
--- a/users/nstickney/nstickney.c
+++ b/users/nstickney/nstickney.c
@@ -1,34 +1,73 @@
+/* Copyright 2021 @nstickney
+ *
+ * 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 "nstickney.h"
// Tap Dancing
-void dance_layer (qk_tap_dance_state_t *state, void *user_data) {
- switch (state -> count) {
- case 1: tap_code(KC_APP); break;
- case 2: layer_invert(NUMP); break;
- case 3: layer_invert(SYMB); break;
- case 4: layer_invert(SYSH); break;
- default: break;
- }
+void dance_layer(qk_tap_dance_state_t *state, void *user_data) {
+ switch (state->count) {
+ case 1:
+ tap_code(KC_APP);
+ break;
+ case 2:
+ layer_invert(NUMP);
+ break;
+ case 3:
+ layer_invert(SYMB);
+ break;
+ default:
+ break;
+ }
};
-void dance_lock_finished (qk_tap_dance_state_t *state, void *user_data) {
- switch (state->count) {
- case 1: register_code(KC_LGUI); break;
- case 2: register_code(KC_NLCK); break;
- case 3: register_code(KC_CAPS); break;
- case 4: register_code(KC_SLCK); break;
- default: break;
- }
+void dance_lock_finished(qk_tap_dance_state_t *state, void *user_data) {
+ switch (state->count) {
+ case 1:
+ register_code(KC_LGUI);
+ break;
+ case 2:
+ register_code(KC_NLCK);
+ break;
+ case 3:
+ register_code(KC_CAPS);
+ break;
+ case 4:
+ register_code(KC_SLCK);
+ break;
+ default:
+ break;
+ }
};
-void dance_lock_reset (qk_tap_dance_state_t *state, void *user_data) {
- switch (state->count) {
- case 1: unregister_code(KC_LGUI); break;
- case 2: unregister_code(KC_NLCK); break;
- case 3: register_code(KC_CAPS); break;
- case 4: register_code(KC_SLCK); break;
- default: break;
- }
+void dance_lock_reset(qk_tap_dance_state_t *state, void *user_data) {
+ switch (state->count) {
+ case 1:
+ unregister_code(KC_LGUI);
+ break;
+ case 2:
+ register_code(KC_NLCK);
+ break;
+ case 3:
+ register_code(KC_CAPS);
+ break;
+ case 4:
+ register_code(KC_SLCK);
+ break;
+ default:
+ break;
+ }
};
qk_tap_dance_action_t tap_dance_actions[] = {
@@ -36,9 +75,22 @@ qk_tap_dance_action_t tap_dance_actions[] = {
[LAYERS] = ACTION_TAP_DANCE_FN(dance_layer)
};
-void eeconfig_init_user (void) {
- set_unicode_input_mode(UC_LNX); // Linux
- //set_unicode_input_mode(UC_OSX); // Mac OSX
- //set_unicode_input_mode(UC_WIN); // Windows (with registry key, see wiki)
- //set_unicode_input_mode(UC_WINC); // Windows (with WinCompose, see wiki)
-}; \ No newline at end of file
+// RGB underglow per-layer hue values
+const uint16_t LAYER_HUE[] = {6, 197, 133, 69};
+
+// Initialize RGB underglow (colorful)
+void keyboard_post_init_user(void) {
+ rgblight_enable_noeeprom();
+ rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
+ for (uint16_t i = 0; i < 256; ++i) {
+ rgblight_sethsv_noeeprom((i + LAYER_HUE[BASE]) % 256, 255, 136);
+ wait_ms(8);
+ }
+};
+
+// Turn on RGB underglow according to active layer
+layer_state_t layer_state_set_user(layer_state_t state) {
+ uint8_t user_val = rgblight_get_val();
+ rgblight_sethsv_noeeprom(LAYER_HUE[get_highest_layer(state)], 255, user_val);
+ return state;
+};