summaryrefslogtreecommitdiff
path: root/keyboards/zfrontier/big_switch/keymaps/longtap
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/zfrontier/big_switch/keymaps/longtap')
-rw-r--r--keyboards/zfrontier/big_switch/keymaps/longtap/keymap.c118
-rw-r--r--keyboards/zfrontier/big_switch/keymaps/longtap/readme.md4
-rw-r--r--keyboards/zfrontier/big_switch/keymaps/longtap/rules.mk1
3 files changed, 123 insertions, 0 deletions
diff --git a/keyboards/zfrontier/big_switch/keymaps/longtap/keymap.c b/keyboards/zfrontier/big_switch/keymaps/longtap/keymap.c
new file mode 100644
index 0000000000..a475421a3a
--- /dev/null
+++ b/keyboards/zfrontier/big_switch/keymaps/longtap/keymap.c
@@ -0,0 +1,118 @@
+/* Copyright 2020 zFrontier
+ *
+ * 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 QMK_KEYBOARD_H
+#include <print.h>
+
+
+enum {
+ TD_ENTER = 0,
+};
+
+
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ LAYOUT( TD(TD_ENTER) ),
+};
+
+
+
+void keyboard_post_init_user(void) {
+ print("zFrontier S01.6 boot...\n");
+ rgblight_enable_noeeprom();
+ rgblight_mode_noeeprom(RGBLIGHT_MODE_BREATHING);
+ rgblight_sethsv_noeeprom(0,0,128);
+}
+
+
+void zf_switch_rgb_mode(void) {
+ switch (rgblight_get_mode() ) {
+ case RGBLIGHT_MODE_BREATHING:
+ rgblight_mode_noeeprom(RGBLIGHT_MODE_RAINBOW_MOOD);
+ break;
+ case RGBLIGHT_MODE_RAINBOW_MOOD:
+ rgblight_mode_noeeprom(RGBLIGHT_MODE_RAINBOW_SWIRL);
+ break;
+ case RGBLIGHT_MODE_RAINBOW_SWIRL:
+ rgblight_mode_noeeprom(RGBLIGHT_MODE_SNAKE);
+ break;
+ case RGBLIGHT_MODE_SNAKE:
+ rgblight_mode_noeeprom(RGBLIGHT_MODE_KNIGHT);
+ break;
+ case RGBLIGHT_MODE_KNIGHT:
+ rgblight_mode_noeeprom(RGBLIGHT_MODE_CHRISTMAS);
+ break;
+ case RGBLIGHT_MODE_CHRISTMAS:
+ rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_GRADIENT);
+ break;
+ case RGBLIGHT_MODE_STATIC_GRADIENT:
+ rgblight_mode_noeeprom(RGBLIGHT_MODE_RGB_TEST);
+ break;
+ case RGBLIGHT_MODE_RGB_TEST:
+ default:
+ rgblight_mode_noeeprom(RGBLIGHT_MODE_BREATHING);
+ break;
+ }
+}
+
+void zf_send_random_string(void) {
+ uint8_t tmpu8 = (timer_read() & 0x7);
+ switch (tmpu8) {
+ case 0:
+ case 1:
+ SEND_STRING("Sazabi, launching!");
+ break;
+ case 2:
+ case 3:
+ SEND_STRING("I, Char Aznable, will purge them, Amuro!");
+ break;
+ case 4:
+ case 5:
+ SEND_STRING("Their souls are weighted down by gravity!");
+ break;
+ case 6:
+ SEND_STRING("Go, Axis! With my unpleasant memories!");
+ break;
+ case 7:
+ SEND_STRING("Hello from zFrontier!");
+ break;
+ }
+
+ tap_code(KC_ENT);
+}
+
+void dance_finished(qk_tap_dance_state_t *state, void *user_data) {
+ switch (state->count) {
+ case 1:
+ register_code(KC_ENTER);
+ break;
+ case 2:
+ zf_switch_rgb_mode();
+ break;
+ default:
+ zf_send_random_string();
+ break;
+ }
+}
+
+void dance_reset(qk_tap_dance_state_t *state, void *user_data) {
+ if (state->count == 1) {
+ unregister_code(KC_ENTER);
+ }
+}
+
+qk_tap_dance_action_t tap_dance_actions[] = {
+ [TD_ENTER] = ACTION_TAP_DANCE_FN_ADVANCED (NULL, dance_finished, dance_reset)
+};
diff --git a/keyboards/zfrontier/big_switch/keymaps/longtap/readme.md b/keyboards/zfrontier/big_switch/keymaps/longtap/readme.md
new file mode 100644
index 0000000000..a94e5c32cb
--- /dev/null
+++ b/keyboards/zfrontier/big_switch/keymaps/longtap/readme.md
@@ -0,0 +1,4 @@
+# The longtap keymap for big_switch, the single switch keyboard,
+- tap once : send ENTER
+- tap twice : change RGB backlight mode
+- tap three times : send a pesudo-random string
diff --git a/keyboards/zfrontier/big_switch/keymaps/longtap/rules.mk b/keyboards/zfrontier/big_switch/keymaps/longtap/rules.mk
new file mode 100644
index 0000000000..e5ddcae8d9
--- /dev/null
+++ b/keyboards/zfrontier/big_switch/keymaps/longtap/rules.mk
@@ -0,0 +1 @@
+TAP_DANCE_ENABLE = yes