(This is very much an example of one of the little manic episodes that make me a good generalist/appear high functioning)
The left touchpad button on my laptop (Thinkpad T60p, hostname Monolith) has been “limp” for a while. It bothers other people who use my machine, because (objectively) it really does feel very wrong, but it had broken gradually and I had acclimated enough that it didn’t bother me. Last night I started paying attention to the problem, and it became maddening, so I decided to see if I could fix it. I looked at the problem last time I had the machine apart, so I knew there was a torn plastic tactile dome to blame. It is (as best as I can make out) impossible to order just the appropriate domes, and a whole new touchpad is 1. defeatist, 2. about $12 from shady ebay sellers, and 3. requires waiting for it to be shipped. I decided a better (ie. creative, free, immediate, and credit-card-fraud free) solution would be to go rummage in the parts bins, find a sufficiently similar tactile dome in something dead, and install it. The closest match I could find was the keyboard domes from the corpse of my old VPR Matrix 180B5 (The worst made laptop I have ever encountered. Every bit as fragile as one would expect something made by a Best Buy house brand to be, even though it was basically a re-badged Samsung P10. Polystyrene is not chassis material.) I now have a partial match (it’s a little too weak, and not “snappy” enough) installed, which is good enough to keep it from being bothersome.
Thinking about tactile domes reminded me of a fabulous article I read (I thought) about them several years ago. It turns out it was a much more general article about handheld devices, but it really was fabulous. The article is “Handhelds of Tomorrow” from the April 2002 issue of Technology Review. Ideo has a PDF available outside a paywall. The part about the tactile bubbles was one little subsection about Peter Skillman, who was “the hardware guy” at palm/handspring (weird corporate history).
The search for the article reminded me of a previous kick on the work of one of the other important palm/handspring people, Jeff Hawkins, who in addition to being a founder of both companies, is doing amazing work in neuroscience as it relates to computing, and has written a book On Intelligence and given a awesome TED talk on the topic.
Hurrah for (hypo)manic episodes?
My usage patterns of late have lead me to the conclusion that something critical has been omitted with modifier keys. Modifier keys are those keys that alter the meaning of keypresses, things like Shift, Alt, Ctrl, Windows, Apple, Option, Command, Function… (I think that covers most common modern keyboards, there have been others). The omission is that no environment I’m aware of reserves a key for the system; applications are always able to intercept the key-presses and do inconsistent things with them (I’m looking at YOU old fashioned text editors). A key reserved for the system (or, actually, the window manager in most stacks) would be useful in a variety of ways, all derived from implementing truly uniform behaviors system-wide. I’ll call this magical key “Sys” (for System Key, its a surprisingly little-used phrase).
Modifier keys have always contentious (and well-storied) things; see oldschool cokebottle jokes and this story about the early Macintosh (near the bottom, that isn’t the one about the symbol, but it may as well be here too). As such, I’ll provide two motivating examples for the addition (or forceful re-purposing) of a modifier:
* I’ve lately found myself hitting Ctrl+T and starting typing a query, expecting a fresh firefox tab preloaded to a google search box. Unfortunately, this doesn’t work so well something other than firefox has focus. I would like to be able to set Sys+T to “Bring the most recent Firefox window to the foreground (or launch it if there isn’t one), and pass it the command to open a new tab.” This should be easily possible with normal NetWM (or even ICCCM) capable window managers, as far as I understand the specs. There just isn’t a good interface for it (AFIK).
* Switching between Ctrl+C/Ctrl+V and Ctrl+Shift+C/Ctrl+Shift+V for copy/paste when switching between applications that have the luxury of following modern conventions and a terminal emulator is distracting and error prone. “Break” and “Background” are useful and have precedence, so I don’t begrudge the behavior, but the “correct” solution would be to have Sys+C and Sys+V manipulate the clipboard (which is (usually, mostly) managed above the application level anyway) in a context-insensitive way.
I know there are ways to approximate this behavior; many media players allow you to set global shortcuts to control them (which may conflict and are usually flaky); most environments have conventions which are theoretically consistent across applications (which are often disobeyed, particularly by still-useful applications written before the standard was established). This isn’t what I’m talking about. The “system only” nature of the key shouldn’t be optional. The window manager should trap anything between press and release of the sys key, including the presses themselves (press and release are separate signals for most keys on every keyboard design I know of), and handle the event, leaving applications completely unaware.
I’ll probably try to adapt XFCE (which seems to have pretty good facilities for this in place already) to as much of my desired behavior as is easily possible, using the windows key as my Sys, when I next have time for a little project like this (ha…). It may even be possible simply by abusing the keyboard preferences, which would be another victory for good old flexible Linux.