From 103d904fabd549e1051ed32adcdb935db0d8f952 Mon Sep 17 00:00:00 2001 From: Vasken Dermardiros Date: Mon, 7 Jan 2019 16:06:34 -0500 Subject: [PATCH] Alternate keymap for Alpha keyboard, enjoy! (#4797) * Create README.md * Add files via upload * Update README.md --- keyboards/alpha/keymaps/vderm/README.md | 35 ++++++++++++++++++ keyboards/alpha/keymaps/vderm/alpha_vderm.hex | Bin 0 -> 63930 bytes keyboards/alpha/keymaps/vderm/keymap.c | 34 +++++++++++++++++ 3 files changed, 69 insertions(+) create mode 100644 keyboards/alpha/keymaps/vderm/README.md create mode 100644 keyboards/alpha/keymaps/vderm/alpha_vderm.hex create mode 100644 keyboards/alpha/keymaps/vderm/keymap.c diff --git a/keyboards/alpha/keymaps/vderm/README.md b/keyboards/alpha/keymaps/vderm/README.md new file mode 100644 index 0000000000..26a8ab3e85 --- /dev/null +++ b/keyboards/alpha/keymaps/vderm/README.md @@ -0,0 +1,35 @@ +# Alpha 28-Key Keyboard Alternate Keymap +Alternate keymap for [Alpha 28-key keyboard](https://github.com/qmk/qmk_firmware/tree/master/keyboards/alpha). + +## How-to +Assuming you've followed all the instructions from the original post, put my "keymap.c" file in "$qmk-firmware-folder$/keyboards/alpha/keymaps/vderm/" and then run your make command ("make alpha:vderm" while in $qmk-firmware-folder$ where this folder is what you've downloaded from the official github page) to compile the hex file to upload to your microcontroller. I've also uploaded my hex file. + +## Description +Instead of going up and down layers like in the original Alpha keyboard, I've made the bottom row keys all have alternate functions: ++ Like in the original Alpha28 keymap, the 2U spacebar is a shift key when held down and space when tapped ++ Z and M are Ctrl keys when held down or Z and M when tapped ++ X and N are Alt keys ++ C activates the function keys layer (arrows, page up/dn, esc, tab, etc.) ++ V activates the characters and numbers layer ++ C and V combined activated the F-keys layer (F1, F2, F3, etc.) ++ The enter key is an enter key in the home layer, backspace in the function keys and characters/numbers layer and a delete in the F-keys layer ++ While in the other layers, the bottom row acts like a "regular" bottom modified row: ctrl, alt, winkey + +## Keymap +![keymap](https://imgur.com/ZbDz0eL.jpg) + +## Build Images +Here is my keyboard. ++ Switches: Aliaz Silent Switches (Tactile), PCB mount, 80g from [KBDfans](https://kbdfans.cn/collections/aliaz-switches/products/pre-orderaliaz-silent-switch-tactile?variant=2519899832333) ++ PCB board: ordered from JLCPCB, in white ++ Keycaps: ebay, can't find link :S ++ Bottom plate: I cut a piece of canary wood that was laying around, needs to be varnished; I also need to actually screw the pcb to the wood instead of relying on double-sided tape + +![vderm_alpha0](https://imgur.com/MjjoVtr.jpg) +![vderm_alpha1](https://imgur.com/mIFu9WV.jpg) +![vderm_alpha2](https://imgur.com/A70Iemw.jpg) +![vderm_alpha3](https://imgur.com/eYljPWh.jpg) +![vderm_alpha4](https://imgur.com/OhUKowj.jpg) + +Good luck on your build! +//vderm diff --git a/keyboards/alpha/keymaps/vderm/alpha_vderm.hex b/keyboards/alpha/keymaps/vderm/alpha_vderm.hex new file mode 100644 index 0000000000000000000000000000000000000000..7515ad030511a46d9f0d70346f646bafafc8abba GIT binary patch literal 63930 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 literal 0 HcmV?d00001 diff --git a/keyboards/alpha/keymaps/vderm/keymap.c b/keyboards/alpha/keymaps/vderm/keymap.c new file mode 100644 index 0000000000..5fc642319b --- /dev/null +++ b/keyboards/alpha/keymaps/vderm/keymap.c @@ -0,0 +1,34 @@ +#include QMK_KEYBOARD_H + +#define HOME 0 +#define FN 1 +#define FNCHAR 2 +#define FKEYS 3 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [HOME] = LAYOUT( + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT, + MT(MOD_LCTL, KC_Z), MT(MOD_LALT, KC_X), LT(1, KC_C), LT(2, KC_V), MT(MOD_LSFT, KC_SPC), MT(MOD_RGUI,KC_B), MT(MOD_RALT, KC_N), MT(MOD_RCTL, KC_M)), + + [FN] = LAYOUT( + KC_ESC, KC__MUTE, KC_VOLD, KC_VOLU, KC_MPLY, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_NO, + KC_TAB, KC_NO, KC_NO, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_BSPC, + KC_LCTL, KC_LALT, KC_TRNS, MO(3), MT(MOD_LSFT, KC_SPC), KC_RGUI, KC_RALT, KC_RCTL), + + [FNCHAR] = LAYOUT( + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_GRV,KC_NO,KC_MINS,KC_EQL,KC_BSLS,KC_LBRC,KC_RBRC,KC_SCLN,KC_QUOT,KC_BSPC, + KC_LCTL, KC_LALT, MO(3), KC_TRNS, MT(MOD_LSFT, KC_SPC), KC_COMM, KC_DOT, KC_SLSH), + + [FKEYS] = LAYOUT( + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, + KC_F11,KC_F12,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_DEL, + KC_LCTL, KC_LALT, KC_TRNS, KC_TRNS, MT(MOD_LSFT, KC_SPC), KC_RGUI, KC_RALT, KC_RCTL), +}; + +void matrix_init_user(void) { +} + +void matrix_scan_user(void) { +}