My HalfKeyboard implementation

xHK – An Xlib halfkeyboard implementation

Earlier this year, I had an operation on my right elbow to remove some bone fragments. These were remaining from an accident in my teenage years – but had started to cause me some pain and grief.

The operation went well – but has a 6 month full recovery time, and for the first 6 weeks my right arm was pretty much immobile. A serious blocker to my coding.

There are it would seem some solutions to this. A few companies sell physical keyboards which provide one-handed typing functionality – but these are expensive. Regardless of the price, I have a keyboard already attached to my Laptop – and plugging in an external keyboard isn’t really feasible when sat on the sofa; So I need a better solution – one which uses my existing keyboard.

Now – again – there are a few software implementations of half-keyboard / mirrors using different methods, but not one for linux:

Alternative Software Solutions

My Solution

I write C code. I use linux, it seemed only reasonable that as a version didn’t exist in this space I would create it and open-source it for all to use (and improve)

You can get the sources from GitHub and build it yourself by following the instructions at my xhk page

Once the application is running – it is processing all your keypresses and decides if it should mirror them.

‘Backspace’ is mirrored with the ‘Tab’ key, whilst ‘Enter’ is mirrored with ‘Caps-Lock’

If you use this – do drop me a mail to let me know how you get on, and if you find any problems I’ll look into them to fix them.

Perhaps in the future I’ll pull together a GTK frontend for it, but it depends on how much use it gets.

About Kieran Bingham

A linux and open source software engineer
This entry was posted in Software. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>