diff options
author | Orangerot <purple@orangerot.dev> | 2025-07-09 17:15:04 +0200 |
---|---|---|
committer | Orangerot <purple@orangerot.dev> | 2025-07-09 17:15:04 +0200 |
commit | 247beb5d0597163e4ceda2e93e3c09e14d201e75 (patch) | |
tree | 48881ad24cd88b3b3793e2f5a4c1025c7d043189 /geeboard_firmware/qmk/keymaps/bone/keymap.c | |
parent | e1f0b5147d6edd626b9e177dd482687331638a6f (diff) |
feat: working firmware (split to multiple commits later)firmware-working-dump
Diffstat (limited to 'geeboard_firmware/qmk/keymaps/bone/keymap.c')
-rw-r--r-- | geeboard_firmware/qmk/keymaps/bone/keymap.c | 108 |
1 files changed, 108 insertions, 0 deletions
diff --git a/geeboard_firmware/qmk/keymaps/bone/keymap.c b/geeboard_firmware/qmk/keymaps/bone/keymap.c new file mode 100644 index 0000000..3268b59 --- /dev/null +++ b/geeboard_firmware/qmk/keymaps/bone/keymap.c @@ -0,0 +1,108 @@ + +#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: */ |