Hi. This hack provides for example "space/shift dual role key". When you press the space key alone, it's a space; but when you press it with another key, it's a shift. Any pairs of keys are possible. This means your hands stay almost always at their home postion. Now I can't type comfortably without it.
It's a fork of Xorg "evdev" driver (= xf86-input-evdev, or in debian xserver-xorg-input-evdev).
* Readme tells the detail.
* homepage. You can get the source tarball and git access instruction.
News for 2.7.3 (Nov 2012)
Merges the upstream 2.7.3, and has no changes in ahm itself since 2.7.1. For full changes, read README, "News" section:
Installation
I'm not a debian user, and I don't provied 2.7.3 support. The following instruction for 2.6.4 may help. Or, read the post below by Yuri Khan.
This instruction is rudimentary, so help yourself. It's for squeeze, xserver-xorg-input-evdev 1:2.3.2-6.
The strategy is: Rip the source package debian/ directory from the squeeze version, fix it, and apply to my source.
1. Download the source tarball, and a patch for debian/{rules,changelog} (I think the patch will work, but not tested yet.) All past versions are here.
There's also the patch against the Xorg's original 2.7.3 code to generate the source of my fork. (To protect your PC, patches are easier to read, and thus recommendable.)
2. Do some apt-get:
$ cd somewhere-to-run-debuild
$ apt-get build-dep xserver-xorg-input-evdev
$ apt-get apt-get source xserver-xorg-input-evdev
3. Extract files, apply the patch, and build
$ tar -xf ahm-2.x.y.tar.gz
$ cd at-home-modifier
$ cp -r ../xserver-xorg-input-evdev-2.3.2/debian ./
$ patch -p1 < squeeze2ahm-2.6.<x>.patch
$ debuild
$ dpkg -i <generated deb file>
Alternative: Ubuntu PPA
There's Ubuntu PPA for this hack by Yuri Khan. (Thanks!) I don't give general instruction and caution on PPA here. Use it at your own risk, but the source package may be nice.
Notice
When you upgrade the xorg-server, you have to rebuild this hack, too, or your keyboards and mice won't work! More precisely, for xorg-server-x.y.z, a change in z doesn't affect, but x or y does. (In debian, it seems to be called xserver-xorg-core-2:x.y.z-rel.)
Bug of the current debian patch:
* README.orig is not installed
If you know how it can be automated with git-buildpackage, please tell me.
Alternatives
* C++ implementation Space2Ctrl. See comparison with at-home-modifier.
* C implementation keydouble forked from Space2Ctrl. You may find the news at the Arch forum thread.
Notice
Probably I don't develop any more this hack as a fork of xf86-input-evdev. It's better to do all in user space, rather than as an X driver.
If you want some progress, improve Keydouble or so. I'm also interested in a rewrite in Python, which will be easier to allow flexible configuration. (In reality I don't think I'll ever write one.) It'll be great if it's integrated to AutoKey, but the AutoKey developer is not interested.
To make these hacks more popular, you can upvote my answer here to a question on Emacs Pinky in StackOverflow.
Any comments, both positive and negative, are more than welcome. Please give me a feedback. I don't know how many have tried. :/
With best regards.