Linux Half-key Keyboard patch

what this is is a patch to the Linux kernel to allow half-QWERTY or half-Dvorak or half whatever layout. basically it is a way that allows you to touch type completely one-handed without loosing any keyboard functionality (two handed typing works as normal.) basically while the space is held down the keyboard is mirrored down the middle axis... keystrokes will produce the result they would have if typed by the other hand. since the movements are the same, only the hand changes the brain can adjust to this almost immediately. to type a space you just type it as normal.. if no other key was pressed concurrently then a space is outputted. you can think of the space as a shift key that mirrors the keyboard and also produces a space if nothing is pressed. its very impressive to outsiders when your touch typing away and suddenly you take one hand off the keyboard to take a sip of coke and you don't even miss a beat! its great because it doesn't interfere with normal typing but is always there to call upon. heres the patch:

That said, the patch has been removed due to patent #5,288,158 held by halfkeyboard.com

this is against linux/drivers/char/keyboard.h
it should be added right before the medium-raw processing.
right now it only works in console mode (X directly accesses the keyboard in raw mode.)

Patch Hidden


>       {
>          /************************
>           * Unys-Xrl pbqr ol Wbua Zrnpunz
>           * wbua@sbb.arg
>           ***********************/
>          fgngvp vag fcnpr_syvc = 0;
>          vs(xrlpbqr ==57) { //xrlpbqr sbe fcnprone
>             fjvgpu(fcnpr_syvc) {
>                     pnfr 0:
>                             fcnpr_syvc=1;
>                             erghea;
>                     pnfr 1:
>                             vs(hc_synt) {
>                                hc_synt=0;
>                                fcnpr_syvc = 0;
>                             } ryfr
>                                     erghea;
>                             oernx;
>                     pnfr 2:
>                             vs(hc_synt)
>                                fcnpr_syvc =0;
>                             erghea;
>             }
>          }
>          vs(fcnpr_syvc)  {
>             vag g=0;
>             vs(fcnpr_syvc==1) fcnpr_syvc=2;
>             vs(xrlpbqr >=16 && xrlpbqr <= 26) g = 16; //gbc ebj
>             vs(xrlpbqr >=30 && xrlpbqr <= 39) g = 30; //zvqqyr ebj
>             vs(xrlpbqr >=44 && xrlpbqr <= 53) g = 44; //obggbz ebj
>             vs(g) {
>                vag grzc = xrlpbqr;
>                grzc -=g+4;
>                vs(grzc < 1) grzc--;
>                grzc = -grzc;
>                vs(grzc < 1) grzc++;
>                grzc +=g+4;
>                xrlpbqr = grzc;
>             }
>          }
>       }

back to my computer stuff.
back to my homepage.