geeboard/geeboard_firmware/qmk/keymaps/bone/keymap.c

109 lines
4.9 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#include QMK_KEYBOARD_H
#undef UNICODE_SELECTED_MODES
#define UNICODE_SELECTED_MODES UC_MAC, UC_LNX, UC_WIN, UC_WINC
extern keymap_config_t keymap_config;
#define _QWERTY 1
#define _BONE 0
#define _BONE_SHIFT 2
#define _BONE_SYM 3
#define _BONE_NAV 4
#define _BONE_GREEK 5
#define _BONE_MATH 6
#define _ADJUST 7
#define KC_BKSL KC_BSLASH
#define KC_ADEN LT(_ADJUST, KC_END)
#define KC_ADPU LT(_ADJUST, KC_PGUP)
enum my_keycodes {
KC_BNCP = SAFE_RANGE,
KC_BNM4,
KC_EN_UC_WIN
};
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case KC_RSFT:
layer_invert(_BONE_SHIFT);
update_tri_layer(_BONE_SYM, _BONE_SHIFT, _BONE_GREEK);
return true;
case KC_BNCP:
layer_invert(_BONE_SYM);
update_tri_layer(_BONE_SYM, _BONE_SHIFT, _BONE_GREEK);
update_tri_layer(_BONE_NAV, _BONE_SYM, _BONE_MATH);
return false;
case KC_BNM4:
layer_invert(_BONE_NAV);
update_tri_layer(_BONE_NAV, _BONE_SYM, _BONE_MATH);
return false;
case KC_EN_UC_WIN:
if(record->event.pressed)
SEND_STRING("reg add \"HKCU\\Control Panel\\Input Method\" -v EnableHexNumpad -t REG_SZ -d 1");
return false;
default:
return true;
}
}
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_LBRC,
KC_CAPS,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_LSFT,
KC_LCTL,KC_HYPR,KC_LGUI,KC_LALT,KC_ESC/*,XXXXX,XXXXX*/,KC_RALT,KC_LEFT,KC_DOWN,KC_UP ,KC_RGHT
),
[_ADJUST] = LAYOUT(
XXXXXXX,KC_F11 ,KC_F12 ,KC_F13 ,KC_F14 ,KC_F15 ,KC_F16 ,KC_F17 ,KC_F18 ,KC_F19 ,KC_F20 ,XXXXXXX,
XXXXXXX,UC_LINX,UC_MAC ,UC_WIN ,UC_WINC ,XXXXXXX,UC_WIN ,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,
XXXXXXX,UC_NEXT,UC_PREV,XXXXXXX,XXXXXXX ,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,
XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX/*,XXXXX ,XXXXX*/,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX
),
[_BONE] = LAYOUT(
KC_TAB ,KC_J ,KC_D ,KC_U ,KC_A ,KC_X ,KC_P ,KC_H ,KC_L ,KC_M ,KC_W,UC(L'ß'),
KC_BNCP,KC_C ,KC_T ,KC_I ,KC_E ,KC_O ,KC_B ,KC_N ,KC_R ,KC_S ,KC_G,KC_Q ,
KC_RSFT,KC_F ,KC_V ,UC(L'ü'),UC(L'ä'),UC(L'ö'),KC_Y ,KC_Z ,KC_COMM,KC_DOT ,KC_K,KC_RSFT ,
KC_LCTL,KC_HYPR,KC_LGUI,KC_LALT ,KC_ESC /*,XXXXX ,XXXXX*/ ,KC_BNM4 ,KC_LEFT,KC_DOWN,KC_UP ,KC_RGHT
),
[_BONE_SHIFT] = LAYOUT(
_______,_______,_______,_______ ,_______ ,_______ ,_______,_______,_______,_______,_______,UC(L''),
_______,_______,_______,_______ ,_______ ,_______ ,_______,_______,_______,_______,_______,_______ ,
_______,_______,_______,UC(L'Ü'),UC(L'Ä'),UC(L'Ö'),_______,_______,_______,_______,_______,_______ ,
_______,_______,_______,_______ ,_______ /*,XXXXX ,XXXXX*/,_______,_______,_______,_______,_______
),
[_BONE_SYM] = LAYOUT(
_______,XXXXXXX,KC_UNDS,KC_LBRC,KC_RBRC,KC_CIRC,KC_EXLM,KC_LT ,KC_GT ,KC_EQL ,KC_AMPR,XXXXXXX,
_______,KC_BSLS,KC_SLSH,KC_LCBR,KC_RCBR,KC_ASTR,KC_QUES,KC_LPRN,KC_RPRN,KC_MINS,KC_COLN,KC_AT ,
KC_RSFT,KC_HASH,KC_DLR ,KC_PIPE,KC_TILD,KC_GRV ,KC_PLUS,KC_PERC,KC_DQUO,KC_QUOT,KC_SCLN,XXXXXXX,
_______,_______,_______,_______,_______/*,XXXXX,XXXXX*/,_______,_______,_______,_______,_______
),
[_BONE_NAV] = LAYOUT(
_______,KC_PGUP,KC_BSPC,KC_UP ,KC_DEL ,KC_PGDN,XXXXXXX,KC_P7 ,KC_P8 ,KC_P9 ,KC_PPLS,KC_PMNS,
_______,KC_HOME,KC_LEFT,KC_DOWN,KC_RGHT,KC_END ,XXXXXXX,KC_P4 ,KC_P5 ,KC_P6 ,KC_PDOT,KC_COMM,
_______,KC_ESC ,KC_TAB ,KC_INS ,KC_ENT ,KC_UNDO,KC_COLN,KC_P1 ,KC_P2 ,KC_P3 ,KC_SCLN,_______,
_______,_______,_______,_______,_______/*,XXXXX,XXXXX*/,_______,_______,_______,_______,_______
),
[_BONE_GREEK] = LAYOUT(
_______,UC(L'θ'),UC(L'δ'),UC(L'λ'),UC(L'α'),UC(L'ξ'),UC(L'π'),UC(L'ψ'),UC(L'λ'),UC(L'μ'),UC(L'ω'),UC(L'ς'),
_______,UC(L'χ'),UC(L'τ'),UC(L'ι'),UC(L'ε'),UC(L'ο'),UC(L'β'),UC(L'ν'),UC(L'ρ'),UC(L'σ'),UC(L'γ'),UC(L'ϕ'),
_______,UC(L'φ'),UC(L'ϵ'),UC(L'η'),XXXXXXX ,XXXXXXX ,UC(L'υ'),UC(L'ζ'),UC(L'ϱ'),UC(L'ϑ'),UC(L'κ'),_______ ,
_______,_______ ,_______ ,_______ ,_______ /*,XXXXX ,XXXXX*/ ,_______ ,_______ ,_______ ,_______ ,_______
),
[_BONE_MATH] = LAYOUT(
_______,UC(L'Θ'),UC(L'Δ'),UC(L''),UC(L''),UC(L'Ξ'),UC(L'Π'),UC(L'Ψ'),UC(L'Λ'),UC(L''),UC(L'Ω'),UC(L''),
_______,UC(L''),UC(L''),UC(L''),UC(L''),UC(L''),UC(L''),UC(L''),UC(L''),UC(L'Σ'),UC(L'Γ'),UC(L''),
_______,UC(L'Φ'),UC(L''),UC(L''),XXXXXXX ,XXXXXXX ,UC(L''),UC(L''),UC(L''),UC(L''),UC(L'×'),_______ ,
_______,_______ ,_______ ,_______ ,_______ /*,XXXXX ,XXXXX*/ ,_______ ,_______ ,_______ ,_______ ,_______
)
};
/* vim: set et ts=2: */