protoEepyBoard/qmk_keyboards/binarydiv/protoeepyboard/v1/keymaps/default/keymap.c

63 lines
3.9 KiB
C

// Copyright 2024 binaryDiv (@binaryDiv)
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
// Define layer names for better readability
enum layer_names {
// Base layer
L_BASE,
// Layer for keys that should be on the base layer but don't fit on the prototype boards
L_MORE,
// "Hyper" key layer
L_HYPER,
// Fn / keyboard control layer: Used for keyboard configuration
L_FN,
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// Base layer
[L_BASE] = LAYOUT_ortho_5x12(
KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_EQUAL,
KC_ESCAPE, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SEMICOLON, KC_QUOTE,
KC_LEFT_SHIFT, KC_LEFT_SHIFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLASH,
KC_LEFT_CTRL, KC_LEFT_CTRL, KC_LEFT_GUI, OSL(L_HYPER), KC_ENTER, KC_SPACE, KC_BACKSPACE, KC_RIGHT_ALT, MO(L_HYPER), MO(L_MORE), MO(L_FN), KC_RIGHT_SHIFT
),
// Layer for keys that should be on the base layer but don't fit on the prototype boards
[L_MORE] = LAYOUT_ortho_5x12(
_______, KC_GRAVE, KC_2, KC_3, KC_5, _______, KC_6, KC_7, KC_8, KC_0, _______, _______,
_______, KC_TAB, _______, _______, KC_F5, _______, _______, KC_F11, KC_F12, KC_MINUS, KC_EQUAL, _______,
_______, KC_ESCAPE, _______, _______, _______, _______, _______, _______, _______, KC_PIPE, KC_QUOTE, _______,
_______, KC_LEFT_SHIFT, _______, _______, _______, _______, _______, _______, _______, KC_BACKSLASH, KC_SLASH, _______,
_______, KC_LEFT_CTRL, KC_LEFT_GUI, OSL(L_HYPER), KC_ENTER, KC_SPACE, KC_BACKSPACE, KC_RIGHT_ALT, MO(L_HYPER), MO(L_HYPER), MO(L_FN), _______
),
// "Hyper" key layer
[L_HYPER] = LAYOUT_ortho_5x12(
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_HOME, KC_UP, KC_END, _______, _______, _______, _______, _______, KC_LEFT_BRACKET, KC_RIGHT_BRACKET, KC_F12,
_______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, _______, _______, _______, KC_LEFT_CURLY_BRACE, KC_RIGHT_CURLY_BRACE, KC_PIPE,
_______, KC_DELETE, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_BACKSLASH,
_______, _______, QK_BOOTLOADER, _______, _______, KC_SPACE, KC_ENTER, _______, _______, _______, _______, _______
),
// "Fn" key layer
[L_FN] = LAYOUT_ortho_5x12(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOTLOADER, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_REBOOT, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
)
};
// TODO: Idea for leader keys: vim keybindings everywhere :D
// Examples:
// - leader dd -> Home, Shift+Down, Ctrl+X
// - leader D -> Shift+End, Ctrl+X
// - same for yy/Y, etc.