Unicode keyboard in 101 keys
I really want to make another bicycle post since I recently broke part of something expensive, but I also want to break my streak of posts in the bicycle category. Remind me to talk about all the money I want to spend sometime later this week. For now, I’m going to talk about all the money I recently spent on a goofy keyboard.
I was born in the era of personal computers, and as such the public school systems where I was raised, about twenty years after computers had clearly become relevant, decided that teaching kids to type was something important. I was required to take a typing class in the sixth grade, a basic computer usage course (really just more typing) in the eighth grade, and there was another typing class in high school that I was supposed to take but that I finagled my way out of. It was the sixth grade typing class that really stuck with me. It was the least useful, but, instead of computers (I don’t think my middle school got their pile of free Macintoshes until I was in the seventh grade) we used IBM Selectric typewriters. Maybe my love for antiquated technology was already beginning to develop at the time, but, whatever the reason, I liked the crazy things. There was something about that marriage of the electric and the mechanical that appealed to me.
IBM, either from an understanding of people’s love for familiarity or simply out of the habit of making typewriters, fashioned their earlier keyboards after their electric typewriters. Some of these beasts can still be found in service today. While many companies, like Sun and SGI, created keyboards that, though still made with metal springs, had a somewhat softer touch, IBM kept doing the thing they do and made keyboards with keys that click loudly both when depressed and released and that could survive in a war zone. I don’t know if anyone has actually stopped a bullet with an IBM keyboard, but they look and feel like they could at least give bullets a good fight. Though the rugged aspect of these keyboards appeals to me, I’ve never before joined the Model-M cult mostly out of an aversion to the noise. I try to avoid the modern “quiet” keyboards and their rubber domes due to their inability to survive any of my annual spill incidents or even five or so unmolested years, I usually use the softer style of old keyboards with a 101-key Gateway—pulled from my family’s 286 years ago—at home and an old granite-colored SGI keyboard at work. They aren’t loud, but they’re still comfortable, they occasionally make interesting conversation pieces and they lack those windows keys that confused me so much on their debut and interrupted so many games of Commander Keen.
Though IBM has ceased to make them, new Model-M keyboards are still available from Unicomp. Unicomp also sells some of the more obscure IBM parts, like point-of-sale input devices and that one keyboard that had a telephone attached, but, more interesting to me, they’ve recently started listing a keyboard with APL keycaps, making it available to people who don’t have an IBM part number catalog handy. I don’t know APL, but I find a language that uses its own character set oddly attractive for some reason. I had a need for a new keyboard, and noise is less of a factor now that I live alone, so I handed over a sack with a dollar sign on it and bought a 101-key buckling spring keyboard with a 6-pin mini-din cable, removable keycaps and all sorts of weird symbols printed on the keys in orange. Even if I never end up learning APL, it’s a nice thing to have just for being really weird.
The keycaps don’t change they keyboard’s behavior, of course, and I couldn’t find an APL keymap file, so I starting diving into the world of xkb myself to see what I could do. As you may know, I have a bit of a Unicode obsession: the ability to mix and match characters without having to choose your favorite 256 seems quite sensible to me, and I’ve dived into the world of X11 keymaps before, through xmodmap to make the most of the four accessible shift states and through the Multi_key definitions to open up a new world of accented characters based on the old DEC compose key mappings. Though I’ve been able to find very little on the original IBM 3270 terminal behavior, the best I can deduce from the keyboard itself is that it defines a second mode: when the APL button, Alt+F8, is pressed, an alternate keymap is activated, one composed of uppercase letters and peculiar symbols. Most of the goofy symbols could be accessed through my current four-level setup, but the lack of a lock would be hard on my shifting fingers, and some keys have symbols on the front, making an alternate keymap necessary for characters such as ? and ?. That’s how I discovered groups.
While I had previously thought of keys only in terms of four levels (none, Shift, Level3, Shift+Level3), xkb also provides groups that effectively add alternate columns to my four rows. The ISO-9995 key symbols, though not mapped by default to any keyboard position, provide a means of navigating these groups, and new keymaps can provide a means of access to these modifiers in addition to entire new key layouts. While I’ve so far used a second group to define the APL symbols on my goofy new keyboard, this new facility opens up a path to my personal grail, the universal keyboard. What new typing possibilities await?