/* Copyright 2019 MechMerlin * * 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 "drashna.h" // clang-format off #define LAYOUT_space65_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( \ 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_BSLS, KC_DEL, KC_HOME, \ KC_TAB, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, KC_LBRC, KC_RBRC, KC_BSPC, KC_PGUP, \ KC_ESC, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, KC_QUOT, KC_ENT, KC_PGDN, \ KC_LSFT, KC_LSFT, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, KC_RSFT, KC_UP, KC_END, \ KC_LCTL, MO(_LOWER), KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_LGUI, MO(_LOWER), KC_LEFT, KC_DOWN, KC_RGHT \ ) enum unicode_names { BANG, IRONY, SNEK, uaa, uae, uoe, uAA, uAE, uOE }; const uint32_t PROGMEM unicode_map[] = { [BANG] = 0x203D, // ‽ [IRONY] = 0x2E2E, // ⸮ [SNEK] = 0x1F40D, // 🐍 [uaa] = 0xE5, [uae] = 0xE6, [uoe] = 0xF8, [uAA] = 0xC5, [uAE] = 0xC6, [uOE] = 0xD8, }; /* Re-pass though to allow templates to be used */ #define LAYOUT_space65_base_wrapper(...) LAYOUT_space65_base(__VA_ARGS__) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_QWERTY] = LAYOUT_space65_base_wrapper( _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, _________________QWERTY_L3_________________, _________________QWERTY_R3_________________ ), [_LOWER] = LAYOUT( RESET, 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_TRNS, KC_TRNS, KC_MUTE, \ KC_TRNS, X(BANG), X(IRONY), X(SNEK),KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, XP(uaa,uAA), KC_TRNS, KC_TRNS, KC_TRNS, \ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, XP(uae,uAE), XP(uoe,uOE), KC_TRNS, KC_VOLU, \ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_VOLD, \ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END \ ), }; // bool process_record_user(uint16_t keycode, keyrecord_t *record) { // switch (keycode) { // case QMKBEST: // if (record->event.pressed) { // // when keycode QMKBEST is pressed // SEND_STRING("QMK is the best thing ever!"); // } else { // // when keycode QMKBEST is released // } // break; // case QMKURL: // if (record->event.pressed) { // // when keycode QMKURL is pressed // SEND_STRING("https://qmk.fm/" SS_TAP(X_ENTER)); // } else { // // when keycode QMKURL is released // } // break; // } // return true; // } // void matrix_init_user(void) { // } // void matrix_scan_user(void) { // } // void led_set_user(uint8_t usb_led) { // }