|
/* Copyright 2021 @ Keychron (https://www.keychron.com) |
|
* |
|
* 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 "keymap_japanese.h" |
|
|
|
// clang-format off |
|
|
|
enum layers{ |
|
MAC_BASE, |
|
WIN_BASE, |
|
_FN1, |
|
_FN2, |
|
_FN3 |
|
}; |
|
|
|
#if defined(KEY_OVERRIDE_ENABLE) |
|
// winモードで us to jis |
|
const key_override_t sft_kc_2_to_jp_at = ko_make_with_layers(MOD_MASK_SHIFT, KC_2, JP_AT, (1<<WIN_BASE | 1<<_FN2)); |
|
const key_override_t sft_kc_6_to_jp_circ = ko_make_with_layers(MOD_MASK_SHIFT, KC_6, JP_CIRC, (1<<WIN_BASE | 1<<_FN2)); |
|
const key_override_t sft_kc_7_to_jp_ampr = ko_make_with_layers(MOD_MASK_SHIFT, KC_7, JP_AMPR, (1<<WIN_BASE | 1<<_FN2)); |
|
const key_override_t sft_kc_8_to_jp_astr = ko_make_with_layers(MOD_MASK_SHIFT, KC_8, JP_ASTR, (1<<WIN_BASE | 1<<_FN2)); |
|
const key_override_t sft_kc_9_to_jp_lprn = ko_make_with_layers(MOD_MASK_SHIFT, KC_9, JP_LPRN, (1<<WIN_BASE | 1<<_FN2)); |
|
const key_override_t sft_kc_0_to_jp_rprn = ko_make_with_layers(MOD_MASK_SHIFT, KC_0, JP_RPRN, (1<<WIN_BASE | 1<<_FN2)); |
|
const key_override_t sft_kc_mins_to_jp_unds = ko_make_with_layers(MOD_MASK_SHIFT, KC_MINS, JP_UNDS, (1<<WIN_BASE | 1<<_FN2)); |
|
const key_override_t kc_eql_to_jp_eql = ko_make_with_layers_and_negmods(0, KC_EQL, JP_EQL, (1<<WIN_BASE | 1<<_FN2), (uint8_t) MOD_MASK_SHIFT); |
|
const key_override_t sft_kc_eql_to_jp_plus = ko_make_with_layers(MOD_MASK_SHIFT, KC_EQL, JP_PLUS, (1<<WIN_BASE | 1<<_FN2)); |
|
const key_override_t kc_lbrc_to_jp_lbrc = ko_make_with_layers_and_negmods(0, KC_LBRC, JP_LBRC, (1<<WIN_BASE | 1<<_FN2), (uint8_t) MOD_MASK_SHIFT); |
|
const key_override_t sft_kc_lbrc_to_jp_lcbr = ko_make_with_layers(MOD_MASK_SHIFT, KC_LBRC, JP_LCBR, (1<<WIN_BASE | 1<<_FN2)); |
|
const key_override_t kc_rbrc_to_jp_rbrc = ko_make_with_layers_and_negmods(0, KC_RBRC, JP_RBRC, (1<<WIN_BASE | 1<<_FN2), (uint8_t) MOD_MASK_SHIFT); |
|
const key_override_t sft_kc_rbrc_to_jp_rcbr = ko_make_with_layers(MOD_MASK_SHIFT, KC_RBRC, JP_RCBR, (1<<WIN_BASE | 1<<_FN2)); |
|
const key_override_t kc_bsls_to_jp_bsls = ko_make_with_layers_and_negmods(0, KC_BSLS, JP_BSLS, (1<<WIN_BASE | 1<<_FN2), (uint8_t) MOD_MASK_SHIFT); |
|
const key_override_t sft_kc_bsls_to_jp_pipe = ko_make_with_layers(MOD_MASK_SHIFT, KC_BSLS, JP_PIPE, (1<<WIN_BASE | 1<<_FN2)); |
|
const key_override_t sft_kc_scln_to_jp_coln = ko_make_with_layers(MOD_MASK_SHIFT, KC_SCLN, JP_COLN, (1<<WIN_BASE | 1<<_FN2)); |
|
const key_override_t kc_quot_to_jp_quot = ko_make_with_layers_and_negmods(0, KC_QUOT, JP_QUOT, (1<<WIN_BASE | 1<<_FN2), (uint8_t) MOD_MASK_SHIFT); |
|
const key_override_t sft_kc_quot_to_jp_dquo = ko_make_with_layers(MOD_MASK_SHIFT, KC_QUOT, JP_DQUO, (1<<WIN_BASE | 1<<_FN2)); |
|
const key_override_t kc_grv_to_jp_grv = ko_make_with_layers_and_negmods(0, KC_GRV, JP_GRV, (1<<WIN_BASE | 1<<_FN2), (uint8_t) MOD_MASK_SHIFT); |
|
const key_override_t sft_kc_grv_to_jp_tild = ko_make_with_layers(MOD_MASK_SHIFT, KC_GRV, JP_TILD, (1<<WIN_BASE | 1<<_FN2)); |
|
|
|
const key_override_t **key_overrides = (const key_override_t *[]){ |
|
&sft_kc_2_to_jp_at |
|
, &sft_kc_6_to_jp_circ |
|
, &sft_kc_7_to_jp_ampr |
|
, &sft_kc_8_to_jp_astr |
|
, &sft_kc_9_to_jp_lprn |
|
, &sft_kc_0_to_jp_rprn |
|
, &sft_kc_mins_to_jp_unds |
|
, &kc_eql_to_jp_eql |
|
, &sft_kc_eql_to_jp_plus |
|
, &kc_lbrc_to_jp_lbrc |
|
, &sft_kc_lbrc_to_jp_lcbr |
|
, &kc_rbrc_to_jp_rbrc |
|
, &sft_kc_rbrc_to_jp_rcbr |
|
, &kc_bsls_to_jp_bsls |
|
, &sft_kc_bsls_to_jp_pipe |
|
, &sft_kc_scln_to_jp_coln |
|
, &kc_quot_to_jp_quot |
|
, &sft_kc_quot_to_jp_dquo |
|
, &kc_grv_to_jp_grv |
|
, &sft_kc_grv_to_jp_tild |
|
, NULL |
|
}; |
|
#endif // KEY_OVERRIDE_ENABLE |
|
|
|
#define KC_TASK LGUI(KC_TAB) |
|
#define KC_FLXP LGUI(KC_E) |
|
|
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |
|
[MAC_BASE] = LAYOUT_ansi_67( |
|
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, RGB_MOD, |
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, SCMD(KC_3), |
|
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_DEL, |
|
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_UP, |
|
KC_LCTL, KC_LOPT, LCMD_T(KC_LNG2), KC_SPC, RCMD_T(KC_LNG1), MO(_FN1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), |
|
|
|
[WIN_BASE] = LAYOUT_ansi_67( |
|
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, RGB_MOD, |
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PSCR, |
|
MO(_FN2),KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_DEL, |
|
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_UP, |
|
KC_LCTL, KC_LWIN, LALT_T(KC_LNG2), KC_SPC, RALT_T(KC_LNG1), MO(_FN2), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), |
|
|
|
[_FN1] = LAYOUT_ansi_67( |
|
KC_ESC, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, _______, _______, |
|
_______, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, _______, |
|
_______, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, _______, _______, |
|
_______, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, _______, _______, |
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______), |
|
|
|
[_FN2] = LAYOUT_ansi_67( |
|
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, |
|
_______, KC_NO, KC_NO, KC_END, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_UP, KC_NO, KC_NO, KC_NO, _______, |
|
_______, KC_HOME, KC_NO, KC_DEL, KC_RGHT, KC_NO, KC_BSPC, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, _______, _______, |
|
_______, KC_NO, C(KC_X), C(KC_C), C(KC_V), KC_LEFT, KC_DOWN, KC_NO, KC_NO, KC_NO, KC_NO, _______, _______, |
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______), |
|
|
|
[_FN3] = LAYOUT_ansi_67( |
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, |
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, |
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, |
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, |
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______) |
|
}; |
|
|
|
#if defined(ENCODER_MAP_ENABLE) |
|
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { |
|
[MAC_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, |
|
[WIN_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, |
|
[_FN1] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI)}, |
|
[_FN2] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI)}, |
|
[_FN3] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI)} |
|
}; |
|
#endif // ENCODER_MAP_ENABLE |