, I realise I've a few updates to make back in this thread about how my QMK Beamspring is handling. I've learned a few things since I last wrote, see.
First of all: I learned that QMK has a key code just for my HHKB-style dual purpose Escape / `~ key. It's right there in the 60% Escape spot in layer 0. Hit that by itself and it's Escape. Chord it with mods and it's magically backtick. The lack of a spare key on the top right (unsplit Backspace) means I still need a dedicated backtick key for typing those characters themselves, so I've just tossed that to the left of it, over on the left block! Inelegant but effective.
Much more elegant is the ability to put the keyboard into firmware flashing mode without relying on external software. I found this one in Pandrew's default keymap: use Fn + Spacebar to reach a hidden layer for such mean and nasty keys! I've bunged it up on layer 4, away from my others, so I just hold Fn + Space + R now to quickly enter DFU mode, and let QMK Toolbox automatically flash a new firmware hex file. Much quicker than before and never triggered it accidentally, either.
As for the other layers: I've put an integrated "I square" SSK style numpad on the first of them, which I toggle on and off with Fn + Q. I have the same setup on my TMK powered HHKB. Who needs hardware numpads! Sneakier still: I put mouse keys on the next layer, toggled with Fn + W, again like my HHKB. But unlike my little Japanese 60%, this big bad boy has extra keys on the right, so I also mapped 3276 specific mouse controls onto them. In fact, as they're right there the whole time, I made them mouse controls on the basic "just hold Fn" layer 1. Those four arrows then move the mouse cursor around instead of the text cursor, and have the left and right mouse buttons right above them for trivial clicking tasks without having to leave the keyboard. Observation points if you spotted my inverted scroll wheel keys: to match Apple's own silly orientation, of course!
Oh, that F24 on Fn + Escape is to trigger the screen lock I have assigned on all my keyboards. A recent addition, as some (Hasu’s Bluetooth controller, cough!) can’t send System Sleep.
The other lonesome looking function keys over in the left block are mapped specifically to system controls. F11 and F12 are for window management. F1 and F2 control my display brightness. They even work on my Dell 4K’s native brightness and contrast levels now, thanks to
.
The json files the visual editor puts out are quite ugly, but I've found you can edit them in a text editor more easily for some tasks and import them back. Specifically, I prefer "transparent" keys to "no action" keys for the unassigned keys in my upper layers, so I search and replaced them instead of all that clicking by hand. I also rejiggered the order of my layers, much easier with copy and paste in text than a hundred-something clicks! The end result looks like this:
Code: Select all
{"keyboard":"xwhatsit/ibm/3276_3278_75key/xwhatsit_rev4","keymap":"muirium3276","layout":"LAYOUT","layers":[
["ANY(HPT_TOG)","KC_ESC","KC_GESC","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_HOME","KC_PGUP","KC_F11","KC_F12","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_RBRC","KC_DEL","KC_END","KC_PGDN","KC_F1","KC_F2","KC_RCTL","KC_A","KC_S","KC_D","KC_F","KC_G","KC_H","KC_J","KC_K","KC_L","KC_SCLN","KC_QUOT","KC_BSLS","KC_ENT","KC_UP","KC_DOWN","KC_LCTL","KC_LALT","KC_LSFT","KC_GRV","KC_Z","KC_X","KC_C","KC_V","KC_B","KC_N","KC_M","KC_COMM","KC_DOT","KC_SLSH","KC_RSFT","KC_LEFT","KC_RGHT","KC_LGUI","KC_SPC","KC_RGUI","MO(1)"],
["KC_PWR","KC_SLEP","KC_F24","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_WH_D","KC_WH_U","KC_TRNS","KC_TRNS","KC_TRNS","TG(4)","TG(3)","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_UP","KC_TRNS","KC_INS","KC_BTN1","KC_BTN2","KC_TRNS","KC_TRNS","KC_TRNS","KC_MUTE","KC_VOLD","KC_VOLU","KC_TRNS","KC_TRNS","KC_PAST","KC_PSLS","KC_HOME","KC_PGUP","KC_LEFT","KC_RGHT","KC_TRNS","KC_PENT","KC_MS_U","KC_MS_D","KC_TRNS","KC_TRNS","KC_TRNS","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_MS_L","KC_MS_R","KC_TRNS","MO(2)","KC_TRNS","KC_TRNS"],
["KC_TRNS","KC_TRNS","TO(0)","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_P7","KC_P8","KC_P9","KC_P0","KC_PMNS","KC_PPLS","KC_BSPC","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TAB","KC_TRNS","TG(3)","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_P4","KC_P5","KC_P6","KC_PAST","KC_TRNS","KC_TRNS","KC_DEL","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_RCTL","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_P1","KC_P2","KC_P3","KC_PAST","KC_TRNS","KC_TRNS","KC_RSFT","KC_UP","KC_DOWN","KC_LCTL","KC_LALT","KC_LSFT","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_P0","KC_P0","KC_PDOT","KC_PSLS","KC_RSFT","KC_LEFT","KC_RGHT","KC_LGUI","KC_SPC","KC_RGUI","MO(1)"],
["KC_TRNS","KC_TRNS","TO(0)","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_ACL0","KC_ACL1","KC_ACL2","KC_WH_D","KC_WH_U","KC_TRNS","KC_TRNS","KC_TAB","TG(4)","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_BTN1","KC_MS_U","KC_BTN2","KC_BSPC","KC_WH_R","KC_WH_L","KC_TRNS","KC_TRNS","KC_RCTL","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_WH_R","KC_WH_L","KC_WH_D","KC_MS_L","KC_MS_R","KC_TRNS","KC_ENT","KC_MS_U","KC_MS_D","KC_LCTL","KC_LALT","KC_LSFT","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_WH_U","KC_MS_D","KC_RSFT","KC_MS_L","KC_MS_R","KC_LGUI","KC_SPC","KC_RGUI","KC_TRNS"],
["ANY(HPT_TOG)","KC_ESC","TO(0)","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_BSPC","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TAB","KC_TRNS","KC_TRNS","EEP_RST","RESET","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_DEL","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_RCTL","KC_TRNS","KC_TRNS","DEBUG","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_ENT","KC_TRNS","KC_TRNS","KC_LCTL","KC_LALT","KC_LSFT","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_RSFT","KC_TRNS","KC_TRNS","KC_LGUI","KC_TRNS","KC_RGUI","MO(1)"],
[],[],[],[],[],[],[],[],[],[],["KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO"]],"author":"Muirium","notes":"Muirium 3276 for Mac"}