From 4a15eb593d0d1447bf9bca87ef966f84b8077a4f Mon Sep 17 00:00:00 2001 From: Tyler Thrailkill Date: Wed, 23 Jun 2021 20:21:40 -0600 Subject: snowe keymap/userspace and Ocean Dream animation (#12477) * Add snowe keymap/userspace & Ocean Dream animation * Add snowe userspace with keymap wrappers and two animations * Add crkbd keymap * Add Ocean Dream animation, a cool full screen animation with: * * twinkling stars * * meteor showers * * ocean waves * * island with palm tree * * moon with phases * Disable Luna so travis build succeeds. * Add more copyrights * Add pragma once to keycode_aliases.h Co-authored-by: Drashna Jaelre Co-authored-by: Drashna Jaelre --- keyboards/crkbd/keymaps/snowe/config.h | 55 +++++++ keyboards/crkbd/keymaps/snowe/keycode_aliases.h | 81 ++++++++++ keyboards/crkbd/keymaps/snowe/keymap.c | 190 ++++++++++++++++++++++++ keyboards/crkbd/keymaps/snowe/rules.mk | 25 ++++ 4 files changed, 351 insertions(+) create mode 100644 keyboards/crkbd/keymaps/snowe/config.h create mode 100644 keyboards/crkbd/keymaps/snowe/keycode_aliases.h create mode 100644 keyboards/crkbd/keymaps/snowe/keymap.c create mode 100644 keyboards/crkbd/keymaps/snowe/rules.mk (limited to 'keyboards/crkbd') diff --git a/keyboards/crkbd/keymaps/snowe/config.h b/keyboards/crkbd/keymaps/snowe/config.h new file mode 100644 index 0000000000..b624b589bc --- /dev/null +++ b/keyboards/crkbd/keymaps/snowe/config.h @@ -0,0 +1,55 @@ +/* +This is the c configuration file for the keymap + +Copyright 2012 Jun Wako +Copyright 2015 Jack Humbert + +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 . +*/ + +#pragma once + +//#define USE_MATRIX_I2C + +/* Select hand configuration */ + +#define MASTER_LEFT +// #define MASTER_RIGHT +// #define EE_HANDS + +#define USE_SERIAL_PD2 + +#define TAPPING_FORCE_HOLD +#define TAPPING_TERM 200 + +#define IGNORE_MOD_TAP_INTERRUPT +#undef PERMISSIVE_HOLD + +#ifdef RGBLIGHT_ENABLE + #undef RGBLED_NUM + #define RGBLIGHT_ANIMATIONS + #define RGBLED_NUM 27 + #define RGBLIGHT_LIMIT_VAL 120 + #define RGBLIGHT_HUE_STEP 10 + #define RGBLIGHT_SAT_STEP 17 + #define RGBLIGHT_VAL_STEP 17 +#endif + +#define OLED_FONT_H "keyboards/crkbd/lib/glcdfont.c" + +// fix for me putting alt under A and being a fast typist +#define IGNORE_MOD_TAP_INTERRUPT +//#define IGNORE_MOD_TAP_INTERRUPT_PER_KEY + +#define LAYER_STATE_8BIT \ No newline at end of file diff --git a/keyboards/crkbd/keymaps/snowe/keycode_aliases.h b/keyboards/crkbd/keymaps/snowe/keycode_aliases.h new file mode 100644 index 0000000000..bd70a79aa5 --- /dev/null +++ b/keyboards/crkbd/keymaps/snowe/keycode_aliases.h @@ -0,0 +1,81 @@ +/* + * Copyright 2020 Drashna Jaelre <@drashna> + * Copyright 2021 Tyler Thrailkill <@snowe/@snowe2010> + * + * 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 . + */ + +#pragma once + +#define GUI_ESC GUI_T(KC_ESC) +#define CTL_ESC CTL_T(KC_ESC) +#define SH_BKSP SFT_T(KC_BSPC) +#define SP_RAIS LT(_UPPER, KC_SPC) + +#define LOWER MO(_LOWER) +#define RAISE MO(_UPPER) +#define ADJUST MO(_ADJUST) +#define TG_MODS TG(_MODS) +//#define TG_GAME TG(_GAMEPAD) +//#define OS_LWR OSL(_LOWER) +//#define OS_RSE OSL(_UPPER) + +//#define KC_SEC1 KC_SECRET_1 +//#define KC_SEC2 KC_SECRET_2 +//#define KC_SEC3 KC_SECRET_3 +//#define KC_SEC4 KC_SECRET_4 +//#define KC_SEC5 KC_SECRET_5 + +#define QWERTY KC_QWERTY +#define DVORAK KC_DVORAK +#define COLEMAK KC_COLEMAK +#define WORKMAN KC_WORKMAN + +#define KC_RESET RESET +#define KC_RST KC_RESET + +#ifdef SWAP_HANDS_ENABLE +# define KC_C1R3 SH_TT +#else // SWAP_HANDS_ENABLE +# define KC_C1R3 KC_BSPC +#endif // SWAP_HANDS_ENABLE + +#define BK_LWER LT(_LOWER, KC_BSPC) +#define SP_LWER LT(_LOWER, KC_SPC) +#define DL_RAIS LT(_UPPER, KC_DEL) +#define ET_RAIS LT(_UPPER, KC_ENTER) +#define SFT_ENT SFT_T(KC_ENTER) +#define SP_RAIS LT(_UPPER, KC_SPC) + +/* OSM keycodes, to keep things clean and easy to change */ +#define KC_MLSF OSM(MOD_LSFT) +#define KC_MRSF OSM(MOD_RSFT) + +#define OS_LGUI OSM(MOD_LGUI) +#define OS_RGUI OSM(MOD_RGUI) +#define OS_LSFT OSM(MOD_LSFT) +#define OS_RSFT OSM(MOD_RSFT) +#define OS_LCTL OSM(MOD_LCTL) +#define OS_RCTL OSM(MOD_RCTL) +#define OS_LALT OSM(MOD_LALT) +#define OS_RALT OSM(MOD_RALT) +#define OS_MEH OSM(MOD_MEH) +#define OS_HYPR OSM(MOD_HYPR) + +#define ALT_APP ALT_T(KC_APP) + +#define MG_NKRO MAGIC_TOGGLE_NKRO + +#define UC_IRNY UC(0x2E2E) +#define UC_CLUE UC(0x203D) diff --git a/keyboards/crkbd/keymaps/snowe/keymap.c b/keyboards/crkbd/keymaps/snowe/keymap.c new file mode 100644 index 0000000000..4dfd6ecbeb --- /dev/null +++ b/keyboards/crkbd/keymaps/snowe/keymap.c @@ -0,0 +1,190 @@ +/* +Copyright 2019 @foostan +Copyright 2020 Drashna Jaelre <@drashna> +Copyright 2021 Tyler Thrailkill <@snowe/@snowe2010> + +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 . +*/ + +#include QMK_KEYBOARD_H +#include "snowe.h" + +// Symbols chart +// ↯ hyper key (ctrl, alt, shift, super) +// ⌘ command +// ⌥ option +// ⌃ control +// ⇧ shift +// ⌫ backspace +// ⌦ delete +// ⎋ escape +// ↩ enter + +/* Wrapper + * ,-----------------------------------------------. .-----------------------------------------------. + * | Tab | K01 | K02 | K03 | K04 | K05 | | K06 | K07 | K08 | K09 | K0A | | + * |-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------| + * | ⌘/⎋ | ⌃/K11 | K12 | K13 | K14 | K15 | | K16 | K17 | K18 | K19 | ⌥/K1A | | + * |-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------| + * | ↯/⌦ | ⌥/K21 | K22 | K23 | K24 | K25 | | K26 | K27 | K28 | K29 | ⌃/K2A | | + * `-----------------------. | | .-----------------------' + * |-------+-------+-------| |-------+-------+-------| + * | ⌃ | ⇧/↩ | ⌫/LWR | | ␣/RAY | ␣ | R ⌥ | + * `-----------------------' '-----------------------' + */ +// clang-format off +#define LAYOUT_crkbd_base( \ + K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \ + K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \ + K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A \ + ) \ + LAYOUT_wrapper( \ + KC_TAB, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, KC_MINS, \ + GUI_ESC, CTL_T(K11), K12, K13, K14, K15, K16, K17, K18, K19, ALT_T(K1A), KC_QUOT, \ + HYPR_T(KC_DEL), ALT_T(K21), K22, K23, K24, K25, K26, K27, K28, K29, RCTL_T(K2A), KC_BSLS, \ + KC_LCTL, LOWER, SH_BKSP, KC_ENTER, SP_RAIS, KC_LALT \ + ) +// clang-format on +#define LAYOUT_crkbd_base_wrapper(...) LAYOUT_crkbd_base(__VA_ARGS__) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // clang-format off + /* QWERTY + * ,-----------------------------------------------. .-----------------------------------------------. + * | | Q | W | E | R | T | | Y | U | I | O | P | | + * |-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------| + * | | A | S | D | F | G | | H | J | K | L | ; | ' | + * |-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------| + * | | Z | X | C | V | B | | N | M | , | . | / | | + * `-----------------------. | | .-----------------------' + * |-------+-------+-------| |-------+-------+-------| + * | | | | | | | | + * `-----------------------' '-----------------------' + */ + [_MAIN] = LAYOUT_crkbd_base_wrapper( + _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, + _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, + _________________QWERTY_L3_________________, _________________QWERTY_R3_________________ + ), + + /* Lower + * ,-----------------------------------------------. .-----------------------------------------------. + * | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | | + * |-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------| + * | | | | | | | | | _ | + | [ | ] | | + * |-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------| + * | | | | | | | | | ← | ↑ | ↓ | → | | + * `-----------------------. | | .-----------------------' + * |-------+-------+-------| |-------+-------+-------| + * | | | | | | | | + * `-----------------------' '-----------------------' + */ + [_LOWER] = LAYOUT_wrapper( + KC_TILDE, _________________LOWER_L1__________________, _________________LOWER_R1__________________, KC_F11, + KC_F12 , _________________LOWER_L2__________________, _________________LOWER_R2__________________, KC_PIPE, + _______ , _________________LOWER_L3__________________, _________________LOWER_R3__________________, _______, + _______, _______, _______, _______, _______, _______ + ), + + + /* + * ,-----------------------------------------------. .-----------------------------------------------. + * | | | | | | | | | | | | | | + * |-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------| + * | | | | | | | | | | | | | | + * |-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------| + * | | | | | | | | | | | | | | + * `-----------------------. | | .-----------------------' + * |-------+-------+-------| |-------+-------+-------| + * | | | | | | | | + * `-----------------------' '-----------------------' + */ + /* Raise + * ,-----------------------------------------------. .-----------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | | + * |-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------| + * | | | | | | | | | ← | ↑ | ↓ | → | | + * |-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------| + * | | | | | | | | | home |pg down| pg up | end | | + * `-----------------------. | | .-----------------------' + * |-------+-------+-------| |-------+-------+-------| + * | | | | | | | | + * `-----------------------' '-----------------------' + */ + [_UPPER] = LAYOUT_wrapper( \ + KC_GRV, _________________RAISE_L1__________________, _________________RAISE_R1__________________, _______, + _______, _________________RAISE_L2__________________, _________________RAISE_R2__________________, KC_BSLS, + _______, _________________RAISE_L3__________________, _________________RAISE_R3__________________, _______, + _______, _______, _______, _______, _______, _______ + ), + + [_ADJUST] = LAYOUT_wrapper( \ + _______, _________________ADJUST_L1_________________, _________________ADJUST_R1_________________, KC_RESET, + _______, _________________ADJUST_L2_________________, _________________ADJUST_R2_________________, EEP_RST, + _______, _________________ADJUST_L3_________________, _________________ADJUST_R3_________________, KC_MPLY, + _______, _______, _______, _______, _______, _______ + ) + // clang-format on +}; + +layer_state_t layer_state_set_user(layer_state_t state) { return update_tri_layer_state(state, _LOWER, _UPPER, _ADJUST); } + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case KC_LCTL: + case KC_RCTL: +#ifdef OCEAN_DREAM_ENABLE + is_calm = (record->event.pressed) ? true : false; +#endif +#ifdef LUNA_ENABLE + if (record->event.pressed) { + isSneaking = true; + } else { + isSneaking = false; + } +#endif + break; + case KC_SPC: +#ifdef LUNA_ENABLE + if (record->event.pressed) { + isJumping = true; + showedJump = false; + } else { + isJumping = false; + } +#endif + break; + } + return true; +} + +// uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { +// switch (keycode) { +// case ALT_T(KC_A): +// case SH_BKSP: +// return TAPPING_TERM + 500; +// default: +// return TAPPING_TERM; +// } +//} +// +// bool get_ignore_mod_tap_interrupt(uint16_t keycode, keyrecord_t *record) { +// switch (keycode) { +// case ALT_T(KC_A): +// case SH_BKSP: +// return true; +// default: +// return false; +// } +//} \ No newline at end of file diff --git a/keyboards/crkbd/keymaps/snowe/rules.mk b/keyboards/crkbd/keymaps/snowe/rules.mk new file mode 100644 index 0000000000..fac462a685 --- /dev/null +++ b/keyboards/crkbd/keymaps/snowe/rules.mk @@ -0,0 +1,25 @@ +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = no # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +AUDIO_ENABLE = no # Audio output on port C6 +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. +LEADER_ENABLE = no +MIDI_ENABLE = no # MIDI controls +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +SWAP_HANDS_ENABLE = no # Enable one-hand typing +RGBLIGHT_TWINKLE = no +OLED_DRIVER_ENABLE = yes +RGB_MATRIX_ENABLE = yes + +OCEAN_DREAM_ENABLE = yes +LUNA_ENABLE = no # disabled so travis build succeeds + +# if firmware size over limit, try this option +CFLAGS += -flto + +WPM_ENABLE = yes -- cgit v1.2.1