Skip to content

Instantly share code, notes, and snippets.

@mkleehammer
Last active May 6, 2024 04:49
Show Gist options
  • Save mkleehammer/56fa95ca7d3d6a0f0f9a7ca940b60d4e to your computer and use it in GitHub Desktop.
Save mkleehammer/56fa95ca7d3d6a0f0f9a7ca940b60d4e to your computer and use it in GitHub Desktop.
Planck keymap

mkleehammer Coding Planck

I use this Planck layout on my daily drivers. I spend a lot of time coding in Emacs with vi keys.

Current Layers

Qwerty

TabQWERTYUIOPBS
EscA NavS CtrlD AltF ShiftGHJ ShiftK AltL Ctrl;
ShiftZXCVBNM,./Enter
CtrlFuncSuperLowerSPCSPCRaiseLeftDownUpRight

Home row modifiers are one of the best improvements in QMK. I moved the Super key from the home row because I often accidentally triggered them, which is very distracting on Pop OS where it performs an OS related action.

Home row modifiers are not only super comfortable, they free up keys on the bottom row. Those are not easy to use, so I’ll make them layer toggles for things I don’t use often: a ten key layer and the function keys layer.

I’ve tried to order the modifiers so the most common ones are on the strongest fingers. I started with Ctrl on A since I was used to using a pinky Ctrl, but a benefit of moving it is I can now use A for a navigation layer and have all of my modifiers on the next fingers for use with the directions. (That is, I can hold A to enable nav, then hold down shift or ctl while moving.)

I tried using the standalone shift for a layer, but I discovered that I still need Shift and Ctrl when multiselecting in a GUI.

Lower

~!@#$%^&*()BS
Del[]=-\_+{}
CapsWordX<>/Enter
SuperLowerSPCSPCRaiseLeftDownUpRight

This is the symbol layer activated by holding the left Lower. As you’ll see a lot of symbols are also on the number layer so I don’t have to switch layers in the middle of constructs.

The top symbols are the same as they are on a regular keyboard. I’ve added < and > here to make => and -> very easy and I’ve kept them where they normally are also.

I’ve decided to keep BS on all of the layers as corrections are often necessary. I do want Del occasionally, so I had to put it somewhere else. I’m used to it there now, but not sure it is a great spot.

See the Caps Word section at the bottom of this file.

Raise

`1234567890BS
Del[]=-\_+{}
CapsWordX,./Enter
SuperLowerSPCSPCRaiseLeftDownUpRight

This is the number layer, activated by holding the right Raise. I’ve duplicated most of the symbols of Lower. It’s important to have a dash here for phone numbers, social security numbers, etc. It’s also useful to be able to enter braces with numbers in them in various languages.

Unlike the Lower layer, it is more important to have , and . for entering numbers than < and >. I’ve also let ‘x’ through for hex numbers.

Adjust

MRWDMFFDPlayAudioEEPROMRESET
Vol DnVol UpMute
CapsLockBright DnBright UpEnter
Ctrl-Alt-DelAlt-F4SuperLowerSPCSPCRaiseLeftDownUpRight

Hold down both Lower and Raise to reach this layer with configuration. The right side is pretty empty since it used to contain navigation. I also don’t have LEDs on my boards which normally take up a lot of Planck adjust keys.

The audio keys are positioned where they are on the HHKB, which I used for years. I need reasonably quick access to volume and mute for conference calls, but I could move them to a less premium area.

Brightness controls aren’t working at all on Pop OS since I’m using an external monitor, so those could certainly be freed up. I placed them to match the volume to help me remember the direction.

The reset is for reflashing via `qmk flash`, of course. I did manage to mess things up and need to clear EPROM, so I’ve put that there also. Those are pretty easy to hit keys, though, so if I need more space on this layer, I might move them to the bottom left.

Also note that left shift is CapsLock, not CapsWord. I don’t usually need it, but since the computer keeps its own capslock state, I need a key to toggle it if the state gets out of sync. See the Caps Word section below.

I added two Windows specific keys in the bottom left corner since it isn’t easy for me to use them without. I don’t normally have a Del, just BS, so Ctrl-Alt-Del is easier as a single key. I don’t have home row mods on the Function layer so Alt-F4 to close the current window isn’t easy to hit either.

Function

F1F2F3F4F5F6F7F8F9F10
F11F12F13F14F15F16F17F18F19F20

Just function keys for now, but I think it would make sense to move the Ctrl-Alt-Del and Alt-F4 keys for Windows from the Adjustment layer. (That’s what I have on the Planck EZ. Need to move that here so I can use the same keyboards.)

I don’t think I’d need F13-F20, so if we need some space here I would be happy to give these up or move them to the bottom.

I should probably put home row mods on this layer. It is pretty common to use them together, though I’d already be holding the F toggle with the left hand. Perhaps a function key toggle is needed?

Navigation

PgDnPgUpHomeEndBS
CtrlAltShiftLeftDownUpRight
Enter
SuperLowerSPCSPCRaiseLeftDownUpRight

Access this by holding down the A key with the pinky. My home row modifiers are on the other fingers, so that makes it convenient to hold them down when moving if needed, for things like Ctrl-Left or Shift-Down.

The modifiers here are not mod-taps, so this layer also works as a dedicated modifier layer. This may be useful for holding down control or shift while multiselecting with a mouse in the right hand. Hold down A+S for control and A+F for shift.

The core movements are based on Vi keys, which unfortunately don’t line up with the natural resting positions, but is something I use all day in Emacs so it has to match. Above them, but lined up, are the meta movements.

I didn’t have anything to overwrite the regular arrow keys, so I’ve left hem for now. There is a lot of room, so I could put some mouse keys on here too.

Layout Design

  • Since I was new to 40% keyboards, I wanted to start with the default Planck layout and modify it after some experience.
  • I find the lower row hard to hit when holding down Lower or Raise because it requires too much curling. I try to not use them for common keys.
  • I was a touch typist, so keeping the numbers and symbols over numbers in the same place makes a lot of sense. (Like the default Planck layout.)
  • I put the most common coding symbols, dashes, brackets, and braces, on both the number and symbol layers.
  • Ensure that all characters for common combinations like -> and => are on the same layer.
  • I don’t use function keys at all, so I’ve put them on their own layer.
  • Use alternating hands when it makes sense. Raise and lower are close enough to the center that they don’t really count.

Caps Word

Instead of capslock, I’m using the caps_word code from https://getreuer.info/posts/keyboards/caps-word.

I’ve modified it to use Raise/Lower + Shift instead of both shift keys.

One problem I encountered is that I no longer have a capslock key, though. One time after sleeping, my laptop had capslock on and I couldn’t turn it off with my external keyboard. Therefore I need both a caps-word trigger and caps-lock key.

I associate capslock with shift, so I’ll use layers + shift to toggle caps word, but both raise and lower (adjust layer) to toggle capslock for emergencies.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment