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 | |
parent | e1f0b5147d6edd626b9e177dd482687331638a6f (diff) |
feat: working firmware (split to multiple commits later)firmware-working-dump
Diffstat (limited to 'geeboard_firmware/qmk/keymaps/bone')
-rw-r--r-- | geeboard_firmware/qmk/keymaps/bone/keymap.c | 108 | ||||
-rw-r--r-- | geeboard_firmware/qmk/keymaps/bone/keymap.json | 50 |
2 files changed, 158 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: */ diff --git a/geeboard_firmware/qmk/keymaps/bone/keymap.json b/geeboard_firmware/qmk/keymaps/bone/keymap.json new file mode 100644 index 0000000..50d77b2 --- /dev/null +++ b/geeboard_firmware/qmk/keymaps/bone/keymap.json @@ -0,0 +1,50 @@ +{ + "keyboard": "geeboard", + "keymap": "bone", + "layout": "LAYOUT", + "layers": [ + [ + "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", "KC_RALT", "KC_LEFT", "KC_DOWN", "KC_UP", "KC_RGHT" + ], + [ + "KC_NO", "KC_F11", "KC_F12", "KC_F13", "KC_F14", "KC_F15", "KC_F16", "KC_F17", "KC_F18", "KC_F19", "KC_F20", "KC_NO", + "KC_NO", "UC_LINX", "UC_MAC", "UC_WIN", "UC_WINC", "KC_NO", "UC_WIN", "KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_NO", + "KC_NO", "UC_NEXT", "UC_PREV", "KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_NO", + "KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_NO", "KC_NO" + ], [ + "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", "KC_BNM4", "KC_LEFT", "KC_DOWN", "KC_UP", "KC_RGHT" + ], [ + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "UC(L'ẞ')", + "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_TRNS", "KC_TRNS", "UC(L'Ü')", "UC(L'Ä')", "UC(L'Ö')", "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_TRNS", "KC_TRNS", "KC_TRNS" + ], [ + "KC_TRNS", "KC_NO", "KC_UNDS", "KC_LBRC", "KC_RBRC", "KC_CIRC", "KC_EXLM", "KC_LT", "KC_GT", "KC_EQL", "KC_AMPR", "KC_NO", + "KC_TRNS", "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", "KC_NO", + "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_BSPC", "KC_UP", "KC_DEL", "KC_PGDN", "KC_NO", "KC_P7", "KC_P8", "KC_P9", "KC_PPLS", "KC_PMNS", + "KC_TRNS", "KC_HOME", "KC_LEFT", "KC_DOWN", "KC_RGHT", "KC_END", "KC_NO", "KC_P4", "KC_P5", "KC_P6", "KC_PDOT", "KC_COMM", + "KC_TRNS", "KC_ESC", "KC_TAB", "KC_INS", "KC_ENT", "KC_UNDO", "KC_COLN", "KC_P1", "KC_P2", "KC_P3", "KC_SCLN", "KC_TRNS", + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS" + ], [ + "KC_TRNS", "UC(L'θ')", "UC(L'δ')", "UC(L'λ')", "UC(L'α')", "UC(L'ξ')", "UC(L'π')", "UC(L'ψ')", "UC(L'λ')", "UC(L'μ')", "UC(L'ω')", "UC(L'ς')", + "KC_TRNS", "UC(L'χ')", "UC(L'τ')", "UC(L'ι')", "UC(L'ε')", "UC(L'ο')", "UC(L'β')", "UC(L'ν')", "UC(L'ρ')", "UC(L'σ')", "UC(L'γ')", "UC(L'ϕ')", + "KC_TRNS", "UC(L'φ')", "UC(L'ϵ')", "UC(L'η')", "KC_NO", "KC_NO", "UC(L'υ')", "UC(L'ζ')", "UC(L'ϱ')", "UC(L'ϑ')", "UC(L'κ')", "KC_TRNS", + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS" + ], [ + "KC_TRNS", "UC(L'Θ')", "UC(L'Δ')", "UC(L'⊂')", "UC(L'∀')", "UC(L'Ξ')", "UC(L'Π')", "UC(L'Ψ')", "UC(L'Λ')", "UC(L'⇔')", "UC(L'Ω')", "UC(L'∘')", + "KC_TRNS", "UC(L'ℂ')", "UC(L'∂')", "UC(L'∫')", "UC(L'∃')", "UC(L'∈')", "UC(L'⇐')", "UC(L'ℕ')", "UC(L'ℝ')", "UC(L'Σ')", "UC(L'Γ')", "UC(L'ℚ')", + "KC_TRNS", "UC(L'Φ')", "UC(L'√')", "UC(L'∪')", "KC_NO", "KC_NO", "UC(L'∇')", "UC(L'ℤ')", "UC(L'⇒')", "UC(L'↦')", "UC(L'×')", "KC_TRNS", + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS" + ] + ] +} + |