109 lines
4.9 KiB
C
109 lines
4.9 KiB
C
|
||
#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: */
|