From a9c6adb083556ae485dbf1e9f86ad615e32a8b7a Mon Sep 17 00:00:00 2001 From: talsu Date: Thu, 17 Jun 2021 14:45:27 +0900 Subject: [Keyboard] Add KMAC PAD (#13104) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan --- keyboards/kmac_pad/keymaps/default/keymap.c | 143 +++++++++++++++++++++++++++ keyboards/kmac_pad/keymaps/default/readme.md | 61 ++++++++++++ 2 files changed, 204 insertions(+) create mode 100644 keyboards/kmac_pad/keymaps/default/keymap.c create mode 100644 keyboards/kmac_pad/keymaps/default/readme.md (limited to 'keyboards/kmac_pad/keymaps/default') diff --git a/keyboards/kmac_pad/keymaps/default/keymap.c b/keyboards/kmac_pad/keymaps/default/keymap.c new file mode 100644 index 0000000000..b9b9f823fb --- /dev/null +++ b/keyboards/kmac_pad/keymaps/default/keymap.c @@ -0,0 +1,143 @@ +/* +Copyright 2021 talsu + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include QMK_KEYBOARD_H + +enum kmac_pad_keycodes { + MD_BOOT = SAFE_RANGE, + MCR1, + MCR2, + MCR3, + MCR4, + MCR5, + MCR6, + MCR7, + MCR8, + MCR9, + MCR10, + MCR11, + MCR12 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( /* Base */ + TG(1), + KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, + KC_P7, KC_P8, KC_P9, KC_PPLS, + KC_P4, KC_P5, KC_P6, + KC_P1, KC_P2, KC_P3, KC_PENT, + KC_P0, KC_PDOT ), + [1] = LAYOUT( /* FN */ + KC_TRNS, + MCR1, MCR2, MCR3, KC_TRNS, + MCR4, MCR5, MCR6, KC_TRNS, + MCR7, MCR8, MCR9, + MCR10, MCR11, MCR12, KC_TRNS, + KC_TRNS, MD_BOOT ) +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + + switch (keycode) { + case MD_BOOT: + { + static uint32_t key_timer; + if (record->event.pressed) { + key_timer = timer_read32(); + } else { + if (timer_elapsed32(key_timer) >= 2000) { + reset_keyboard(); + } + } + return false; + } + case MCR1: + if (record->event.pressed) { + SEND_STRING("Macro 1"); + } + return false; + case MCR2: + if (record->event.pressed) { + SEND_STRING("Macro 2"); + } + return false; + case MCR3: + if (record->event.pressed) { + SEND_STRING("Macro 3"); + } + return false; + case MCR4: + if (record->event.pressed) { + SEND_STRING("Macro 4"); + } + return false; + case MCR5: + if (record->event.pressed) { + SEND_STRING("Macro 5"); + } + return false; + case MCR6: + if (record->event.pressed) { + SEND_STRING("Macro 6"); + } + return false; + case MCR7: + if (record->event.pressed) { + SEND_STRING("Macro 7"); + } + return false; + case MCR8: + if (record->event.pressed) { + SEND_STRING("Macro 8"); + } + return false; + case MCR9: + if (record->event.pressed) { + SEND_STRING("Macro 9"); + } + return false; + case MCR10: + if (record->event.pressed) { + SEND_STRING("Macro 10"); + } + return false; + case MCR11: + if (record->event.pressed) { + SEND_STRING("Macro 12"); + } + return false; + case MCR12: + if (record->event.pressed) { + SEND_STRING("Macro 12"); + } + return false; + default: + return true; + } + +} + +bool led_update_user(led_t led_state) { + writePin(B1, led_state.num_lock); + return false; +} + + +layer_state_t layer_state_set_user(layer_state_t state) { + writePin(B3, !IS_LAYER_ON_STATE(state, 0)); + return state; +} diff --git a/keyboards/kmac_pad/keymaps/default/readme.md b/keyboards/kmac_pad/keymaps/default/readme.md new file mode 100644 index 0000000000..3b9b739a2a --- /dev/null +++ b/keyboards/kmac_pad/keymaps/default/readme.md @@ -0,0 +1,61 @@ +# The default keymap for KMAC PAD + +This is the default keymap. It implements the same features as the official default KMAC PAD firmware. + +## Layers + +The keymap has two layers. Press the 'FN' key to toggle the Default layer and Function layer. + +### Layer 1: Default Layer + + ,---. + |TG1| + `---' + ,---------------. + |NUM| / | * | - | + |---------------| + | 7 | 8 | 9 | | + |-----------| + | + | 4 | 5 | 6 | | + |---------------| + | 1 | 2 | 3 | | + |-----------|Ent| + | 0 | . | | + '---------------' + +### Layer 2: Function Layer + + ,---. + |TG1| + `---' + ,---------------. + |M1 |M2 |M3 | | + |---------------| + |M4 |M5 |M6 | | + |-----------| | + |M7 |M8 |M9 | | + |---------------| + |M10|M11|M12| | + |-----------| | + | | | | + '---------------' + +## Macros + +The default macro is typed with meaningless strings that exist as samples. + + +| Macro | Action | +|:-----:| -------------------------------------- | +| 1 | Types `Macro 1` | +| 2 | Types `Macro 2` | +| 3 | Types `Macro 3` | +| 4 | Types `Macro 4` | +| 5 | Types `Macro 5` | +| 6 | Types `Macro 6` | +| 7 | Types `Macro 7` | +| 8 | Types `Macro 8` | +| 9 | Types `Macro 9` | +| 10 | Types `Macro 10` | +| 11 | Types `Macro 11` | +| 12 | Types `Macro 12` | -- cgit v1.2.3