keymap.c (2375B)
1 /* Copyright 2018 takashiski 2 * 3 * This program is free software: you can redistribute it and/or modify 4 * it under the terms of the GNU General Public License as published by 5 * the Free Software Foundation, either version 2 of the License, or 6 * (at your option) any later version. 7 * 8 * This program is distributed in the hope that it will be useful, 9 * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 * GNU General Public License for more details. 12 * 13 * You should have received a copy of the GNU General Public License 14 * along with this program. If not, see <http://www.gnu.org/licenses/>. 15 */ 16 #include QMK_KEYBOARD_H 17 18 //R1:7 + 8 = 15 19 //R2:7 + 8 = 15 20 //R3:6 + 7 = 13 21 //R4:6 + 8 = 14 22 //R5:6 + 6 = 12 23 //total : 69 keys 24 // 25 enum layers{ 26 DF, 27 FN 28 }; 29 30 #define KC_FN MO(FN) 31 #define KC_SFT(XXX) LSFT(XXX) 32 33 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 34 [DF]=LAYOUT( 35 KC_ESC,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_NUHS,KC_GRV, 36 KC_TAB ,KC_Q,KC_W,KC_E,KC_R,KC_T,KC_Y, KC_Y,KC_U,KC_I,KC_O,KC_P,KC_LBRC,KC_RBRC,KC_BSPC, 37 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, 38 KC_LSFT ,KC_Z,KC_X,KC_C,KC_V,KC_B, KC_B,KC_N,KC_M,KC_COMM,KC_DOT,KC_SLSH,KC_RSFT,KC_FN, 39 KC_LCTL,KC_LGUI,KC_LALT,KC_INT5,KC_BSPC,KC_SPC, KC_ENT,KC_ESC,KC_INT4,KC_RALT,KC_RGUI,KC_RCTL 40 ), 41 [FN]=LAYOUT( 42 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_INS,KC_DEL, 43 KC_TAB ,KC_9,KC_7,KC_5,KC_3,KC_1,KC_Y, KC_Y,KC_U,KC_PSCR,KC_SCRL,KC_PAUSE,KC_UP,KC_RBRC,KC_BSPC, 44 KC_CAPS ,KC_8,KC_6,KC_4,KC_2,KC_0, KC_SFT(KC_8),KC_SLSH,KC_HOME,KC_PGUP,KC_LEFT,KC_RIGHT,KC_ENT, 45 KC_LSFT ,KC_Z,KC_X,KC_C,KC_V,KC_B, KC_B,KC_SFT(KC_EQL),KC_MINS,KC_END,KC_PGDN,KC_DOWN,KC_RSFT,KC_TRNS, 46 KC_LCTL,KC_LGUI,KC_LALT,KC_INT5,KC_BSPC,KC_SPC, KC_ENT,KC_ESC,KC_INT4,KC_RALT,KC_RGUI,KC_RCTL 47 ), 48 }; 49 50 layer_state_t layer_state_set_user(layer_state_t state) 51 { 52 uint8_t layer=get_highest_layer(state); 53 switch(layer) 54 { 55 case DF: 56 rgblight_sethsv_noeeprom(180,255,255); 57 break; 58 case FN: 59 rgblight_sethsv_noeeprom(0,255,255); 60 break; 61 default: 62 break; 63 } 64 return state; 65 }