Skip to Content

Sporax, an optimized keyboard layout

There is some controversy about whether using a non-qwerty keyboard layout is better or not. In my case, I was a fast qwerty typewriter. However,

  • punctuation marks, needed for programming, made me slow down, and
  • as I typed more and more, I started to feel some pain in my hands. I was aware of RSI, so I decided to switch layout.

This is the keyboard layout I use today (click to enlarge):

sporax keyboard layout

This keyboard layout consists of a spanish dvorak keyboard layout modified to have a fast access to unix/programming punctuation marks. So that I called it sporax = spanish + dvorak + unix.

Features

  • Access to spanish keys like acute accent and the spanish ñ.
  • Dvorak keyboard layout. It has its own problems, but same speed and less tired hands in the long run. I also switched the 'U' and 'I' keys.
  • Direct access to slash ('/'), backslash ('\') and brackets ('[',']').
  • Shift access (faster than AltGr access) to tilde ('~'), circumflex ('^'), and curly braces ('{','}').
  • No previous characters missing.

dvorak spanish keyboard (provided by X.org)

Installation

Optimizing your keyboard and making it available to linux is as easy as patching a few system files.

  1. First step is to design your layout, for instance in a piece of paper.
     
  2. Next step is to write it to a symbol file. I appended sporax keyboard layout to the 'es' symbol file, located in my system in /usr/share/X11/xkb/symbols/es. You can infer the syntax from the existing files. For sporax, you can download the resulting file from:
     
    http://github.com/esuarezsantana/sporax

     
  3. Last step is to add your layout to next files (syntax is straightforward):
    • /usr/share/X11/xkb/rules/base.lst
    • /usr/share/X11/xkb/rules/base.xml
    • /usr/share/X11/xkb/rules/evdev.lst
    • /usr/share/X11/xkb/rules/evdev.xml

    I provide some scripts in github that may help you to patch with your own copies.
     


  4. Restart your X11 server and you're done.
Syndicate content