From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Xah Lee Newsgroups: gmane.emacs.help Subject: Keyboard Hardware's Influence on Keyboard Shortcut Design Date: Wed, 16 Jun 2010 16:45:03 -0700 (PDT) Organization: http://groups.google.com Message-ID: References: <87wruco5yq.fsf@lola.goethe.zz> <87wrubfd8p.fsf@rapttech.com.au> <848w6ndwn0.fsf@cs.bham.ac.uk> <87d3vx5cku.fsf@gmail.com> <87bpbcrdk5.fsf@kuiper.lan.informatimago.com> <4C17FE36.30102@thadlabs.com> <4C180D6B.9020508@thadlabs.com> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Trace: dough.gmane.org 1291835948 984 80.91.229.12 (8 Dec 2010 19:19:08 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Wed, 8 Dec 2010 19:19:08 +0000 (UTC) To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Wed Dec 08 20:19:04 2010 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1PQPXb-0005R8-EN for geh-help-gnu-emacs@m.gmane.org; Wed, 08 Dec 2010 20:19:04 +0100 Original-Received: from localhost ([127.0.0.1]:52646 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PQPXa-000423-D2 for geh-help-gnu-emacs@m.gmane.org; Wed, 08 Dec 2010 14:19:02 -0500 Original-Path: usenet.stanford.edu!postnews.google.com!r5g2000prf.googlegroups.com!not-for-mail Original-Newsgroups: gnu.emacs.help,comp.emacs,comp.lang.lisp Original-Lines: 169 Original-NNTP-Posting-Host: 67.180.85.8 Original-X-Trace: posting.google.com 1276731903 30905 127.0.0.1 (16 Jun 2010 23:45:03 GMT) Original-X-Complaints-To: groups-abuse@google.com Original-NNTP-Posting-Date: Wed, 16 Jun 2010 23:45:03 +0000 (UTC) Complaints-To: groups-abuse@google.com Injection-Info: r5g2000prf.googlegroups.com; posting-host=67.180.85.8; posting-account=bRPKjQoAAACxZsR8_VPXCX27T2YcsyMA User-Agent: G2/1.0 X-HTTP-UserAgent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/533.4 (KHTML, like Gecko) Chrome/5.0.375.70 Safari/533.4, gzip(gfe) Original-Xref: usenet.stanford.edu gnu.emacs.help:179039 comp.emacs:100078 comp.lang.lisp:289277 X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.help:75870 Archived-At: Extended my post from this thread. =E2=80=A2 Keyboard Hardware's Influence on Keyboard Shortcut Design http://xahlee.org/emacs/keyboard_hardware_and_key_choices.html plain text version follows. ---------------------------------------------------------------------- Keyboard Hardware's Influence on Keyboard Shortcut Design Xah Lee, 2010-06-16 In my study of keyboarding in the past 20 years, i've noticed that the choices of many shortcuts in many apps are adopted to the many aspects of the keyboard hardware of the time in use by the community. Emacs's keybindings are not simply based on the first letter of commands, but the qwerty layout's key positions have significant influence on it. This also applies to the letter choice of unix's shell commands. Much of this influences of design are unconscious. -------------------------------------------------- Emacs's Meta and Control As a example, emacs's notion of =E2=80=9CMeta=E2=80=9D, and heavy use of Co= ntrol as primary modifier, and avoiding any Ctrl+Shift+=E2=80=B9letter=E2=80=BA in i= ts keyboard shortcuts, are caused by the lisp keyboard hardware and dumb terminals of 1980s. lisp-machine-keyboard-2-left Symbolics's lisp machine keyboard PN 365407 Rev C. full keyboard=E2=9D=90. right side close up=E2=9D=90. Photo by Joey Devilla. Used with permission. For detail, see: Why Emacs's Keyboard Shortcuts Are Painful. -------------------------------------------------- vi's Esc key and J K H I Unix vi's use of j k h i for cursor movement, and the choice of Esc key for mode switching, came from the keyboard it was developed on, the ADM3A terminal. terminal ADM3A vi The ADM3A terminal. Source terminal ADM3A keyboard layout The ADM3A terminal's keyboard layout. Source -------------------------------------------------- Gaming's W A S D The gaming's convention of W A S D for character movement keys, is also shaped by the PC keyboard's physical key layout used at the time. Most people need to use the right hand for the mouse for operating a gun or view, this leave the left hand for the less accuracy intensive task of controlling the character. This leaves the physical arrow keys, but those have some problems. The arrow keys are on the right side of the keyboard, making it awkward to use with left hand. So, some inverted T cluster of keys on the main section of the keyboard is chosen. But why not say E S D F keys? They are in the standard typing position. Instead, W A S D is more suitable, because W A S D is on the neighbor of Caps Lock, Tab, Shift, Control, Alt, that gamers needs to use for Firing, Shield, Jump, change weapon, etc. So, W A S D becomes the convention. Also note that the common layout is QWERTY. W A S D is inverted T on QWERTY layout. For those using the The Dvorak Keyboard Layout, the W A S D keys are scattered and is a problem. In fact, in the early days, many games do not respect user's choice of key layout in Operating System, nor does it provide ways for users to change the keys. Even today, some game software still have this problem, notably Second Life. (In the early days, say mid 1990s, Operating systems such as Windows hardly have a consistent keyboard layout API for programers) -------------------------------------------------- The X C V for Cut Copy Paste Another history is the convention of X C V keys for Cut Copy Paste. This came from Apple. Apple computer, in the late 1980s and early 1990s, popularized the undo, cut, copy, paste concepts, and in general the computer keyboard shortcuts concept. These keys are chosen because they are all adjacent and on the left side of the keyboard. Also in this set are Quit (q), Close (w), Select All (a), Save (s), Duplicate (d), and Undo (z). The only exceptions are Open (o) and Print (p) on the right side of keyboard. Q W A S D Z X C V All these keys have become universally the standard on about all applications on Windows, Mac, Linux today, possibly except the Z for undo and D for Duplicate. See: Cut, copy, and paste. -------------------------------------------------- Windows's PrtScn/SysRq for Screenshot On today's PC keyboard, you'll find quite a few relic keys. PrtScn/ SysRq, ScrLk, Pause/Break, Insert. They used to have meaningful purposes in the 1980 or earlier, some of them are separate keys. But computer hardware changes, and software changes, dramatically over the past 20 years. Keyboard itself does not change as fast. So, these keys became defunct. Because the key name PrtScn somewhat relates to screenshot capture, so Windows has chose it to be the key for saving screenshots. Similarly, the =E2=80=9CBackspace=E2=80=9D key, was chosen as = browser's back to previous page shortcut. Note that this key is labeled =E2=80=9CDele= te=E2=80=9D on Apple's keyboards, even they sent the exact same signal. In Apple's operating system, in Mac Classic of the 1990s or Mac OS X since early 2000s, this key was not used for browser's back function, only so in mid 2000s when Apple started to adopt many Windows's conventions. See also: Difference Between Apple and PC keyboards. -------------------------------------------------- Conclusion? If there's any conclusion, it is that many keyboard shortcut or hotkey choices are based on what is practical at the time. Issues of logical design, ergonomics, consistency, efficiency, are less important when it conflict with practicality. Some of these concept didn't even exist at the time, and some choices was good at the time but computer keyboard has changed long since. In retrospect, many of the choices are not the best today. For example, qwerty layout was practical at the time, but the Dvorak Layout was invented too late, when a convention was already established, and ergonomics isn't as big a concern at the time since not that many people need to use typewriters, but typing on computer is done by everyone today, and programing have become a field that's some million times more than the number of typists in the past. Emacs's primary modifier the Ctrl is much better at the Alt position on today's PC keyboards. =E2=80=9Cvi=E2=80=9D's Esc might be better today at PC keyboard's Alt or Ca= ps Lock. =E2=80=9Cvi=E2=80=9D's H J K L is still pretty good, but arguably better wi= th: I J K L The QWERTY really should be Dvorak today. The defunct keys, Insert, ScrLk, Pause, Break, really should be gone. There needs to be keys to switch to previous next app/window/tab, or toggle Show/Hide current window. The Num Lock on the number keypad also is a relic, from a time long past that keyboards doesn't have dedicate arrow keys and Page up/down Home/End etc keys. Xah =E2=88=91 http://xahlee.org/ =E2=98=84