|
|
- # QMK HHKB Keymap: blakedietz
-
- <!-- TODO: Link to Hasu's geekhack page from his name -->
- <!-- TODO: Link to the ergodox ez layout in this repository -->
-
- This is my (Blake Dietz's) own take on a QMK keymap for the Happy Hacking Keyboard Pro 2 alternate controller made by Hasu. A lot of the
- functionality was inspired by the ergodox ez default layout.
-
- ## Dependencies
-
- ### macOS
-
- ```bash
- brew tap osx-cross/avr
- brew install avr-libc
- brew install dfu-programmer
- ```
-
- ### Windows/Linux
-
- [Build Environment Setup](https://github.com/jackhumbert/qmk_firmware/wiki#build-environment-setup)
-
- ## Flashing
-
- You will need to make sure that you have something that you can use to press the button on the alternate controller in
- order to put it into boot mode.
-
- From the hhkb directory run the following:
-
- ```bash
- make clean
- make hhkb:blakedietz:dfu
- ```
-
- Press the button on the alternate controller to put the board into boot mode.
-
- You'll see an output similar to the following:
-
- ```bash
- make hhkb:blakedietz:dfu
-
- Making hhkb with keymap blakedietz and target dfu
-
- avr-gcc (GCC) 6.2.0
- Copyright (C) 2016 Free Software Foundation, Inc.
- This is free software; see the source for copying conditions. There is NO
- warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
- Size before:
- text data bss dec hex filename
- 0 22162 0 22162 5692 hhkb_blakedietz.hex
-
- Compiling: keyboards/hhkb/keymaps/blakedietz/keymap.c [OK]
- Compiling: ./tmk_core/common/command.c [OK]
- Linking: .build/hhkb_blakedietz.elf [OK]
- Creating load file for Flash: .build/hhkb_blakedietz.hex [OK]
-
- Size after:
- text data bss dec hex filename
- 0 22162 0 22162 5692 hhkb_blakedietz.hex
-
- dfu-programmer: no device present.
- Error: Bootloader not found. Trying again in 5s.
- dfu-programmer: no device present.
- Error: Bootloader not found. Trying again in 5s.
- Bootloader Version: 0x00 (0)
- Erasing flash... Success
- Checking memory from 0x0 to 0x6FFF... Empty.
- Checking memory from 0x0 to 0x56FF... Empty.
- 0% 100% Programming 0x5700 bytes...
- [>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] Success
- 0% 100% Reading 0x7000 bytes...
- [>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] Success
- Validating... Success
- 0x5700 bytes written into 0x7000 bytes memory (77.68%).
- ```
-
- ### Layers
-
- #### Default
-
- ##### A more "standard" layout
-
- This layout places tilde in the standard location. Backspace is moved to the two upper-right-most keys and pipe
- is put back where it belongs (where backspace is on the default hhkb2 keymapping).
-
- ##### Hyper key
-
- <!-- TODO: Link to Brett's article about the thyper key -->
-
- This layout throws out the HHKB's control key in favor of a Hyper key. Ctrl is instead placed on the z and / keys and
- can be activated with a long press. I find that this is far more ergonomic as it's less of a reach and it allows you to
- alternate to either hand when you need to use `ctrl` as a modifier.
-
- The hyper key can be held for hyper and tapped for escape. You'll find that this is quite nice for vim.
-
- Enter is also a hyper key. This allows for symmetry between control and enter. Hold for hyper, tap for enter.
-
- ##### Tap to Hold
-
- ###### CTL, ALT, GUI
-
- Since the HHKB does not have three super/meta keys, these keys were moved to pinky, ring and middle finger for ctrl, alt/
- option and super respectively. This is closer to home row which I've found causes less strain.
-
- The Alt and Super keys are instead replaced with layer toggle keys to go to dev and mouse mode respectively.
-
- ###### Space
-
- Hold space to switch to dev mode. This will put you on a layer to have vim like arrow functionality on h,j,k and l. Use
- this in editors that don't have vim keybindings.
-
- ### Dev
-
- The Dev layer can be activated holding space or hitting the HHKB's Alt key. This will put you in a mode
- where all function keys are available and left, right, up and down are mapped to their vim equivalents. The function
- keys are mapped in such a way that you can use them for debugging. Typically I map debugging functions in all IDEs to
- the following for a seamless debugging experience (e.g. jumping from Intellij to chrome dev tools and back):
-
- - f1 -> step over
- - f2 -> step into
- - f3 -> step out
- - f4 -> continue
- - f5 -> set break point on current line
-
- ### Media
-
- The media layer can be activated by pressing and holding the semi-colon. I've also placed the play and pause key on the
- apostrophe key in the media layer. This allows you to easily roll your pinky from the media toggle (semi-colon) to the
- play/pause key in one fluid motion.
-
- I've also tried to logically map next/previous track along with volume up/down vim behavior. In vim since middle finger
- goes up on k and index finger goes down on j, next/prev track is k/j respectively. ,/m changes volume up/down
- respectively while toggled to the media layer.
|