summaryrefslogtreecommitdiff
path: root/geeboard_firmware/qmk/keymaps/bone/keymap.c
diff options
context:
space:
mode:
authorOrangerot <purple@orangerot.dev>2025-07-09 17:15:04 +0200
committerOrangerot <purple@orangerot.dev>2025-07-09 17:15:04 +0200
commit247beb5d0597163e4ceda2e93e3c09e14d201e75 (patch)
tree48881ad24cd88b3b3793e2f5a4c1025c7d043189 /geeboard_firmware/qmk/keymaps/bone/keymap.c
parente1f0b5147d6edd626b9e177dd482687331638a6f (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.c108
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: */