diff --git a/CNAME b/CNAME new file mode 100644 index 0000000..94f40ce --- /dev/null +++ b/CNAME @@ -0,0 +1 @@ +workmanlayout.org diff --git a/_config.yml b/_config.yml new file mode 100644 index 0000000..c424894 --- /dev/null +++ b/_config.yml @@ -0,0 +1,5 @@ +title: Workman Keyboard Layout +description: The Layout Designed with Hands in Mind +google_analytics: UA-93897390-1 +show_downloads: true +theme: jekyll-theme-slate diff --git a/_layouts/default.html b/_layouts/default.html new file mode 100644 index 0000000..5f6c81c --- /dev/null +++ b/_layouts/default.html @@ -0,0 +1,62 @@ + + + + + + + + + + + + {{ site.title | default: site.github.repository_name }} + + + + + +
+
+ View on GitHub + +

{{ site.title | default: site.github.repository_name }}

+

{{ site.description | default: site.github.project_tagline }}

+ + {% if site.show_downloads %} +
+ Download this project as a .zip file + Download this project as a tar.gz file +
+ {% endif %} +
+
+ + +
+
+ {{ content }} +
+
+ + + + + {% if site.google_analytics %} + + {% endif %} + + diff --git a/assets/css/style.scss b/assets/css/style.scss new file mode 100644 index 0000000..e62e392 --- /dev/null +++ b/assets/css/style.scss @@ -0,0 +1,18 @@ +--- +--- + +@import "jekyll-theme-slate"; + +body { + font-size: 1.2em; +} + +section img { + max-width: 100%; +} + +#main_content, +#header_wrap > header.inner, +#footer_wrap > footer.inner { + max-width: 780px; +} diff --git a/images/arrow-down.png b/images/arrow-down.png deleted file mode 100644 index 585b0bd..0000000 Binary files a/images/arrow-down.png and /dev/null differ diff --git a/images/colemak_layout_21.png b/images/colemak_layout_21.png new file mode 100644 index 0000000..f3f3fa3 Binary files /dev/null and b/images/colemak_layout_21.png differ diff --git a/images/copy-g49133.png b/images/copy-g49133.png new file mode 100644 index 0000000..df268cb Binary files /dev/null and b/images/copy-g49133.png differ diff --git a/images/don-quixote.png b/images/don-quixote.png new file mode 100644 index 0000000..8c29d50 Binary files /dev/null and b/images/don-quixote.png differ diff --git a/images/huck-finn1.png b/images/huck-finn1.png new file mode 100644 index 0000000..1c36cb8 Binary files /dev/null and b/images/huck-finn1.png differ diff --git a/images/keyboard_graded1.png b/images/keyboard_graded1.png new file mode 100644 index 0000000..0289793 Binary files /dev/null and b/images/keyboard_graded1.png differ diff --git a/images/keyboard_graded_grid.png b/images/keyboard_graded_grid.png new file mode 100644 index 0000000..c4ec1c6 Binary files /dev/null and b/images/keyboard_graded_grid.png differ diff --git a/images/moby-dick1.png b/images/moby-dick1.png new file mode 100644 index 0000000..982a57d Binary files /dev/null and b/images/moby-dick1.png differ diff --git a/images/octocat-small.png b/images/octocat-small.png deleted file mode 100644 index 66c2539..0000000 Binary files a/images/octocat-small.png and /dev/null differ diff --git a/images/sherlock-holmes1.png b/images/sherlock-holmes1.png new file mode 100644 index 0000000..7285f48 Binary files /dev/null and b/images/sherlock-holmes1.png differ diff --git a/images/therepublic1.png b/images/therepublic1.png new file mode 100644 index 0000000..57f0917 Binary files /dev/null and b/images/therepublic1.png differ diff --git a/images/tomsawyer1.png b/images/tomsawyer1.png new file mode 100644 index 0000000..eac10ec Binary files /dev/null and b/images/tomsawyer1.png differ diff --git a/images/total.png b/images/total.png new file mode 100644 index 0000000..12fac47 Binary files /dev/null and b/images/total.png differ diff --git a/images/usage-viz-grid2.png b/images/usage-viz-grid2.png new file mode 100644 index 0000000..7de0363 Binary files /dev/null and b/images/usage-viz-grid2.png differ diff --git a/images/warofworlds1.png b/images/warofworlds1.png new file mode 100644 index 0000000..8d64ef5 Binary files /dev/null and b/images/warofworlds1.png differ diff --git a/images/workman_layout.png b/images/workman_layout.png new file mode 100644 index 0000000..06211c4 Binary files /dev/null and b/images/workman_layout.png differ diff --git a/images/workman_p.png b/images/workman_p.png new file mode 100644 index 0000000..5422c92 Binary files /dev/null and b/images/workman_p.png differ diff --git a/index.html b/index.html deleted file mode 100644 index 40b18d6..0000000 --- a/index.html +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - Workman by deekayen - - - - - - - - -
-
-

Workman

-

The Layout Designed with Hands in Mind

- - - -

This project is maintained by deekayen

- - -
-
-

Workman keyboard layout

- -

Workman is a keyboard layout optimized for horizontal and vertical finger stretching. It accounts for wrist movement to the middle columns and the reaching and folding preferences of each finger. Workman was created and released by OJ Bucao on Labor Day in honor of all who type on keyboards for a living.

- -

Workman keyboard layout

- -

Layout evaluation

- -

In the circles of keyboard layouts, the Carpalx site is well-known for its evaluation of various keyboard layouts and its trumpeting of the Colemak layout as a premier contender. In the Carpalx study, with various, fancy calculations, it assigned QWERTY a base score of 3 and proceeded to compare other layouts, lower scores are better.

- -

The Carpalx study goes on to recommend other optimizations, supposedly scoring even better than Colemak. The clearest outcome from the study is that you can use almost any layout other than QWERTY and gain significant efficiencies in your finger travel. Most major operating systems have both Dvorak and Colemak built-in; the Carpalx model almost makes all others seem like a waste of time.

- -

Flawed Carpalx cap scoring

- -

Carpalx keyboard cost heatmap

- -

The Carpalx study takes a similar model to what is used in Workman, by scoring the press of each key, however it doesn't appear to take into account the length of each finger and its curling or stretching preferences. In QWERTY, the Q and E are scored the same. When I type, my whole palm moves when I type Q, but not when I type E.

- -

Making the change

- -

The proposed layout configuration files were originally spread all over the internet. The github repository will allow contributions to come from all over the Internet and merge back to a central project through pull requests.

- -

Workman-P is Workman for Programmers. In Workman-P, the top-row numbers and symbols have been switched. The original proposal also switched the backtick, brace and brackets, however that was dropped after some discussion about how helpful that change actually was to programmers of PHP, Bash, and Objective-C. Workman-P is great for programmers as well as system administrators.

- -

Getting the layout is as simple as downloading the zip file and following the README file instructions in the directory named with your operating system. As an alternative to installing the Mac keylayout bundle from this website, for Mac OS, there's another option - KeyRemap4MacBook, which includes the Workman layout, but is incompatible with the on-screen keyboard viewers.

- -

Todo list

- -

Other layouts

- - -
- -
- - - - - - \ No newline at end of file diff --git a/index.md b/index.md new file mode 100644 index 0000000..e5ab245 --- /dev/null +++ b/index.md @@ -0,0 +1,487 @@ + + + +# The Workman Keyboard Layout Philosophy + +*By OJ Bucao, September 6, 2010* + +1. [Introduction](#introduction) +1. [The Problem with Colemak](#the-problem-with-colemak) +1. [Back to the Drawing Board](#back-to-the-drawing-board) +1. [Introducing the Workman Keyboard Layout](#introducing-the-workman-keyboard-layout) +1. [Pros and Cons](#pros-and-cons) +1. [Key Usage Visualization](#key-usage-visualization) +1. [Tests Using Popular Books](#tests-using-popular-books) + +## Introduction + +Being a programmer, I type a lot and I suffer from Repetitive Strain Injury +(RSI) and tendonitis on my wrist. I’ve tried many different ways to help make +it better. One way to do this is to switch to a different keyboard layout +other than [QWERTY](http://en.wikipedia.org/wiki/QWERTY). QWERTY was +supposedly designed for typewriters to solve a very specific problem–to +keep the types from jamming against each other. The most frequently used keys +were placed apart from each other to prevent them from jamming. This results +in a non-ergonomic layout. However, there are alternatives. + +## Dvorak and Colemak + +The first alternative keyboard layout that came to mind is +[Dvorak](http://en.wikipedia.org/wiki/Dvorak_Simplified_Keyboard). It was +created in the 1930’s and promised to be vastly superior to QWERTY. +I went ahead and tried it out and soon enough after doing “ls -latr” on the +terminal, I had to shake my head and sadly walk away from it. I didn't like +the way Dvorak was laid out especially for the weak fingers of the right +hand. + +Then I stumbled upon a layout called [Colemak](http://colemak.com/), a +relatively new player in the game compared to QWERTY and Dvorak. +It was released in 2006 and boasted impressive metrics in terms of finger +travel, hand alternation, and same finger frequency. Everyone in the +alternative keyboard layout crowd seemed to be raving about it. +There are other layouts available namely Capewell, Arensito, Carpal X, etc. +After some research I decided on Colemak because of its metrics and probably +partly because it looked “normal” and “familiar”. The other ones either +looked too radical and different or they suffered from awkward placements +of some often used letters. Colemak looked the most promising and I was +excited to try it. + +So I went ahead and tried it and immediately it felt good. I noticed that +my fingers were not moving up and down as much and most of the time +they stayed on the home row. However after a few days of practicing on +K-touch, a nagging feeling started to creep in. Something felt rather +awkward. At first I thought that maybe I just wasn’t used to it yet and +it’s the result of the awkwardness in switching to a different layout. +So I kept on and while doing so, I tried to analyze how my hands were +moving and then the problem became clear to me. + + + +
*The Colemak keyboard layout* + +## The Problem with Colemak + +My initial excitement turned to disappointment when I realized that +even though my fingers were not moving up and down as much, they were +moving too much laterally. I realized that the main culprit was +the letter ‘H’ placed to the right of the letters ‘N’ and ‘E’. +‘N’ is where your index finger rests. Typing ‘HE’ forced the hand +to make a very unnatural sideways twisting motion from the wrist +and then back again. To give you an idea on why this could be +serious, consider these: + +* ‘HE’ is the second most frequent [bigram](http://en.wikipedia.org/wiki/Bigram) in the English language (‘TH’ is the first). +* It occurs in approximately 8,188 words. +* You type it approximately once every 26 keystrokes, or once in every 5 words. +* At 40wpm, you will make this movement 8 times in one minute. More if you are faster. + +Just ask yourself, how often do you type ‘the’, ‘these’, ‘them’, ‘when’, +and ‘where’, etc. on a day-to-day basis? It’s even worse when you’re +typing these words in the beginning of a sentence. **Try typing “The” +with the T capitalized on Colemak and hopefully you’ll see what I mean**. +Your right hand will move somewhat like this: you swing to the +right to get the SHIFT key with your pinky, then you swing back to the +left to get the letter ‘H’, and then you move to the right again to +get the letter ‘E’. All this is happening in a split second. That’s +quite a bit of lateral movement. Now I’m not a doctor, but multiplied +over a lifetime, making that sideways motion with the wrists *could* be +detrimental to people’s hands. It’s nothing personal against Colemak. +However, I consider this to be a major flaw in Colemak’s design and +I’m concerned that nobody is talking about it. And even if it’s proven +to be benign, I find it personally cumbersome. + +The letters ‘D’ and ‘H’ are relatively high frequency letters and placing +them in the middle of the keyboard forced the hands to make that +lateral twitching move a lot. This is by design since the purpose was +to optimize the home row keys for high frequency letters to reduce finger +travel, which is primarily caused by moving up and down above and +below the home row. Colemak by design, as well as Dvorak tries to +reduce use of the top and the bottom rows. Actually, when you think +about it, most of the other alternative layouts optimize for this very +thing. However, I believe that the way that alternative layouts focus on +just the home row for optimization is somewhat misguided. We should +optimize the keys inside the hand’s natural range of motion and not +just strictly the home row. + +Other letters that I think are cumbersome with Colemak are the letters +G, L, and O. I believe that by moving these letters, horizontal and +diagonal stretching could be made less and the load on the right +pinky could be reduced. + +## Improving Colemak + +I was really disappointed that Colemak was not the layout that I had +hoped it would be. I no longer wanted to use QWERTY. I didn’t like +Dvorak, and the other alternatives didn’t look very promising either – but +rather very alien. I really wanted Colemak to work however I can’t +live with the H-E movement and having to reach for D and H often. I +felt that it could be made better. + +I tried to see if there’s anything that could be done to solve this. +At first I ignorantly tried to replace ‘D’ and ‘H’ with other lower +frequency letters and moved them elsewhere still expecting the same +metrics. I used the awesome Keyboard Compare applet by John A. Maxwell +with modifications from Michael Capewell, and also Patrick Gillespie’s +amazing Keyboard Layout Analyzer. Long story short, I got pretty +crappy results. It soon dawned on me that just moving a few things +around isn’t going to cut it. It’s like playing with a water balloon. +If you squeeze on one side, it bulges on other sides. If I was going +to get the results that I’m looking for, I had to sit down and do some +thinking. + +## Back to the Drawing Board + +I decided to try to create a new keyboard layout based on these +ideas. I first came up with the following observations and assumptions: + +* Movement on the Keyboard + * The home keys (not necessarily the home row) are the place to be + * Vertical movement between the columns (reaching and folding) are not necessarily strenuous on the fingers and wrists because it is more natural for the fingers to fold or stretch vertically than horizontally + * Side-to-side movements are more strenuous for the wrists than up and down motion + * Diagonally reaching for the top and bottom middle keys are the worst +* Fingers + * Index Finger: very strong, short + * Middle Finger: strong, very long + * Ring Finger: weak, long + * Pinky Finger: weak, short + +Most of these seem obvious enough but it helps to jot them down +for clarity. I then came up with a set of principles to serve as +guidelines to help me with the design: + +* Prioritize the home keys +* If vertical folding and reaching cannot be prevented, prioritize reaching for longer fingers and folding for shorter fingers. +* Place more frequent keys under stronger fingers +* Common bigrams should be easy to type. + +Here’s a an illustration that I created grading the keys based on the +approximate amount of difficulty/strain in reaching or pressing them +with 1 being the easiest and 5 being the most strenuous. This grading +scale takes into consideration the position of the keys, the strength of +and length of the fingers and the staggered nature of the keyboard. + + + + +
*Keys graded based on strain/difficulty (Standard Keyboard)* + +Below is what it would be on an “matrix style” keyboard also +known as “grid” keyboards. + + + +
*Keys graded based on strain/difficulty (matrix style Keyboard)* + +## Introducing the Workman Keyboard Layout + +I call it the Workman Keyboard Layout in honor of all who type on +keyboards for a living. And considering that today is Labor Day, I think +it’s perfectly fitting. + + + +
*The Workman Keyboard Layout* + +In Workman-P, the top-row numbers and symbols have +been switched as well as the brace and brackets. It is great for +programmers as well as system administrators. + + + +
*Workman for Programmers* + +## Pros and Cons + +### Pros + +* It’s different from QWERTY +* **Comfortable, ergonomic, and efficient** — frequent keys are placed within the natural range of motion of the fingers +* **Reduced lateral movement of the fingers and wrists** +* **Very, very low overall finger travel** +* **Reduced load on the right pinky** compared to Dvorak and Colemak +* **More balanced left and right hand usage** compared to Dvorak and Colemak +* **High same hand utilization** and plenty of easy combos +* Common English bigrams are easy to type +* **ZXCV shortcuts are still accessible with one hand** +* Capslock is Backspace (Linux only) +* Shift+Capslock is Escape (Linux only) +* **Only 21 characters are different from QWERTY** as opposed to 31 for Dvorak +* Not as intimidating or “alien” looking as other alternatives +* Available for Windows, Mac OS, and Linux + +### Cons + +* It’s different from QWERTY +* C and V shortcuts are slightly shifted to the right and needs a little getting used to +* 21 letters are moved compared to Colemak’s 17 +* Left ring finger has slightly higher load compared to QWERTY, Dvorak, and Colemak. + +## Key Usage Visualization + +On Workman, the most often used keys are evenly and pleasantly distributed +inside the natural range of motion of the fingers. It’s even better +on a matrix style keyboard. + + + + +### % Usage of the Two Middle Columns + +* QWERTY: 22% +* Dvorak: 14% +* Colemak: 12% +* **Workman: 6%** + +Workman reduces overall usage of the two middle columns by about +50% over Colemak. This 50% reduction can be divided into two parts, +horizontal and diagonal index finger stretching. Workman reduces +horizontal finger stretching by 63%, and diagonal index finger +stretching by 27% over Colemak. This is because Workman +efficiently utilizes other easy to reach keys instead of just +placing them in the middle columns where they are difficult +to reach. Workman also reduces vertical index finger stretching +by 30% over Colemak by realizing that it’s easier for the index +finger to fold than reach upwards. + +Below are some tests using popular books taken from Project Gutenberg: + +## Tests Using Popular Books + +### Don Quixote (English) + + + + +#### Distance + +Looking at the first example. Colemak achieves the lowest overall +finger-travel distance against QWERTY and Dvorak at **30,352 meters**. +However, Workman is even lower at **29,656 meters** — a difference +of **696 meters**. It doesn’t sound like much, however if we convert +it to centimeters, that’s equal to **69,600 cm**. And considering +that the distance between keyboard keys is approximately 2 cm, +**typing on Workman is like typing 34,000 less keystrokes than +typing on Colemak. At 40 words per minute, that’s equivalent to +approximately 3 hours of work.** *For Dvorak, it’s 126,000 keystrokes +at 11 hours of work. And for QWERTY, it’s 1,369,800 keystrokes at 5 +days of work.* + +#### Same Finger Utilization (SFU) + +This shows how many times you had to do a double combo with one +of your fingers. For example, typing the word “fuel” using Workman +makes your right middle finger do a double combo because the letters +U and E are both typed using the right middle finger. Here, Workman +has an SFU of 2.185% which means that for every 46 keystrokes +(approx. 9 words), one of your 8 fingers does one double combo. +Compare that to QWERTY which is at every 20 keystrokes (4 words). +Colemak is at every 58 keystrokes or (11 words). Workman, on +average, has a higher SFU than Colemak… at +1%. **Some people +misunderstand and think that this somehow shows increased effort +or discomfort. It doesn’t. Effort is the same, because no matter +what, you’re still pressing the same number of keys.** Comfort +shouldn’t be a problem as long as the key is in a comfortable spot. +The only thing that SFU might potentially and theoretically +affect is speed because typing two letters with different +fingers is a little faster than typing them with the same finger. +However, I doubt that most people will have any problems with speed +at all using Workman especially considering that very many people +type very fast on QWERTY, of all layouts. + +In case you were wondering, the bulk of Workman’s SFU comes from +these combinations: **LY, OP, PO**, **CT**, and **UE**. All of +these combos are very comfortable to type with LY being less +comfortable because the movement from L to Y is diagonal. Some +people might say that this is a very bad thing but in reality it is +not. First, LY occurs at about 0.24% of the time on average. +That’s less than a quarter of one percent. To put it into perspective, +**for every 10,000 keystrokes, you will type LY only 24 times**. +At this rate, you will not even notice it. Even with this extra +0.24% considered, Colemak’s diagonal movements are still greater than +Workman’s. Second, even though it’s a diagonal motion, you’re not +really stretching that much because when you type L, you fold +your fingers (storing potential energy), then you release it to +type Y. The stretch is about the same as when you come from +home row. It’s even less when you use a matrix style keyboard. +Third, LY occurs at the end of the word almost all the +time. This is important and it makes a huge difference. +This means that when you type LY, you do it at the end of +the flow of a word as a finishing stroke instead of being +in the middle, which makes it less cumbersome. All in all, I +don’t think this is a big deal. + +#### Finger and Hand Percentages + +A better indicator of finger effort is the Finger Percentage. If +you look at the Finger Percentages for Workman, Colemak, and Dvorak, +nothing really stands out at first glance. However, **Workman +further reduces the load on the right pinky finger over Colemak +and Dvorak**. The right pinky, despite being one of the weakest, is +one of the most used finger on a standard keyboard due to the +location of the Enter, Shift, and Backspace keys, as well as +additional punctuation keys. Both Colemak and Dvorak have higher right +pinky percentage at 11% (253,850 keystrokes), while Workman is +only at 9% (207,696 keystrokes). **On Workman, your right pinky +finger just typed 46,155 less keystrokes than both Colemak and +Dvorak… that’s about 4 hours of work using ALL your fingers.** + +Below are the average percentages for each hand. The two analyzers +give slightly different results because they differ a little bit +in how they do the calculations. However you still get the idea. +QWERTY has about a 4% lean towards the left while Colemak leans to +the right by about 5%, and Dvorak, 7%. **Workman balances the +load between the left and right hands almost equally at 50%.** + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 Patrick’s AnalyzerJohn’s Analyzer
LayoutLeft Hand %Right Hand %Left Hand %Right Hand %
QWERTY54465342
Dvorak44574354
Colemak45564354
Workman50504948
+ +#### Same Hand Utilization (SHU) + +Dvorak consistently gets lower Same Hand Utilization than QWERTY, +Colemak, and Workman which are usually in the 30% range while +Dvorak is in the 20’s. Dvorak was supposedly designed for low SHU which +means that your hands alternate more frequently. Dvorak’s **20% SHU** +means that on average, you’re typing 8 keystrokes alternating between +your hands, and the next 2 keystrokes, all in one hand as a combo. +**30% SHU** then means on average, 7 keystrokes alternating and +then the next 3, all in one hand as a combo. **In designing Workman, +I preferred a high SHU (low alternation) over a low SHU (high alternation).** +I think high alternation is beneficial if you’re typing on +mechanical typewriters but not necessarily on modern keyboards. +On typewriters, it is very difficult to type combos with one hand +because each key needs a large amount of force to depress. You +actually rely more on the momentum of your arms and wrists to +provide that force so alternating between your two arms is +very helpful. However, this method of typing is inefficient on +the modern keyboard because modern keys are easy to press. +You are no longer reliant on each arm or wrist stroke to +depress a single key. Doing so is actually unnecessary and a +waste of energy. **It is much more efficient to ride the +momentum of a single arm or wrist stroke and type a combo rather +than just one key.** This way your arms and wrists potentially move +less while typing the same number of keys, effectively killing +several birds with one stone. In the beginning, this will not be +apparent. However, as you become more proficient and familiar with the +combos, you will be better able to utilize this advantage and type +bursts of familiar texts in one hand using fewer hand strokes. An +example of this is the word **OPERATION**. If you were to type +this in Dvorak, you could type it as **o-pe-r-a-t-io-n** where +each grouping is a hand stroke–a total of 7 hand strokes. +Whereas with Workman, you’d probably be able to type it as +**o-pe-rat-ion** using only 4 hand strokes. **Typing Don Quixote, +your wrists and arms potentially moved approximately 200,000 times +less on Workman than on Dvorak.** + +#### Usage of the Middle Columns +What these stats do not show is the usage of the middle two columns. +Colemak puts 280,850 keystrokes (12%) on the middle columns +versus Workman at 125,875 keystrokes (5%). **On Workman, +your index fingers (and potentially your wrists) moved +sideways 154,975 times less than on Colemak.** *Dvorak is at +308,533 (13%) and QWERTY is at 512,568 (22%).* + +### Adventures of Huckleberry Finn + + + +### Adventures of Tom Sawyer + + + +### War of the Worlds + + + +### Moby Dick + + + +### The Republic by Plato + + + +### The Adventures of Sherlock Holmes + + + +### All the Books Combined + + + +I encourage you to do your own testing and analysis. Note +that different keyboard testers will give different results as +to what layout is better depending on the criteria that they +are using to do their measurements and assessments. Since +Workman’s philosophy is unique, many testers will register +it inferior to others. + +To do your own testing, you can use Patrick Gillespie’s +[Keyboard Layout Analyzer](http://patorjk.com/keyboard-layout-analyzer/). + +You can grab full texts of public domain books here at +[Project Gutenberg](http://www.gutenberg.org/browse/scores/top). + +## Can I use this layout? + +Sure go ahead! Feel free to use it if you would like. Below is a +link to the implementation/installation files courtesy of +David Norman (deekayen). + +[Download the Workman Layout](https://github.com/workman-layout/Workman/zipball/master) + +**IMPORTANT:** The Workman Keyboard Layout is only a partial +solution. Even the best keyboard layout could not completely +remove the risk of typing injury. Typing in itself is an +unnatural and hazardous task and no keyboard layout could +prevent injury without proper precautions and common sense. +I suggest learning to type with good hand and finger posture, +taking frequent breaks, keeping your hands and wrists +warm while typing, and using a keyboard that meets your needs. +Our health, after all, is ultimately our personal responsibility. + +I hope that you’ll enjoy this layout and benefit from it. If +you like the Workman Layout, feel free to tell others about it. diff --git a/javascripts/scale.fix.js b/javascripts/scale.fix.js deleted file mode 100644 index 08716c0..0000000 --- a/javascripts/scale.fix.js +++ /dev/null @@ -1,20 +0,0 @@ -fixScale = function(doc) { - - var addEvent = 'addEventListener', - type = 'gesturestart', - qsa = 'querySelectorAll', - scales = [1, 1], - meta = qsa in doc ? doc[qsa]('meta[name=viewport]') : []; - - function fix() { - meta.content = 'width=device-width,minimum-scale=' + scales[0] + ',maximum-scale=' + scales[1]; - doc.removeEventListener(type, fix, true); - } - - if ((meta = meta[meta.length - 1]) && addEvent in doc) { - fix(); - scales = [.25, 1.6]; - doc[addEvent](type, fix, true); - } - -}; \ No newline at end of file diff --git a/params.json b/params.json deleted file mode 100644 index f14a535..0000000 --- a/params.json +++ /dev/null @@ -1 +0,0 @@ -{"note":"Don't delete this file! It's used internally to help with page regeneration.","tagline":"The Layout Designed with Hands in Mind","body":"# Workman keyboard layout\r\n\r\nWorkman is a keyboard layout optimized for horizontal and vertical finger stretching. It accounts for wrist movement to the middle columns and the reaching and folding preferences of each finger. Workman was created and released by [OJ Bucao](http://www.workmanlayout.com/) on Labor Day in honor of all who type on keyboards for a living.\r\n\r\n![Workman keyboard layout](https://raw.github.com/deekayen/workman/f37e7a0173ef9669905be8330d9e3671991c30e3/workman_layout.png)\r\n\r\n## Layout evaluation\r\n\r\nIn the circles of keyboard layouts, the [Carpalx](http://mkweb.bcgsc.ca/carpalx/) site is well-known for its evaluation of various keyboard layouts and its trumpeting of the [Colemak](http://colemak.com/) layout as a premier contender. In the [Carpalx study](http://mkweb.bcgsc.ca/carpalx/?keyboard_layouts), with various, fancy calculations, it assigned QWERTY a base score of 3 and proceeded to compare other layouts, lower scores are better.\r\n\r\n * [QWERTY](https://en.wikipedia.org/wiki/QWERTY): 3\r\n * [Dvorak](https://en.wikipedia.org/wiki/Dvorak_Simplified_Keyboard): 2.098\r\n * Workman: 1.993\r\n * [Capewell-Dvorak](http://www.michaelcapewell.com/projects/keyboard/index.htm#The_Capewell-Dvorak_Layout): 1.985\r\n * [Asset](http://millikeys.sourceforge.net/asset/): 1.894\r\n * Klausler: 1.867\r\n * [Colemak](http://colemak.com/): 1.842\r\n * [QGMLWY](http://mkweb.bcgsc.ca/carpalx/?full_optimization): 1.670\r\n\r\nThe Carpalx study goes on to recommend other optimizations, supposedly scoring even better than Colemak. The clearest outcome from the study is that you can use almost any layout other than QWERTY and gain significant efficiencies in your finger travel. Most major operating systems have both Dvorak and Colemak built-in; the Carpalx model almost makes all others seem like a waste of time.\r\n\r\n### Flawed Carpalx cap scoring\r\n\r\n![Carpalx keyboard cost heatmap](http://mkweb.bcgsc.ca/carpalx/images/keyboard-cost.png)\r\n\r\nThe Carpalx study takes a similar model to what is used in Workman, by scoring the press of each key, however it doesn't appear to take into account the length of each finger and its curling or stretching preferences. In QWERTY, the **Q and E are scored the same**. When I type, my whole palm moves when I type Q, but not when I type E.\r\n\r\n## Making the change\r\n\r\nThe proposed layout configuration files were originally spread all over the internet. The github repository will allow contributions to come from all over the Internet and merge back to a central project through pull requests.\r\n\r\nWorkman-P is Workman for Programmers. In Workman-P, the top-row numbers and symbols have been switched. The original proposal also switched the backtick, brace and brackets, however that was dropped after some discussion about how helpful that change actually was to programmers of PHP, Bash, and Objective-C. Workman-P is great for programmers as well as system administrators.\r\n\r\nGetting the layout is as simple as downloading the zip file and following the README file instructions in the directory named with your operating system. As an alternative to installing the Mac keylayout bundle from this website, for Mac OS, there's another option - [KeyRemap4MacBook](http://pqrs.org/macosx/keyremap4macbook/index.html.en), which includes the Workman layout, but is incompatible with the on-screen keyboard viewers.\r\n\r\n## Todo list\r\n * Generate Linux console layout file\r\n * Submit to Debian Linux\r\n * [Submitted](http://code.google.com/p/chromium-os/issues/detail?id=35963&thanks=35963&ts=1351797208) to Chromium OS, [related commits](http://git.chromium.org/gitweb/?p=chromium%2Fchromium.git&a=search&h=HEAD&st=commit&s=colemak)\r\n * Submit to DragonFlyBSD - [Colemak example](http://bugs.dragonflybsd.org/issues/1409), [Colemak commit](http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/e022c1bed05f70441d64131925f944b65e5c25a4)\r\n * Submit to NetBSD - [Colemak thread](http://forum.colemak.com/viewtopic.php?id=435)\r\n * Submit to OpenBSD\r\n * Submit to FreeBSD - [Colemak commits](http://svnweb.freebsd.org/base/head/share/syscons/keymaps/colemak.iso15.acc.kbd?view=log)\r\n * Get Workman accepted into Mac OS\r\n * Get Workman accepted into iOS\r\n * [Added](http://en.wikipedia.org/wiki/Keyboard_layout#Workman) Workman to [Wikipedia](https://en.wikipedia.org/wiki/Keyboard_layout)\r\n * [Added](http://www.urbandictionary.com/define.php?term=Workman) a definition in [Urban Dictionary](http://www.urbandictionary.com/)\r\n * [Added](https://bugs.freedesktop.org/show_bug.cgi?id=56998) to [xkeyboard-config](http://cgit.freedesktop.org/xkeyboard-config/commit/)\r\n * Add a download to [Softpedia](http://www.softpedia.com/)\r\n\r\n# Other layouts\r\n\r\n * [Norman](http://normanlayout.info)\r\n * [Asset](http://asset.deekayen.net)","google":"UA-19336115-8","name":"Workman"} \ No newline at end of file diff --git a/stylesheets/pygment_trac.css b/stylesheets/pygment_trac.css deleted file mode 100644 index c6a6452..0000000 --- a/stylesheets/pygment_trac.css +++ /dev/null @@ -1,69 +0,0 @@ -.highlight { background: #ffffff; } -.highlight .c { color: #999988; font-style: italic } /* Comment */ -.highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */ -.highlight .k { font-weight: bold } /* Keyword */ -.highlight .o { font-weight: bold } /* Operator */ -.highlight .cm { color: #999988; font-style: italic } /* Comment.Multiline */ -.highlight .cp { color: #999999; font-weight: bold } /* Comment.Preproc */ -.highlight .c1 { color: #999988; font-style: italic } /* Comment.Single */ -.highlight .cs { color: #999999; font-weight: bold; font-style: italic } /* Comment.Special */ -.highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */ -.highlight .gd .x { color: #000000; background-color: #ffaaaa } /* Generic.Deleted.Specific */ -.highlight .ge { font-style: italic } /* Generic.Emph */ -.highlight .gr { color: #aa0000 } /* Generic.Error */ -.highlight .gh { color: #999999 } /* Generic.Heading */ -.highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */ -.highlight .gi .x { color: #000000; background-color: #aaffaa } /* Generic.Inserted.Specific */ -.highlight .go { color: #888888 } /* Generic.Output */ -.highlight .gp { color: #555555 } /* Generic.Prompt */ -.highlight .gs { font-weight: bold } /* Generic.Strong */ -.highlight .gu { color: #800080; font-weight: bold; } /* Generic.Subheading */ -.highlight .gt { color: #aa0000 } /* Generic.Traceback */ -.highlight .kc { font-weight: bold } /* Keyword.Constant */ -.highlight .kd { font-weight: bold } /* Keyword.Declaration */ -.highlight .kn { font-weight: bold } /* Keyword.Namespace */ -.highlight .kp { font-weight: bold } /* Keyword.Pseudo */ -.highlight .kr { font-weight: bold } /* Keyword.Reserved */ -.highlight .kt { color: #445588; font-weight: bold } /* Keyword.Type */ -.highlight .m { color: #009999 } /* Literal.Number */ -.highlight .s { color: #d14 } /* Literal.String */ -.highlight .na { color: #008080 } /* Name.Attribute */ -.highlight .nb { color: #0086B3 } /* Name.Builtin */ -.highlight .nc { color: #445588; font-weight: bold } /* Name.Class */ -.highlight .no { color: #008080 } /* Name.Constant */ -.highlight .ni { color: #800080 } /* Name.Entity */ -.highlight .ne { color: #990000; font-weight: bold } /* Name.Exception */ -.highlight .nf { color: #990000; font-weight: bold } /* Name.Function */ -.highlight .nn { color: #555555 } /* Name.Namespace */ -.highlight .nt { color: #000080 } /* Name.Tag */ -.highlight .nv { color: #008080 } /* Name.Variable */ -.highlight .ow { font-weight: bold } /* Operator.Word */ -.highlight .w { color: #bbbbbb } /* Text.Whitespace */ -.highlight .mf { color: #009999 } /* Literal.Number.Float */ -.highlight .mh { color: #009999 } /* Literal.Number.Hex */ -.highlight .mi { color: #009999 } /* Literal.Number.Integer */ -.highlight .mo { color: #009999 } /* Literal.Number.Oct */ -.highlight .sb { color: #d14 } /* Literal.String.Backtick */ -.highlight .sc { color: #d14 } /* Literal.String.Char */ -.highlight .sd { color: #d14 } /* Literal.String.Doc */ -.highlight .s2 { color: #d14 } /* Literal.String.Double */ -.highlight .se { color: #d14 } /* Literal.String.Escape */ -.highlight .sh { color: #d14 } /* Literal.String.Heredoc */ -.highlight .si { color: #d14 } /* Literal.String.Interpol */ -.highlight .sx { color: #d14 } /* Literal.String.Other */ -.highlight .sr { color: #009926 } /* Literal.String.Regex */ -.highlight .s1 { color: #d14 } /* Literal.String.Single */ -.highlight .ss { color: #990073 } /* Literal.String.Symbol */ -.highlight .bp { color: #999999 } /* Name.Builtin.Pseudo */ -.highlight .vc { color: #008080 } /* Name.Variable.Class */ -.highlight .vg { color: #008080 } /* Name.Variable.Global */ -.highlight .vi { color: #008080 } /* Name.Variable.Instance */ -.highlight .il { color: #009999 } /* Literal.Number.Integer.Long */ - -.type-csharp .highlight .k { color: #0000FF } -.type-csharp .highlight .kt { color: #0000FF } -.type-csharp .highlight .nf { color: #000000; font-weight: normal } -.type-csharp .highlight .nc { color: #2B91AF } -.type-csharp .highlight .nn { color: #000000 } -.type-csharp .highlight .s { color: #A31515 } -.type-csharp .highlight .sc { color: #A31515 } diff --git a/stylesheets/styles.css b/stylesheets/styles.css deleted file mode 100644 index f14d9e4..0000000 --- a/stylesheets/styles.css +++ /dev/null @@ -1,413 +0,0 @@ -@import url(https://fonts.googleapis.com/css?family=Arvo:400,700,400italic); - -/* MeyerWeb Reset */ - -html, body, div, span, applet, object, iframe, -h1, h2, h3, h4, h5, h6, p, blockquote, pre, -a, abbr, acronym, address, big, cite, code, -del, dfn, em, img, ins, kbd, q, s, samp, -small, strike, strong, sub, sup, tt, var, -b, u, i, center, -dl, dt, dd, ol, ul, li, -fieldset, form, label, legend, -table, caption, tbody, tfoot, thead, tr, th, td, -article, aside, canvas, details, embed, -figure, figcaption, footer, header, hgroup, -menu, nav, output, ruby, section, summary, -time, mark, audio, video { - margin: 0; - padding: 0; - border: 0; - font: inherit; - vertical-align: baseline; -} - - -/* Base text styles */ - -body { - padding:10px 50px 0 0; - font-family:"Helvetica Neue", Helvetica, Arial, sans-serif; - font-size: 14px; - color: #232323; - background-color: #FBFAF7; - margin: 0; - line-height: 1.8em; - -webkit-font-smoothing: antialiased; - -} - -h1, h2, h3, h4, h5, h6 { - color:#232323; - margin:36px 0 10px; -} - -p, ul, ol, table, dl { - margin:0 0 22px; -} - -h1, h2, h3 { - font-family: Arvo, Monaco, serif; - line-height:1.3; - font-weight: normal; -} - -h1,h2, h3 { - display: block; - border-bottom: 1px solid #ccc; - padding-bottom: 5px; -} - -h1 { - font-size: 30px; -} - -h2 { - font-size: 24px; -} - -h3 { - font-size: 18px; -} - -h4, h5, h6 { - font-family: Arvo, Monaco, serif; - font-weight: 700; -} - -a { - color:#C30000; - font-weight:200; - text-decoration:none; -} - -a:hover { - text-decoration: underline; -} - -a small { - font-size: 12px; -} - -em { - font-style: italic; -} - -strong { - font-weight:700; -} - -ul li { - list-style: inside; - padding-left: 25px; -} - -ol li { - list-style: decimal inside; - padding-left: 20px; -} - -blockquote { - margin: 0; - padding: 0 0 0 20px; - font-style: italic; -} - -dl, dt, dd, dl p { - font-color: #444; -} - -dl dt { - font-weight: bold; -} - -dl dd { - padding-left: 20px; - font-style: italic; -} - -dl p { - padding-left: 20px; - font-style: italic; -} - -hr { - border:0; - background:#ccc; - height:1px; - margin:0 0 24px; -} - -/* Images */ - -img { - position: relative; - margin: 0 auto; - max-width: 650px; - padding: 5px; - margin: 10px 0 32px 0; - border: 1px solid #ccc; -} - - -/* Code blocks */ - -code, pre { - font-family: Monaco, "Bitstream Vera Sans Mono", "Lucida Console", Terminal, monospace; - color:#000; - font-size:14px; -} - -pre { - padding: 4px 12px; - background: #FDFEFB; - border-radius:4px; - border:1px solid #D7D8C8; - overflow: auto; - overflow-y: hidden; - margin-bottom: 32px; -} - - -/* Tables */ - -table { - width:100%; -} - -table { - border: 1px solid #ccc; - margin-bottom: 32px; - text-align: left; - } - -th { - font-family: 'Arvo', Helvetica, Arial, sans-serif; - font-size: 18px; - font-weight: normal; - padding: 10px; - background: #232323; - color: #FDFEFB; - } - -td { - padding: 10px; - background: #ccc; - } - - -/* Wrapper */ -.wrapper { - width:960px; -} - - -/* Header */ - -header { - background-color: #171717; - color: #FDFDFB; - width:170px; - float:left; - position:fixed; - border: 1px solid #000; - -webkit-border-top-right-radius: 4px; - -webkit-border-bottom-right-radius: 4px; - -moz-border-radius-topright: 4px; - -moz-border-radius-bottomright: 4px; - border-top-right-radius: 4px; - border-bottom-right-radius: 4px; - padding: 34px 25px 22px 50px; - margin: 30px 25px 0 0; - -webkit-font-smoothing: antialiased; -} - -p.header { - font-size: 16px; -} - -h1.header { - font-family: Arvo, sans-serif; - font-size: 30px; - font-weight: 300; - line-height: 1.3em; - border-bottom: none; - margin-top: 0; -} - - -h1.header, a.header, a.name, header a{ - color: #fff; -} - -a.header { - text-decoration: underline; -} - -a.name { - white-space: nowrap; -} - -header ul { - list-style:none; - padding:0; -} - -header li { - list-style-type: none; - width:132px; - height:15px; - margin-bottom: 12px; - line-height: 1em; - padding: 6px 6px 6px 7px; - - background: #AF0011; - background: -moz-linear-gradient(top, #AF0011 0%, #820011 100%); - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#f8f8f8), color-stop(100%,#dddddd)); - background: -webkit-linear-gradient(top, #AF0011 0%,#820011 100%); - background: -o-linear-gradient(top, #AF0011 0%,#820011 100%); - background: -ms-linear-gradient(top, #AF0011 0%,#820011 100%); - background: linear-gradient(top, #AF0011 0%,#820011 100%); - - border-radius:4px; - border:1px solid #0D0D0D; - - -webkit-box-shadow: inset 0px 1px 1px 0 rgba(233,2,38, 1); - box-shadow: inset 0px 1px 1px 0 rgba(233,2,38, 1); - -} - -header li:hover { - background: #C3001D; - background: -moz-linear-gradient(top, #C3001D 0%, #950119 100%); - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#f8f8f8), color-stop(100%,#dddddd)); - background: -webkit-linear-gradient(top, #C3001D 0%,#950119 100%); - background: -o-linear-gradient(top, #C3001D 0%,#950119 100%); - background: -ms-linear-gradient(top, #C3001D 0%,#950119 100%); - background: linear-gradient(top, #C3001D 0%,#950119 100%); -} - -a.buttons { - -webkit-font-smoothing: antialiased; - background: url(../images/arrow-down.png) no-repeat; - font-weight: normal; - text-shadow: rgba(0, 0, 0, 0.4) 0 -1px 0; - padding: 2px 2px 2px 22px; - height: 30px; -} - -a.github { - background: url(../images/octocat-small.png) no-repeat 1px; -} - -a.buttons:hover { - color: #fff; - text-decoration: none; -} - - -/* Section - for main page content */ - -section { - width:650px; - float:right; - padding-bottom:50px; -} - - -/* Footer */ - -footer { - width:170px; - float:left; - position:fixed; - bottom:10px; - padding-left: 50px; -} - -@media print, screen and (max-width: 960px) { - - div.wrapper { - width:auto; - margin:0; - } - - header, section, footer { - float:none; - position:static; - width:auto; - } - - footer { - border-top: 1px solid #ccc; - margin:0 84px 0 50px; - padding:0; - } - - header { - padding-right:320px; - } - - section { - padding:20px 84px 20px 50px; - margin:0 0 20px; - } - - header a small { - display:inline; - } - - header ul { - position:absolute; - right:130px; - top:84px; - } -} - -@media print, screen and (max-width: 720px) { - body { - word-wrap:break-word; - } - - header { - padding:10px 20px 0; - margin-right: 0; - } - - section { - padding:10px 0 10px 20px; - margin:0 0 30px; - } - - footer { - margin: 0 0 0 30px; - } - - header ul, header p.view { - position:static; - } -} - -@media print, screen and (max-width: 480px) { - - header ul li.download { - display:none; - } - - footer { - margin: 0 0 0 20px; - } - - footer a{ - display:block; - } - -} - -@media print { - body { - padding:0.4in; - font-size:12pt; - color:#444; - } -} \ No newline at end of file