Bug 56998 - Support for the Workman Keyboard Layout (US)
Support for the Workman Keyboard Layout (US)
Status: RESOLVED FIXED
Product: xkeyboard-config
Classification: Unclassified
Component: General
unspecified
All All
: medium enhancement
Assigned To: xkb
http://www.workmanlayout.com/
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2012-11-12 00:32 UTC by Shawn Badger
Modified: 2015-03-10 10:55 UTC (History)
2 users (show)

See Also:
i915 platform:
i915 features:


Attachments
Xorg symbols for Workman layout (3.72 KB, application/octet-stream)
2012-11-12 00:32 UTC, Shawn Badger
Details
Workman-P (programmer Workman) layout (3.75 KB, application/octet-stream)
2012-11-13 18:19 UTC, Danyil Bohdan
Details
Colemak alternate characters shifting (4.51 KB, text/plain)
2012-11-19 05:15 UTC, David Norman
Details
Patch file to illustrate what I'm proposing different from what was apparently committed somewhere about shifting Colemak alternate keys to Workman locations. (5.11 KB, patch)
2012-11-19 05:18 UTC, David Norman
Details | Splinter Review
git patch against xkeyboard-config (5.42 KB, patch)
2012-11-19 14:00 UTC, David Norman
Details | Splinter Review
Break-out Workman to format more like US and Dvorak (8.50 KB, patch)
2012-11-19 21:47 UTC, David Norman
Details | Splinter Review
Break-out Workman to format more like US and Dvorak (8.53 KB, patch)
2012-11-19 21:59 UTC, David Norman
Details | Splinter Review
Break-out Workman to format more like US and Dvorak (9.15 KB, patch)
2012-11-19 22:21 UTC, David Norman
Details | Splinter Review

Note You need to log in before you can comment on or make changes to this bug.
Description Shawn Badger 2012-11-12 00:32:02 UTC
Created attachment 69923 [details]
Xorg symbols for Workman layout

The Workman Keyboard Layout was created a couple years ago by a gentleman that was struggling with hand/wrist pain and has proven to be a fantastic keyboard layout.  Currently it is a variant to the basic US layout. (See https://viralintrospection.wordpress.com/2010/09/06/a-different-philosophy-in-designing-keyboard-layouts/)

I and many others that use Linux daily would be very grateful if we could get the Workman Layout integrated upstream.  I am happy to do any/all of the work involved.  I have attached the official layout mappings for Xorg in this report.
Comment 1 Sergey V. Udaltsov 2012-11-12 12:38:38 UTC
Very serious research indeed!

Could you please give some estimations - what would be the number of users of your layout? Do you know any people that would use it daily? Any ballpark figure would do.
Comment 2 Shawn Badger 2012-11-12 16:12:24 UTC
(In reply to comment #1)
> Very serious research indeed!
> 
> Could you please give some estimations - what would be the number of users
> of your layout? Do you know any people that would use it daily? Any ballpark
> figure would do.

Just to be clear, it's not "my" layout.  It was created by OJ Bucao.  I just want to make sure credit is given where it's due.

As with any free project, it is quite hard to estimate the actual number of users.  I suspect, given how new it is, there are probably a few hundred.  But I can tell you this...  I have researched keyboard layouts for years, and never has a layout impressed me this much.  This one is definitely a keeper.

I know of several people that use it daily, including myself.  And in my job, I often have to jump around on many different Linux computers and it would be most helpful if I could just type "setxkbmap workman" and get my work done.
Comment 3 Sergey V. Udaltsov 2012-11-12 16:21:12 UTC
Sorry for misunderstanding - I assumed it was your layout.

Anyway, thanks for the answer. Since the number of users is not so large, I will put your layout into "extras" section (base.extra.xml.in).

Of course, your layout will not be called "workman" - it will be variant "workman" of the "us" layout.
Comment 4 Shawn Badger 2012-11-12 17:14:19 UTC
Thank you Sergey.  Going into base.extra seems reasonable enough.  Although I have to admit, I don't understand the limitations of being in base.extra.  I assume this is to make it easier for users to select a more popular layout, without having to sift through a bunch of less-known layouts.  Do you know if this means users won't be able to select the layout from the graphical layout managers?
Comment 5 Sergey V. Udaltsov 2012-11-12 23:00:47 UTC
(In reply to comment #4)
> Thank you Sergey.  Going into base.extra seems reasonable enough.  Although
> I have to admit, I don't understand the limitations of being in base.extra. 
In GNOME (up to 3.4) "extras" are not shown by default. You have to configure some gsettings key to make them visible. But using setxkbmap it all should work just the same...
Comment 6 Sergey V. Udaltsov 2012-11-12 23:15:40 UTC
A couple more things.
1. I cannot commit xmodmap stuff. xkeyboard-config does not deal with it.
2. The license is specified as "public domain". xk-c is using xorg licence. Can I remove that "public domain" clause so the default licence would apply?
Comment 7 Shawn Badger 2012-11-12 23:31:34 UTC
(In reply to comment #6)
> A couple more things.
> 1. I cannot commit xmodmap stuff. xkeyboard-config does not deal with it.
> 2. The license is specified as "public domain". xk-c is using xorg licence.
> Can I remove that "public domain" clause so the default licence would apply?

You can ignore the xmodmap stuff.  

As for the license, OJ has specified that anyone can do whatever they want with it so long as a small attribution is made to his name.  Feel free to remove it without concern, just make sure to leave his name in there.
Comment 8 Shawn Badger 2012-11-12 23:36:11 UTC
Sergey, I think you should consider putting Workman into "base" instead of "extras".  It seems Workman is gaining popularity very fast, and there is even a well-known hardware vendor that includes a Workman version of their keyboards.  http://typematrix.com/

I may have low-balled the estimated number of users.  Like I said, very hard to gauge.
Comment 9 Sergey V. Udaltsov 2012-11-12 23:46:09 UTC
I googled around... Ok, let's have it in core file. Committed. Thanks for the interesting information!
Comment 10 Danyil Bohdan 2012-11-13 18:19:28 UTC
Created attachment 70016 [details]
Workman-P (programmer Workman) layout

First off, great to see Workman added to Xorg! I use the layout myself and have made workman-pkl for Windows.

The Workman layout comes in two versions, standard and programmer's (known as Workman-P). The latter version switches the numbers on the top-row number keys with their corresponding symbols and brackets with curly braces, which for its intended audience may well be one of the best features to get out-of-the-box (it was for me). Please include Workman-P with Xorg.
Comment 11 Sergey V. Udaltsov 2012-11-17 00:07:05 UTC
How popular is Workman-P variation, in your opinion? Comparing to the original Workman?
Comment 12 David Norman 2012-11-19 05:15:07 UTC
Created attachment 70240 [details]
Colemak alternate characters shifting

I just pinged OJ for the first time by email about 30 minutes go then saw this thread. I believe the xorg file proposed by OJ is an incomplete modification to the Colemak layout. If you take note of the 3rd and 4th columns in the Workman file proposed by OJ, they match the values of the Colemak layout and didn't shift along with the base Workman keys.

https://github.com/deekayen/workman/commit/0be064229e762f6d4771c5c4e7d03402b9bccfab#xorg/workman is basically the diff I think fixes the oversight, but I attached the final file since I don't (yet) know where the freedesktop.org VCS is to make a proper patch.

I'll be pinging OJ right after this to have him review this.
Comment 13 David Norman 2012-11-19 05:18:28 UTC
Created attachment 70241 [details] [review]
Patch file to illustrate what I'm proposing different from what was apparently committed somewhere about shifting Colemak alternate keys to Workman locations.
Comment 14 Sergey V. Udaltsov 2012-11-19 07:22:41 UTC
Please do not change assignee
Comment 15 Sergey V. Udaltsov 2012-11-19 07:24:21 UTC
And if possible, could you pls attach patches against the current xkeyboard-config git. It is impossible to apply your patch.
Comment 16 David Norman 2012-11-19 14:00:59 UTC
Created attachment 70253 [details] [review]
git patch against xkeyboard-config

I just meant to re-open the issue, not take it. Proper git patch proposed here.
Comment 17 Sergey V. Udaltsov 2012-11-19 14:03:26 UTC
David, thank you! Shawn, do you have comments regarding that patch?
Comment 18 Shawn Badger 2012-11-19 14:29:24 UTC
The patch looks correct to me.  Thanks for catching this David.  I just compared it against the Colemak layout, and sure enough they were incorrect.

I also appreciate the updated reference to the new workman website and the whitespace alignment fix.
Comment 19 Sergey V. Udaltsov 2012-11-19 14:32:18 UTC
I am happy. Will commit it. Just one minor thing. http://www.workmanlayout.com/ is blank :( Do we need that URL?
Comment 20 Shawn Badger 2012-11-19 14:35:42 UTC
What do you mean blank?  I click on that link and it takes me to the workman website.  I would like to leave it in if possible.  It is the long-term home for the workman layout.  I think there may be a few quirks with the new website.  I'll mention it to OJ.
Comment 21 Sergey V. Udaltsov 2012-11-19 14:38:16 UTC
My apologies. Perhaps it was something with my browser - it just shown some default page of the host provider. It is ok now. Will commit your patch.
Comment 22 Shawn Badger 2012-11-19 14:48:06 UTC
Thanks Sergey.  You're awesome, as usual. :)
Comment 23 David Norman 2012-11-19 14:52:59 UTC
http://www.workmanlayout.com/ had a recent DNS change. That's probably the issue.
Comment 24 David Norman 2012-11-19 20:33:58 UTC
I think my patch needs revision. I'm working out some of the finer details with Shawn and OJ.
Comment 25 Sergey V. Udaltsov 2012-11-19 20:37:04 UTC
NP! Take your time till January
Comment 26 David Norman 2012-11-19 21:47:42 UTC
Created attachment 70281 [details] [review]
Break-out Workman to format more like US and Dvorak

I broke out the Workman layout to be similar in format to the QWERTY and Dvorak layouts. OJ commented, "I intend the Workman Layout to be defined by the actual top level layout anyway and not the ALT keys," which means the international characters are not part of the spec, and were removed to match the QWERTY and Dvorak default layouts.

To follow the lead of QWERTY and Dvorak, and the guidance from OJ who outlined, "So I say we do Apple's approach for mac and Dvorak's approach for other OS's and keep things simple." means I split Workman ALT keys to model a shifted us(intl) in a separate config.
Comment 27 David Norman 2012-11-19 21:50:28 UTC
Comment on attachment 70281 [details] [review]
Break-out Workman to format more like US and Dvorak

Review of attachment 70281 [details] [review]:
-----------------------------------------------------------------

The more readable version of this patch is based at https://github.com/deekayen/workman/blob/master/xorg/workman.
Comment 28 David Norman 2012-11-19 21:59:11 UTC
Created attachment 70285 [details] [review]
Break-out Workman to format more like US and Dvorak

Added missing closing comment to alphanumeric section in workman-intl.
Comment 29 David Norman 2012-11-19 22:21:27 UTC
Created attachment 70287 [details] [review]
Break-out Workman to format more like US and Dvorak

This version adds the intl variant to the base xml file. Note, in this and the last two patches, I changed "English (US, Workman)" to just "English (Workman)" to follow in the lead of QWERTY, Dvorak, and Colemak's names.
Comment 30 Sergey V. Udaltsov 2012-11-19 23:12:43 UTC
Thanks, great, committed (sorry, committed first patch - then added base.xml.in)
Comment 31 Michishige Kaito 2013-06-05 16:42:20 UTC
I'd like to express my support for the inclusion of the workman-p variant.
Comment 32 Lisa 2015-03-10 10:55:32 UTC
Hey guys! I hope I could find some suggestion here from you. I'm now trying to switch to workman and I've been using http://www.typingstudy.com/en-us_workman-3/ to do that. Although the resource is really awesome and easy to use, I wanted to ask if there are other ways to do the transition as well? How did you do it?
Thanks! And I hope this thread is not dead yet :-)