Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

adding my keymap "vayashiko" #13049

Merged
merged 3 commits into from
Aug 10, 2021
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 44 additions & 0 deletions keyboards/crkbd/keymaps/vayashiko/config.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
/*
This is the c configuration file for the keymap

Copyright 2012 Jun Wako <wakojun@gmail.com>
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 <http://www.gnu.org/licenses/>.
*/

#pragma once

//#define USE_MATRIX_I2C

/* Select hand configuration */

#define MASTER_LEFT
// #define MASTER_RIGHT
// #define EE_HANDS

#define SSD1306OLED
kryuki marked this conversation as resolved.
Show resolved Hide resolved

#define USE_SERIAL_PD2
kryuki marked this conversation as resolved.
Show resolved Hide resolved

#define TAPPING_FORCE_HOLD
#define TAPPING_TERM 100

#undef RGBLED_NUM
#define RGBLIGHT_ANIMATIONS
#define RGBLED_NUM 27
kryuki marked this conversation as resolved.
Show resolved Hide resolved
#define RGBLIGHT_LIMIT_VAL 120
#define RGBLIGHT_HUE_STEP 10
#define RGBLIGHT_SAT_STEP 17
#define RGBLIGHT_VAL_STEP 17
249 changes: 249 additions & 0 deletions keyboards/crkbd/keymaps/vayashiko/keymap.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,249 @@
#include QMK_KEYBOARD_H
#include "bootloader.h"
#include "keymap_jp.h"
#ifdef PROTOCOL_LUFA
#include "lufa.h"
#include "split_util.h"
#endif
#ifdef SSD1306OLED
#include "ssd1306.h"
#endif

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;
kryuki marked this conversation as resolved.
Show resolved Hide resolved

// 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.
#define _QWERTY 0
#define _LOWER 1
#define _RAISE 2
#define _ADJUST 3
kryuki marked this conversation as resolved.
Show resolved Hide resolved

enum custom_keycodes {
QWERTY = SAFE_RANGE,
LOWER,
RAISE,
ADJUST,
BACKLIT,
RGBRST
};

enum macro_keycodes {
drashna marked this conversation as resolved.
Show resolved Hide resolved
KC_SAMPLEMACRO,
};

#define KC______ KC_TRNS
#define KC_XXXXX KC_NO
#define KC_LOWER LOWER
#define KC_RAISE RAISE
#define KC_RST RESET
#define KC_LRST RGBRST
#define KC_LTOG RGB_TOG
#define KC_LHUI RGB_HUI
#define KC_LHUD RGB_HUD
#define KC_LSAI RGB_SAI
#define KC_LSAD RGB_SAD
#define KC_LVAI RGB_VAI
#define KC_LVAD RGB_VAD
#define KC_LMOD RGB_MOD
#define KC_CTLTB CTL_T(KC_TAB)
#define KC_GUIEI GUI_T(KC_LANG2)
#define KC_ALTKN ALT_T(KC_LANG1)
drashna marked this conversation as resolved.
Show resolved Hide resolved

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_QWERTY] = LAYOUT( \
//,-----------------------------------------------------------. ,-----------------------------------------------------------.
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,\
//|---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------|
KC_ALTKN, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,\
//|---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------|
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,\
//|---------+---------+---------+---------+---------+---------+------| |------+---------+---------+---------+---------+---------+---------|
KC_CTLTB, KC_LOWER,KC_SPC, KC_ENT, KC_RAISE, KC_ALTKN \
//`--------------------------' `--------------------------'
),

[_LOWER] = LAYOUT( \
//,-----------------------------------------------------------. ,-----------------------------------------------------------.
KC_DELETE, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_XXXXX, KC_7, KC_8, KC_9, JP_MINS, KC_DELETE,\
//|---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------|
KC_ALTKN, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_XXXXX, KC_4, KC_5, KC_6, JP_PLUS, LSFT(KC_CAPS),\
//|---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------|
KC_LSFT, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_0, KC_1, KC_2, KC_3, KC_DOT, KC_RSFT,\
//|---------+---------+---------+---------+---------+---------+------| |------+---------+---------+---------+---------+---------+---------|
KC_CTLTB, KC_LOWER,KC_SPC, KC_ENT, KC_RAISE, KC_ALTKN \
//`--------------------------' `--------------------------'
),

[_RAISE] = LAYOUT( \
//,-----------------------------------------------------------. ,-----------------------------------------------------------.
KC_ESC, JP_EXLM, JP_DQT, JP_HASH, JP_DLR, JP_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_MINS, JP_CIRC,\
//|---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------|
KC_ALTKN, KC_GRV, KC_XXXXX, KC_XXXXX, KC_MHEN, KC_G, KC_XXXXX, KC_HENK, JP_LBRC, JP_RBRC, KC_XXXXX, KC_JYEN,\
//|---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------|
KC_LSFT, KC_XXXXX, KC_XXXXX, KC_XXXXX, KC_XXXXX, KC_XXXXX, JP_EQL,JP_AT,LSFT(JP_LBRC),LSFT(JP_RBRC), KC_XXXXX, JP_UNDS,\
//|---------+---------+---------+---------+---------+---------+------| |------+---------+---------+---------+---------+---------+---------|
KC_CTLTB, KC_LOWER,KC_SPC, KC_ENT, KC_RAISE, KC_ALTKN \
//`--------------------------' `--------------------------'
),

[_ADJUST] = LAYOUT( \
//,-----------------------------------------------------------. ,-----------------------------------------------------------.
KC_ESC, KC_LRST, KC_XXXXX, KC_XXXXX, KC_R, KC_XXXXX, KC_XXXXX, KC_XXXXX, KC_UP, KC_XXXXX, KC_XXXXX, KC_XXXXX,\
//|---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------|
KC_ALTKN, KC_HOME, KC_S, KC_XXXXX, KC_END, KC_G, KC_XXXXX, KC_LEFT, KC_DOWN, KC_RIGHT, KC_XXXXX, KC_XXXXX,\
//|---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------|
KC_LSFT, KC_LHUD, KC_LSAD, KC_LVAD, KC_XXXXX, KC_XXXXX, KC_XXXXX, KC_XXXXX, KC_DOWN, KC_XXXXX, KC_XXXXX, KC_RSFT,\
//|---------+---------+---------+---------+---------+---------+------| |------+---------+---------+---------+---------+---------+---------|
KC_GUIEI, KC_LOWER,KC_SPC, KC_ENT, KC_RAISE, KC_ALTKN \
//`--------------------------' `--------------------------'
)
};

int RGB_current_mode;

void persistent_default_layer_set(uint16_t default_layer) {
eeconfig_update_default_layer(default_layer);
default_layer_set(default_layer);
}

// Setting ADJUST layer RGB back to default
void update_tri_layer_RGB(uint8_t layer1, uint8_t layer2, uint8_t layer3) {
if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) {
layer_on(layer3);
} else {
layer_off(layer3);
}
}
drashna marked this conversation as resolved.
Show resolved Hide resolved

void matrix_init_user(void) {
#ifdef RGBLIGHT_ENABLE
RGB_current_mode = rgblight_config.mode;
#endif
//SSD1306 OLED init, make sure to add #define SSD1306OLED in config.h
#ifdef SSD1306OLED
iota_gfx_init(!has_usb()); // turns on the display
#endif
}
kryuki marked this conversation as resolved.
Show resolved Hide resolved

//SSD1306 OLED update loop, make sure to add #define SSD1306OLED in config.h
#ifdef SSD1306OLED
kryuki marked this conversation as resolved.
Show resolved Hide resolved

// When add source files to SRC in rules.mk, you can use functions.
const char *read_layer_state(void);
const char *read_logo(void);
void set_keylog(uint16_t keycode, keyrecord_t *record);
const char *read_keylog(void);
const char *read_keylogs(void);

// const char *read_mode_icon(bool swap);
// const char *read_host_led_state(void);
// void set_timelog(void);
// const char *read_timelog(void);

void matrix_scan_user(void) {
iota_gfx_task();
}

void matrix_render_user(struct CharacterMatrix *matrix) {
if (is_master) {
// If you want to change the display of OLED, you need to change here
matrix_write_ln(matrix, read_layer_state());
matrix_write_ln(matrix, read_keylog());
matrix_write_ln(matrix, read_keylogs());
//matrix_write_ln(matrix, read_mode_icon(keymap_config.swap_lalt_lgui));
//matrix_write_ln(matrix, read_host_led_state());
//matrix_write_ln(matrix, read_timelog());
} else {
matrix_write(matrix, read_logo());
}
}

void matrix_update(struct CharacterMatrix *dest, const struct CharacterMatrix *source) {
if (memcmp(dest->display, source->display, sizeof(dest->display))) {
memcpy(dest->display, source->display, sizeof(dest->display));
dest->dirty = true;
}
}

void iota_gfx_task_user(void) {
struct CharacterMatrix matrix;
matrix_clear(&matrix);
matrix_render_user(&matrix);
matrix_update(&display, &matrix);
}
#endif//SSD1306OLED

bool process_record_user(uint16_t keycode, keyrecord_t *record) {
if (record->event.pressed) {
#ifdef SSD1306OLED
set_keylog(keycode, record);
#endif
// set_timelog();
}

switch (keycode) {
case QWERTY:
if (record->event.pressed) {
persistent_default_layer_set(1UL<<_QWERTY);
kryuki marked this conversation as resolved.
Show resolved Hide resolved
}
return false;
break;
case LOWER:
if (record->event.pressed) {
layer_on(_LOWER);
update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST);
} else {
layer_off(_LOWER);
update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST);
}
return false;
break;
case RAISE:
if (record->event.pressed) {
layer_on(_RAISE);
update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST);
} else {
layer_off(_RAISE);
update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST);
}
return false;
break;
case ADJUST:
if (record->event.pressed) {
layer_on(_ADJUST);
} else {
layer_off(_ADJUST);
}
return false;
break;
case RGB_MOD:
#ifdef RGBLIGHT_ENABLE
if (record->event.pressed) {
rgblight_mode(RGB_current_mode);
rgblight_step();
RGB_current_mode = rgblight_config.mode;
}
#endif
return false;
break;
kryuki marked this conversation as resolved.
Show resolved Hide resolved
case RGBRST:
#ifdef RGBLIGHT_ENABLE
if (record->event.pressed) {
eeconfig_update_rgblight_default();
rgblight_enable();
RGB_current_mode = rgblight_config.mode;
kryuki marked this conversation as resolved.
Show resolved Hide resolved
}
#endif
break;
}
return true;
}
31 changes: 31 additions & 0 deletions keyboards/crkbd/keymaps/vayashiko/rules.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@

# 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 = no # 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

# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend

# If you want to change the display of OLED, you need to change here
SRC += ./lib/glcdfont.c \
./lib/rgb_state_reader.c \
./lib/layer_state_reader.c \
./lib/logo_reader.c \
./lib/keylogger.c \
# ./lib/mode_icon_reader.c \
# ./lib/host_led_state_reader.c \
# ./lib/timelogger.c \