Well, after living with the default keyboard mapping for Genera under X-Windows, I decided to make an optimized one for an 87-key ANSI layout. The design goals were:
- Utilize all the 16 top row keys efficiently, with most common functions in logical places
- Utilize the 6-key quadrant for other common functions
- Leave the arrow keys for cursor motion (because even though I have been using Emacs for at least 26 years I like my arrow keys)
Some of the important things that these led me to were:
- The
esc
key is now GeneraSELECT
, as that is one of the most commonly used key somewhat analoguous toCommand-TAB
in macOS. - The
line
key is nice to have available for use in Zmacs to start a new line and auto-indent, so put that somewhere reasonably close. In fact, I thought about putting it where the backslash - Genera
Backspace
is not very useful (equivalent toc-B
) so it gets demoted to a middle area and could even be entirely removed
Some of the challenges were:
- Modifier keys in the bottom and second to bottom row are too few. I put the most common ones on the left side (
CONTROL
,SUPER
,META
) and the less common ones on the right side along with the two more common ones (META
,CONTROL
,SYMBOL
,HYPER
). Just in case someone doesn't have a Menu/Application key, I also mappedSYMBOL
toF5
, but didn't put a keycap on it. I had an "extra key" and wasn't sure what to put there, and this seemed the most useful thing.- The
SYMBOL
key (Menu/Application key) probably needs to be marked as a modifier in Xquartz. Right now it autorepeats, which is very annoying. I haven't tried fixing the problem though, since the key is so rarely used. (Mostly for ≣ and ⇄ (or is it ⇆).)
- The
SUSPEND
,RESUME
,ABORT
seem like they might be more safely put inF13
,F14
, andF15
to prevent accidental keypresses. On the other hand, they're used so often during software development that they're easier to reach in the middle. So, they went into the middle and the shape keys into the upper right.CAPS LOCK
andMODE LOCK
don't seem to do much useful at all. Indeed, on my Mac I generally mapCAPS LOCK
to "noop" wasting a completely useful key. The Symbolics 3600 keyboard puts a backspace there. I tried that, but the big problem is that Xquartz or macOS always captures theCAPS LOCK
to toggle caps lock, regardless of how you map the key in Xquartz or Genera.- One solution would be to remap the
CAPS LOCK
key to something else likeF16
using something like Karabiner orSystem Preferences
. The former works great but has to be installed everywhere. The latter only lets you map it to pre-existing modifiers. If it were mapped toCONTROL
(or whatever), then we could put aHYPER
on the left. But,HYPER
just isn't used much, so... Whatever.
- One solution would be to remap the
LOCAL
seems to serve no purpose on MacIvory or on X11, so it's omitted. Same withREPEAT
, although it is an interesting key for people without auto-repeat.COMPLETE
is used frequently, but so isCLEAR INPUT
(at least by me), so I wasn't sure which one belonged in the easily reachedF12
.HELP
is also used frequently. It was a challenge to decide if it should stay in theF12
spot or in the (previously) Mac standard spot.- GitHub doesn't work well with the character encoding of Genera. It considers those
.lisp
files with Genera characters (like ≣ and ⇄) to be binary and won't show them in listings.- I should really write an
iconv
plugin that will translate Unicode formats to the Genera format. - Another minor detail is that many Mac fonts seem to show the ≣ character with four horizontal lines instead of three. There are also two similar Unicode code points for this sort of a character. (≡ and ≣)
- I should really write an
So, with all that said, let me share the layout: (Keyboard-Layout-Editor link)
Additionally, I made a WASD Keyboards custom layout file (which the original is an Inkscape SVG file, sources located here):
Finally, of course, there is xquartz-87-enh.lisp
in my GitHub Genera X11 Repository. The X11 Repo README.md
file has installation instructions.
When I get the custom keyboard from WASD, I'll post pictures here.
I welcome thoughts and feedback on this layout.
Genera View
Here is how this keyboard looks in Genera.
Next Steps
I'm going to try to make a version of this layout for these keyboards that I also regularly use:
- MacBook Air/Pro laptop keyboard
- Microsoft Sculpt keyboard
I also have a USB Sun Type 3 keyboard that I may try to create an X mapping for, and a Sparcstation 20 with a Sun Type 5 keyboard. Finally, I may try to make a similar mapping for Linux.