Bug 15727

Summary: RFE: Programmer Dvorak
Product: xkeyboard-config Reporter: Roland Kaufmann <rlndkfmn+freedesktop>
Component: GeneralAssignee: xkb
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: medium    
Version: unspecified   
Hardware: All   
OS: All   
URL: http://www.kaufmann.no/roland/dvorak
Whiteboard:
i915 platform: i915 features:
Attachments: Unified diff for symbols/us and rules/base.xml.in; apply with `patch -p0 < us-dvp.diff`

Description Roland Kaufmann 2008-04-26 12:08:41 UTC
Created attachment 16199 [details] [review]
Unified diff for symbols/us and rules/base.xml.in; apply with `patch -p0 < us-dvp.diff`

I submit the "Programmer Dvorak" keyboard layout for inclusion in xkeyboard-config, as I think that the user base of Xorg may contain a lot of people that would find it useful. It has served me personally for a decade as well as other people from four different continents. The current revision, 1.1, is based on feedback from users and is designed for a standard 101-keys keyboard.

I have tried to adhere to the rules specified at:
<http://www.freedesktop.org/wiki/Software/XKeyboardConfig/Rules>

Description of the layout:

Based on the Dvorak layout, since most keywords in programming languages are English words. Also, English is often the lingua franca for comments and documentation.

Most keyboards provide the numerical keypad for entry of longer numbers such as phone numbers or SSNs. (On laptops those are even amongst the main keys, accessible by a hardware Fn modifier!)

Symbols are much more used in program code than numbers. Thus, I have made the symbols the main characters of the number row, letting the digits be available through shift state, like the French keyboard layout. They are however affected by CAPS LOCK to enable entry of a multi-digit number, though.

Guidelines by which the Dvorak layout itself was devised were used to arrange the symbols:

* Most common symbols are closest to the strongest fingers
* Hand alternation between symbols and the most frequently
  typed letters before and after.
* Symbols that occur together are either adjacent or far apart.

To determine the placement, I quantitatively analyzed actual program code from C-style languages, performing only personal judgement in fringe cases where the statistics were ambigious.

level3(ralt_switch) has not been included because the layout does not need dead keys, although it provides some for those that needs accented letters. I think it is better that those who want to use the right Alt to switch modes specify it with an explicit option.

Attached is a patch for the symbols/us and the rules/base.xml.in files, as it seems that the "us" serves as the default and the others as national variants. I have put the layout as the last of the Dvorak variants.

Shortname "dvp" stems from being the "p" (for programming) variant of the "dv" (for Dvorak) layout, and the historical name stuck. I would appreciate if it could keep the moniker. I reckon that new users will chose it from an interactive prompt using the display name, anyway.
Comment 1 Sergey V. Udaltsov 2008-04-29 13:51:57 UTC
This layout looks rather hackish to me. Are there many people who actually use it?
Comment 2 Roland Kaufmann 2008-04-30 11:11:42 UTC
Depends on your definition of "many".

Unfortunately I don't have any statistics over the number of downloads to provide nor does users register with me apart from occational emails regarding the installation procedure.

However, I find it surprisingly often referenced given that it has had virtually no marketing other than word of mouth and being reachable by search engines.

Of course I don't expect anecdotal evidence to carry much weight, but you could do a web search for the phrase "programmer dvorak" (disregarding my site and any posts made by me of course) to see if you are satisfied that its extensiveness of appeal is comparable to the other non-standardized layouts.

Does "hackish" refer to any particular trait, such as setting symbols to type ALPHABETIC to have them affected by Caps Lock, or that hackers are amongst its target audience? ;-)
Comment 3 Sergey V. Udaltsov 2008-04-30 11:24:32 UTC
I browsed around - it seems your variant is really used by some people. Ok, I'll put it in.

Please do not feel offended, the word "hackish" I use for variants which are used by 2-3 people, one of them is young hacker-author;)
Comment 4 Roland Kaufmann 2008-04-30 12:07:52 UTC
No offense taken. I am afraid that I can only wish for the label "young" nowadays... :-)

I originally created the layout completely for my personal consumption, but in addition put it up on the web site a couple of years ago in case anyone else would find it interesting.

It seems that there are more people out there who wish to touch-type their code. :-)
Comment 5 Sergey V. Udaltsov 2008-04-30 14:29:26 UTC
Committed!

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.