summaryrefslogtreecommitdiffstats
path: root/keyboards/hhkb
diff options
context:
space:
mode:
authorDaniel Schäfer <schaefer.dev@gmail.com>2019-01-20 02:34:29 +0100
committerDrashna Jaelre <drashna@live.com>2019-01-20 02:34:29 +0100
commit8df044b86828a374fc2c872c2bedc2f4b567f5bf (patch)
tree6ccda588748e8e2b04e0d351c4b6cbf02af14bda /keyboards/hhkb
parentc6fd44cf26580b1a65ad0fdd35b43d770769e0de (diff)
downloadqmk_firmware-8df044b86828a374fc2c872c2bedc2f4b567f5bf.tar.gz
qmk_firmware-8df044b86828a374fc2c872c2bedc2f4b567f5bf.tar.xz
schaeferdev layout for hhkb implementing movement layer (VIM style + Mouse) (#4883)
* new hhkb keymap implementing movement layer + comfort features * Apply suggestions from code review Co-Authored-By: schaefer-dev <schaefer.dev@gmail.com> * removed deprecated function action_get_macro and mousewheel configs that are no longer used
Diffstat (limited to 'keyboards/hhkb')
-rw-r--r--keyboards/hhkb/keymaps/schaeferdev/README.md36
-rw-r--r--keyboards/hhkb/keymaps/schaeferdev/config.h9
-rw-r--r--keyboards/hhkb/keymaps/schaeferdev/keymap.c76
-rw-r--r--keyboards/hhkb/keymaps/schaeferdev/rules.mk1
4 files changed, 122 insertions, 0 deletions
diff --git a/keyboards/hhkb/keymaps/schaeferdev/README.md b/keyboards/hhkb/keymaps/schaeferdev/README.md
new file mode 100644
index 000000000..15b87c498
--- /dev/null
+++ b/keyboards/hhkb/keymaps/schaeferdev/README.md
@@ -0,0 +1,36 @@
+ # QMK HHKB Keymap: schaeferdev
+
+This is my QMK keymap for the Happy Hacking Keyboard Pro 2 alternate controller made by Hasu.
+
+
+## Movement Layer
+
+The main difference from the Default layer is the introduction of a Movement layer than can be used by holding the right command button. This layer enables to move the mouse and scroll using Page up and Page down. Additionally it allows to use Arrow-keys in VIM-like fashion on hjkl.
+
+I prefer this movement to the default HHKB FN layer as it allows all my fingers to remain on the home row.
+
+## Minor Changes
+
+- swapped Y and Z (as I am German and used to the different order).
+- changed position of Delete Key
+- both ` and ~
+
+
+## Setup (for macOS)
+```bash
+brew tap osx-cross/avr
+brew install avr-gcc
+brew install dfu-programmer
+```
+
+
+## Flashing
+
+```bash
+make clean
+make hhkb:schaeferdev:dfu
+```
+
+
+## Troubleshooting
+For some reason I ran into the issue that my CMD key no longer recognized. I am not entirely sure what caused this but the problem occured regardless of the layout I flashed (was also broken for the default hhkb layout). I was able to fix this issue by resetting EEPROM of the keyboard. The easiest way to do this is probably to use the QMK Toolbox.
diff --git a/keyboards/hhkb/keymaps/schaeferdev/config.h b/keyboards/hhkb/keymaps/schaeferdev/config.h
new file mode 100644
index 000000000..b3c799bb8
--- /dev/null
+++ b/keyboards/hhkb/keymaps/schaeferdev/config.h
@@ -0,0 +1,9 @@
+// Based off of this section:
+// https://github.com/qmk/qmk_firmware/blob/master/doc/BUILD_GUIDE.md#the-configh-file
+#pragma once
+
+// Define mousekey settings
+#define MOUSEKEY_DELAY 0
+#define MOUSEKEY_INTERVAL 4
+#define MOUSEKEY_MAX_SPEED 1
+#define MOUSEKEY_TIME_TO_MAX 70 \ No newline at end of file
diff --git a/keyboards/hhkb/keymaps/schaeferdev/keymap.c b/keyboards/hhkb/keymaps/schaeferdev/keymap.c
new file mode 100644
index 000000000..ea6da450c
--- /dev/null
+++ b/keyboards/hhkb/keymaps/schaeferdev/keymap.c
@@ -0,0 +1,76 @@
+/* -*- eval: (turn-on-orgtbl); -*-
+ * default HHKB Layout
+ */
+#include QMK_KEYBOARD_H
+
+#define BASE 0
+#define HHKB 1
+#define MOVEMENT 2
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ /* BASE Level: Default Layer
+ |--------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+-----|
+ | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | Backs |Backs|
+ |--------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+-----|
+ | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | |
+ |--------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+-----|
+ |Ctrl/ESC| A | S | D | F | G | H | J | K | L | ; | ' | Ent | | |
+ |--------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+-----|
+ | Shift | Z | X | C | V | B | N | M | , | . | / | Shift | Fn0 | | |
+ |--------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+-----|
+ |------+------+-----------------------+------+------|
+ | LAlt | LGUI | ******* Space ******* | MOUSE| RAlt |
+ |------+------+-----------------------+------+------|
+ */
+
+ [BASE] = LAYOUT( // default layer
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Z, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
+ CTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
+ KC_LSFT, KC_Y, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(HHKB),
+ KC_LALT, KC_LCMD, /* */ KC_SPC, /* */ MO(MOVEMENT), KC_RALT),
+
+ /* Layer HHKB: HHKB mode (HHKB Fn)
+ |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----|
+ | Pwr | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | DEL | DEL |
+ |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----|
+ | Caps | | | | | | | | Psc | Slk | Pus | Up | | Backs | |
+ |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----|
+ | | VoD | VoU | Mut | | | * | / | Hom | PgU | Lef | Rig | Enter | | |
+ |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----|
+ | | | | | | | + | - | End | PgD | Dow | | | | |
+ |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----|
+ |------+------+----------------------+------+------+
+ | **** | **** | ******************** | **** | **** |
+ |------+------+----------------------+------+------+
+ */
+
+ [HHKB] = LAYOUT(
+ KC_PWR, 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_DEL, KC_DEL,
+ KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, KC_TRNS, KC_BSPC,
+ KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_PENT,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
+
+ /* Layer MOUSE: MOUSE mode (MOUSE Fn)
+ |------+-----+-----+-----+----+----+--------+----------------+--------------+-----------+-------------+-----+-------+-------+-----|
+ | `~ |ACC1 |ACC2 |ACC3 | | | | | | | | | | DEL | DEL |
+ |------+-----+-----+-----+----+----+--------+----------------+--------------+-----------+-------------+-----+-------+-------+-----|
+ | |MBTN2| | up | | PgU| | | | | | | | | |
+ |------+-----+-----+-----+----+----+--------+----------------+--------------+-----------+-------------+-----+-------+-------+-----|
+ | |MBTN1|right|down |left| PgD| <- | down arrow | up arrow | -> | | | | | |
+ |------+-----+-----+-----+----+----+--------+----------------+--------------+-----------+-------------+-----+-------+-------+-----|
+ | |MBTN3| | | | | | ~ (N) | | | | | | | |
+ |------+-----+-----+-----+----+----+--------+----------------+--------------+-----------+-------------+-----+-------+-------+-----|
+ |------+------+----------------------+------+------+
+ | **** | **** | ******************** | **** | **** |
+ |------+------+----------------------+------+------+
+ */
+
+ [MOVEMENT] = LAYOUT(
+ KC_GRV, KC_ACL0, KC_ACL1, KC_ACL2, 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_BTN2, KC_TRNS, KC_MS_U, KC_TRNS, KC_PGUP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_BTN1, KC_MS_L, KC_MS_D, KC_MS_R, KC_PGDN, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_BTN3, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TILD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)}; \ No newline at end of file
diff --git a/keyboards/hhkb/keymaps/schaeferdev/rules.mk b/keyboards/hhkb/keymaps/schaeferdev/rules.mk
new file mode 100644
index 000000000..35591533c
--- /dev/null
+++ b/keyboards/hhkb/keymaps/schaeferdev/rules.mk
@@ -0,0 +1 @@
+MOUSEKEY_ENABLE = yes \ No newline at end of file