From 4747d974aa72b05ab12917308703d711dd04b016 Mon Sep 17 00:00:00 2001 From: Salicylic-acid3 <46864619+Salicylic-acid3@users.noreply.github.com> Date: Wed, 17 Jul 2019 01:39:39 +0900 Subject: [Keyboard] Add keyboard Naked48 (#6330) * Add Naked48 * Comment reflected --- .../naked48/keymaps/salicylic_with_nafuda/config.h | 64 +++++++ .../naked48/keymaps/salicylic_with_nafuda/keymap.c | 188 +++++++++++++++++++++ .../keymaps/salicylic_with_nafuda/readme.md | 39 +++++ .../naked48/keymaps/salicylic_with_nafuda/rules.mk | 29 ++++ 4 files changed, 320 insertions(+) create mode 100644 keyboards/naked48/keymaps/salicylic_with_nafuda/config.h create mode 100644 keyboards/naked48/keymaps/salicylic_with_nafuda/keymap.c create mode 100644 keyboards/naked48/keymaps/salicylic_with_nafuda/readme.md create mode 100644 keyboards/naked48/keymaps/salicylic_with_nafuda/rules.mk (limited to 'keyboards/naked48/keymaps/salicylic_with_nafuda') diff --git a/keyboards/naked48/keymaps/salicylic_with_nafuda/config.h b/keyboards/naked48/keymaps/salicylic_with_nafuda/config.h new file mode 100644 index 0000000000..a55856b240 --- /dev/null +++ b/keyboards/naked48/keymaps/salicylic_with_nafuda/config.h @@ -0,0 +1,64 @@ +/* Copyright 2018 Salicylic_acid3 + * + * 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 + +/* Select hand configuration */ + +#define MASTER_LEFT +// #define MASTER_RIGHT +// #define EE_HANDS + +#define USE_SERIAL_PD2 + +#define TAPPING_FORCE_HOLD +#define TAPPING_TERM 180 + +// Selection of RGBLIGHT MODE to use. +#if defined(LED_ANIMATIONS) + //#define RGBLIGHT_EFFECT_BREATHING + #define RGBLIGHT_EFFECT_RAINBOW_MOOD + #define RGBLIGHT_EFFECT_RAINBOW_SWIRL + //#define RGBLIGHT_EFFECT_SNAKE + #define RGBLIGHT_EFFECT_KNIGHT + //#define RGBLIGHT_EFFECT_CHRISTMAS + #define RGBLIGHT_EFFECT_STATIC_GRADIENT + //#define RGBLIGHT_EFFECT_RGB_TEST + //#define RGBLIGHT_EFFECT_ALTERNATING +#endif + +#define MK_3_SPEED + +#undef MOUSEKEY_INTERVAL +#define MOUSEKEY_INTERVAL 0 + +#undef MOUSEKEY_TIME_TO_MAX +#define MOUSEKEY_TIME_TO_MAX 150 + +#undef MOUSEKEY_MAX_SPEED +#define MOUSEKEY_MAX_SPEED 3 + +#undef MOUSEKEY_MOVE_DELTA +#define MOUSEKEY_MOVE_DELTA 5 + +#undef MOUSEKEY_DELAY +#define MOUSEKEY_DELAY 0 + +#undef MOUSEKEY_WHEEL_MAX_SPEED +#define MOUSEKEY_WHEEL_MAX_SPEED 1 + +#undef MOUSEKEY_WHEEL_TIME_TO_MAX +#define MOUSEKEY_WHEEL_TIME_TO_MAX 0 diff --git a/keyboards/naked48/keymaps/salicylic_with_nafuda/keymap.c b/keyboards/naked48/keymaps/salicylic_with_nafuda/keymap.c new file mode 100644 index 0000000000..1551b82631 --- /dev/null +++ b/keyboards/naked48/keymaps/salicylic_with_nafuda/keymap.c @@ -0,0 +1,188 @@ +#include QMK_KEYBOARD_H +#include "keymap_jp.h" + +extern keymap_config_t keymap_config; + +#ifdef RGBLIGHT_ENABLE +//Following line allows macro to read current RGB settings +extern rgblight_config_t rgblight_config; +#endif + +extern uint8_t is_master; + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +enum layer_number { + _QWERTY = 0, + _MOUSE, + _BROWSER, + _LOWER, + _RAISE, + _ADJUST, +}; + +enum custom_keycodes { + MOUSE = SAFE_RANGE, + BROWSER, + LOWER, + RAISE, + ADJUST, + KANJI, + RGBRST +}; + +// Fillers to make layering more clear +#define _____ KC_TRNS +#define XXXXX KC_NO + +#define KC_CT11 LCTL_T(KC_F11) +#define KC_SF12 SFT_T(KC_F12) + +#define KC_LOEN LT(_LOWER, KC_ENT) +#define KC_RASP LT(_RAISE, KC_SPC) +#define KC_CAD LCA(KC_DEL) +#define KC_APSCR LALT(KC_PSCR) + +#define KC_RTAB LCTL(KC_TAB) +#define KC_LTAB LCTL(LSFT(KC_TAB)) +#define KC_CTAB LCTL(KC_W) +#define KC_RETAB LCTL(LSFT(KC_T)) + +#define KC_TGMO TG(_MOUSE) +#define KC_TGBR TG(_BROWSER) +#define KC_BSAD LT(_ADJUST, KC_BSPC) + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QWERTY] = LAYOUT_with_nafuda( + //,-----------------------------------------------------| |-----------------------------------------------------. |--------------------------| + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, JP_LBRC, KC_TGMO, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |--------+--------+--------| + KC_LCTRL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, JP_MINS, JP_RBRC, KC_BSAD, KC_UP, KC_TGBR, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |--------+--------+--------| + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, JP_COMM, JP_DOT, JP_SLSH, JP_BSLS, KC_LEFT, KC_DOWN,KC_RIGHT, + //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |--------------------------| + KC_LEFT,KC_RIGHT, KC_LGUI, KC_MHEN, KC_LOEN, KC_BSPC, KC_DEL, KC_RASP, KC_HENK, KC_LALT, KC_DOWN, KC_UP + //`------------------------------------------------------------------------------------------------------------' + ), + + [_MOUSE] = LAYOUT_with_nafuda( + //,-----------------------------------------------------| |-----------------------------------------------------. |--------------------------| + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, JP_LBRC, KC_TGMO, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |--------+--------+--------| + KC_LCTRL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, JP_MINS, JP_RBRC, KC_BTN1, KC_MS_U, KC_BTN2, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |--------+--------+--------| + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, JP_COMM, JP_DOT, JP_SLSH, JP_BSLS, KC_MS_L, KC_MS_D, KC_MS_R, + //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |--------------------------| + KC_LEFT,KC_RIGHT, KC_LGUI, KC_MHEN, KC_LOEN, KC_BSPC, KC_DEL, KC_RASP, KC_HENK, KC_LALT, KC_DOWN, KC_UP + //`------------------------------------------------------------------------------------------------------------' + ), + + [_BROWSER] = LAYOUT_with_nafuda( + //,-----------------------------------------------------| |-----------------------------------------------------. |--------------------------| + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, JP_LBRC, KC_CTAB, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |--------+--------+--------| + KC_LCTRL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, JP_MINS, JP_RBRC, KC_RETAB, KC_WH_U, KC_TGBR, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |--------+--------+--------| + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, JP_COMM, JP_DOT, JP_SLSH, JP_BSLS, KC_LTAB, KC_WH_D, KC_RTAB, + //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |--------------------------| + KC_LEFT,KC_RIGHT, KC_LGUI, KC_MHEN, KC_LOEN, KC_BSPC, KC_DEL, KC_RASP, KC_HENK, KC_LALT, KC_DOWN, KC_UP + //`------------------------------------------------------------------------------------------------------------' + ), + + [_LOWER] = LAYOUT_with_nafuda( + //,-----------------------------------------------------| |-----------------------------------------------------. |--------------------------| + KC_ESC, JP_EXLM, JP_QUES, JP_LBRC, JP_RBRC, JP_TILD, KC_6, KC_7, KC_8, KC_9, JP_ASTR, JP_SLSH, KC_TGMO, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |--------+--------+--------| + JP_QUOT, JP_HASH, JP_DQT, JP_LPRN, JP_RPRN, JP_AT, XXXXX, KC_4, KC_5, KC_6, JP_MINS, JP_EQL, KC_BSAD, KC_UP, KC_TGBR, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |--------+--------+--------| + JP_CIRC, JP_PERC, JP_AMPR, JP_SCLN, JP_COLN, JP_PIPE, KC_0, KC_1, KC_2, KC_3, JP_PLUS, KC_ENT, KC_LEFT, KC_DOWN,KC_RIGHT, + //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |--------------------------| + _____, _____, _____, KC_ZKHK, LOWER, _____, _____, RAISE, KC_0, JP_DOT, _____, _____ + //`------------------------------------------------------------------------------------------------------------' + ), + + [_RAISE] = LAYOUT_with_nafuda( + //,-----------------------------------------------------| |-----------------------------------------------------. |--------------------------| + KC_ESC, JP_EXLM, JP_QUES, JP_LBRC, JP_RBRC, JP_TILD, KC_6, KC_7, KC_8, KC_9, JP_ASTR, JP_SLSH, KC_TGMO, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |--------+--------+--------| + KC_CT11, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, XXXXX, KC_LEFT, KC_DOWN,KC_RIGHT, KC_LSFT, KC_ENT, KC_BSAD, KC_UP, KC_TGBR, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |--------+--------+--------| + KC_SF12, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, XXXXX, XXXXX, XXXXX, XXXXX, KC_PGDN, XXXXX, KC_LEFT, KC_DOWN,KC_RIGHT, + //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |--------------------------| + _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____ + //`------------------------------------------------------------------------------------------------------------' + ), + + [_ADJUST] = LAYOUT_with_nafuda( /* Base */ + //,-----------------------------------------------------| |-----------------------------------------------------. |--------------------------| + _____, _____, _____, _____, _____, _____, _____, KC_7, KC_8, KC_9, KC_0, _____, RGB_VAD, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |--------+--------+--------| + _____, _____, _____, _____, _____, _____, RGB_TOG, RGB_MOD, XXXXX,LCA(KC_DEL),LALT(KC_PSCR),KC_PSCR, ADJUST, RGB_SAD, RGB_VAI, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |--------+--------+--------| + _____, _____, _____, _____, _____, _____, RGB_VAD, RGB_VAI, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_MOD, RGB_TOG, RGB_SAI, + //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |--------------------------| + _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____ + //`------------------------------------------------------------------------------------------------------------' + ) +}; + +static inline void update_change_layer(bool pressed, uint8_t layer1, uint8_t layer2, uint8_t layer3) { + + pressed ? layer_on(layer1) : layer_off(layer1); + IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2) ? layer_on(layer3) : layer_off(layer3); +} + +int RGB_current_mode; +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + + bool result = false; + switch (keycode) { + case LOWER: + update_change_layer(record->event.pressed, _LOWER, _RAISE, _ADJUST); + break; + case RAISE: + update_change_layer(record->event.pressed, _RAISE, _LOWER, _ADJUST); + break; + case KANJI: + if (record->event.pressed) { + if (keymap_config.swap_lalt_lgui == false) { + register_code(KC_LANG2); + } else { + SEND_STRING(SS_LALT("`")); + } + } else { + unregister_code(KC_LANG2); + } + break; + #ifdef RGBLIGHT_ENABLE + case RGB_MOD: + if (record->event.pressed) { + rgblight_mode(RGB_current_mode); + rgblight_step(); + RGB_current_mode = rgblight_config.mode; + } + break; + case RGBRST: + if (record->event.pressed) { + eeconfig_update_rgblight_default(); + rgblight_enable(); + RGB_current_mode = rgblight_config.mode; + } + break; + #endif + default: + result = true; + break; + } + + return result; +} + +void matrix_init_user(void) { + #ifdef RGBLIGHT_ENABLE + RGB_current_mode = rgblight_config.mode; + #endif +} diff --git a/keyboards/naked48/keymaps/salicylic_with_nafuda/readme.md b/keyboards/naked48/keymaps/salicylic_with_nafuda/readme.md new file mode 100644 index 0000000000..2f9f3802df --- /dev/null +++ b/keyboards/naked48/keymaps/salicylic_with_nafuda/readme.md @@ -0,0 +1,39 @@ +# The salicylic_with_nafuda keymap for naked48 + +Add Nafuda maps to the salicylic layout. + +Default + //|--------------------| + Mouse, + //|------+------+------| + BS + Ad, UP,Browser, + //|------+------+------| + LEFT, DOWN, RIGHT + //|--------------------| + +Mouse + //|--------------------| + Default, + //|------+------+------| + BTN1, MS_U, BTN2, + //|------+------+------| + MS_L, MS_D, MS_R + //|--------------------| + +Browser + //|--------------------| + CloseTAB, + //|------+------+------| + ReOpenTAB, WH_U,Default, + //|------+------+------| + LTAB, WH_D, RTAB + //|--------------------| + +Adjust + //|------------------------| + LED VAD, + //|------+----------+------| + Default, LED HUD,LED VAI, + //|------+----------+------| + LED MOD,LED ON/Off,LED HUI + //|------------------------| diff --git a/keyboards/naked48/keymaps/salicylic_with_nafuda/rules.mk b/keyboards/naked48/keymaps/salicylic_with_nafuda/rules.mk new file mode 100644 index 0000000000..dd471767a7 --- /dev/null +++ b/keyboards/naked48/keymaps/salicylic_with_nafuda/rules.mk @@ -0,0 +1,29 @@ + +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = no # 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 +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = no # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. +SWAP_HANDS_ENABLE = no # Enable one-hand typing + +# If your custom naked48 pcb, you can rewrite to yes. +LED_ANIMATIONS = yes # LED animations + +ifeq ($(strip $(LED_ANIMATIONS)), yes) + # OPT_DEFS += -DRGBLIGHT_ANIMATIONS + OPT_DEFS += -DLED_ANIMATIONS +endif + +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend -- cgit v1.2.3