

Toward a more useful keyboard - albertzeyer
https://github.com/jasonrudolph/keyboard

======
kps
OS X has a fairly sophisticated keyboard layout handler (better than xkb IMO)
that allows you to define arbitrary dead keys in addition to the usual
accents. For instance, in my usual layout, I have ‘⌥G’ as a ‘dead Greek’ key,
such that for example pressing ‘⌥G’ followed by ‘b’ yields ‘β’. Similarly I
have dead-key layers for superscripts, subscripts, math, blackboard bold,
Hebrew letters, keyboard symbols, and so on. Layers can also be chained, so,
for instance, I have a fraction chain such that ‘⌥F 3 4’ yields ‘¾’. (An
X-style Compose key could be done that way, though I haven't.)

Ukelele¹, free software from SIL, provides a reasonably good GUI for defining
and manipulating OS X keyboard layouts.

¹ [http://scripts.sil.org/ukelele](http://scripts.sil.org/ukelele) [Edit:
fixed link]

~~~
chjj
Not many people have heard of it for whatever reason, but what you're
describing can be accomplished perfectly well on X11 systems using XCompose:
[https://wiki.archlinux.org/index.php/Accents_on_US_keyboards](https://wiki.archlinux.org/index.php/Accents_on_US_keyboards)

------
krenoten
I went through much of the same process in the past week, as I started at a
new job where I was not easily able to use linux. I'm a HHKB pro 2 user also -
although I actually have really grown to enjoy the placement of the arrow keys
and not having to physically move my hand over to use a separate set of
specialized keys. As a user of the colemak keyboard layout, I've grown
accustomed to rarely needing to stray far from the home row, and this keyboard
helps me take the same economy of motion to the next level. For software, I
arrived at KeyRemap4MacBook at the recommendation of the colemak website, and
between that and standard mountain lion system preference remaps of where
command is mapped to etc... (caps lock -> control on the actual laptop
keyboard is MANDATORY) I'm finally starting to enjoy using osx as a tool for
interacting with text editors.

But - I was fiercely at war with manual placement of windows and the
horrendous methods I knew of for changing windows. I'm an xmonad user, and
really just wanted something that would put windows exactly where I wanted
them and to swap focus easily enough. I found slate, and although it may take
a few minutes to write a conf that you're happy with I was able to replicate
the major functionality that I wanted.

Ahh... ok now I can finally get stuff done without constant vacations to the
mouse, and I can start to notice some of OSX's visual niceties.

~~~
autodidakto
Check out xnomad. It seems to me the closest imitation to Xmonad, and doesn't
need messing with a config to get working (that is, comes with good default
keycommands and limited layouts). It's not in Haskell, but the authors
experimental ObjC-based-but-many-times-cleaner-and-cooler language.

Install tranquil, and then I recommend using the .app bundle I made on my fork
([https://github.com/JasonJAyalaP/xnomad/raw/master/xnomad.app...](https://github.com/JasonJAyalaP/xnomad/raw/master/xnomad.app.zip)).
I added a nice icon and made it much simpler to quit and launch it.

~~~
krenoten
Ahh this looks very promising. I'll be checking it out, thanks!

------
rasur
Whatever happened to that keyboard with LCD keys (I've completely forgotten
it's name, otherwise I'd surely answer my own question). Did it ever become
available or is it still vapourware?

That seemed like a good idea at the time.. I mean, muscle memory is fine if
all you do is programming (which I do a fair amount of), but sometimes one
moves into different domains that have their own keyboard layouts, for which
type of keyboard would be a boon.

EDIT: Of course, actually googling _beforehand_ would have brought up 'The
Optimus'.. And of course the Optimus Maximus is "unavailable", though I fail
to see why except that perhaps it was horribly expensive?

~~~
GuiA
Jef Raskin, The Humane Interface, page 51:

"BUTTONS THAT CHANGE IN THE NIGHT

Some aircraft have pushbuttons that contain dot-matrix display used to change
the legend that appears on the button. This change is done under the
aircraft's computer's control so that the buttons can be relabeled on the fly.
The advertising copy for one brand of these buttons made some human factors
claims. or one thing, fewer buttons would be needed in the limited cockpit
area. For another, avionics and other system changes could be effected without
having to rewire the cockpit.

From the perspective of cognitive science, good labels enhance visibility.
Assuming that the person choosing the labels bothers to test the wording, to
make sure that the chosen labels are effective and unconfusing, it is, on the
face of it, a good idea.

But more careful thinking reveals a number of potential pitfalls to the
product: All legended buttons get obscured– by the very finger you are
using–just as you are about to press them, obviating a last-second check that
you are pressing the right button. But this is a minor problem, for normally
you have looked at the legend before you press the button– if you have looked
at all. (I am certainly not looking at the legends on the keycaps of my
keyboard as I type this)

Then there is the deeper problem of the disappearing button. You want to
enable, say, the manual controls on the cabin air conditioner. There is, you
recall, a button labeled MANUAL AIR, but it is nowhere to be found. The reason
is that it now says COMM BACKUP. You have to figure out how to get that button
to light up the way it did before. Perhaps a switch or a button somewhere else
changes the legends on the buttons. Or perhaps the legends are context
sensitive and won't allow you to change the air conditioning right now.
Whatever the cause, when a button has variable legends, the button you want
will perhaps have vanished because the system is in a different mode.

But the gravest problem has to do with habituation. Imagine the experienced
pilot reaching up and pressing a button. The radio's not working; something's
wrong. A communications problem: Time to enable COMM BACKUP. She jabs out
expertly at the COMM BACKUP button. Click! Too bad. The copilot was adjusting
the cabin temperature in response to a passenger complaint, and the buttons
are now in climate control mode. The pilot has just achieved complete manual
control over the air conditioning system.

Variable-legend buttons could be useful, for instance, if several people use
the same console, each using it in such a way that the buttons do not change
meaning for any one user. But this is a situation seldom encountered. Soft
keys, whereby a display has changable legends that affect on-screen buttons or
buttons adjacent to the display, have the same liability as do variable-legend
buttons. A similar problem exists with the use of function buttons, labeled F1
through F11 on many computers. If their functions are unchanging, the labeling
is mnemonic. If their functions change, you cannot use them automatically. In
either case, they are a poor design."

~~~
wtallis
That's a reasonable criticism, but I don't see how it's applicable to the
Optimus keyboard. The Optimus only changes the labels to more accurately
reflect the function the button already has in a given context- such as
replacing "U" with a rectangle symbol in Photoshop, or showing accented
characters when you hold down the right modifier key. The Optimus doesn't add
any new key re-definitions.

~~~
rasur
Indeed, and the Optimus would likely not be used by two people at the same
time, thus one might be marginally less likely to suffer the kind of context
switches described above (which are of course valid, but in that context).

------
zackkitzmiller
The best thing I ever did was remap Caps Lock to Esc at some point last year.

~~~
ne0phyte
I have Ctrl on Caps on all my keyboards and my main keyboard, a Happy Hacking
Keyboard[1], comes with the Unix layout* anyway.

Why Esc? For Vim?

*Control instead of Caps, Delete above Enter

[1]
[http://en.wikipedia.org/wiki/Happy_Hacking_Keyboard](http://en.wikipedia.org/wiki/Happy_Hacking_Keyboard)

------
zachlatta
Looks like a neat project. I'd recommend simplifying the readme a bit though.
I gave it a brief skim and I still have no idea what this is.

~~~
anigbrowl
That should be a clue as to the actual utility of the system.

------
autodidakto
I've been thinking a lot lately about a completely pimped out keyboard
interface...

It starts with hardware (Type Matrix, Kinesis) and hardware accessories
(petals, extenders). It continues with a keyboard layout you're happy with
(Workman seems to be the most hardcore), either built into the keyboard
hardware or selected via the OS. The keyboard layout in the OS can be modified
as well. Then come deeper software hacks like PCKeyboardHack and KeyRemap.
Then, softer stuff like keyboard shortcuts go in your favorite
launcher/macro/shortcut app.

~~~
krenoten
I'd never heard of workman, I think I'll be trying this out.

------
omegote
Yet another article who supposes everybody uses Mac. Up until you reach the
'dependencies' part you realize it's for OS X only.

------
Someone
Interesting that he talks about _what_ he wants to do (same commands,
everywhere), then shows an app that controls _how_ to do things (use caps lock
for escape and control).

Isn't he consciously aware of what he wants, or isn't he getting there yet?

------
barbs
I started reading this, saw "Super Duper mode" and F19, and the assignment of
Control+Shift+Option+Command to some newly created "Hyper" key, and seriously
thought it was a parody of those projects trying to improve and innovate on
computer input methods (e.g. vim, colemak, various ergonomic keyboard
designs).

I then realised it wasn't a joke. Now I actually think this is pretty cool at
what it does, but it did make me think about how much effort people seem to
put into finding the perfect interface, and yet the QWERTY keyboard has
(generally) been the unchanging standard for decades now...

------
rumbler
What I want is a keyboard with two big keys below the space bar, each half the
width of the space bar, that I could map to Escape (the left one) and
3rdLevelShift (the right one). With Ctrl left of A, and Backspace just above
Enter (aka the Unix Layout), I would be able to type without having to resort
to ridiculous contorsions.

Loads of bonus points if the keyboard has the same kind of keyswitches as the
IBM 5100 computer. If you are familiar with modern keyboard switches and
folding knives, the IBM 5100 switches are to Cherry blues what a Chris Reeve
Sebenza is to a Walmart-bought Buck knife.

~~~
reeses
Do you really need that large a spacebar anyway?

[http://www.trulyergonomic.com](http://www.trulyergonomic.com)

(I feel like a shill, but this is what I use when I'm not on the road, with
the keys remapped like a crazy person.)

------
pkamb
I made an app that remaps your Mac's power key to forward delete:

[https://github.com/pkamb/PowerKey](https://github.com/pkamb/PowerKey)

------
jaequery
super duper mode, space for shift? i don't get it ... o_O

------
secure
Related: [http://www.neo-layout.org](http://www.neo-layout.org) — also has the
arrow keys on one of the upper levels, plus tons of useful characters all over
each of the levels :).

------
lunixbochs
I prefer leaving shift out of the hyper modifier, so you _also_ have
shift+hyper as a valid modifier.

