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: Xah's Emacs + Keyboard Geeking, the Nth Episode 2012-03 Date: Tue, 27 Mar 2012 23:20:06 -0700 (PDT) Organization: http://groups.google.com Message-ID: <39ec680b-a005-4c13-83b6-e3c045c821ab@m10g2000pbk.googlegroups.com> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Trace: dough.gmane.org 1333398627 4377 80.91.229.3 (2 Apr 2012 20:30:27 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Mon, 2 Apr 2012 20:30:27 +0000 (UTC) To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Mon Apr 02 22:30:26 2012 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1SEntN-0004n3-0c for geh-help-gnu-emacs@m.gmane.org; Mon, 02 Apr 2012 22:30:21 +0200 Original-Received: from localhost ([::1]:40875 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SEntM-0004UT-9t for geh-help-gnu-emacs@m.gmane.org; Mon, 02 Apr 2012 16:30:20 -0400 Original-Path: usenet.stanford.edu!newsfeed.news.ucla.edu!nrc-news.nrc.ca!border3.nntp.dca.giganews.com!border1.nntp.dca.giganews.com!border4.nntp.dca.giganews.com!border2.nntp.dca.giganews.com!nntp.giganews.com!npeer01.iad.highwinds-media.com!news.highwinds-media.com!feed-me.highwinds-media.com!postnews.google.com!m10g2000pbk.googlegroups.com!not-for-mail Original-Newsgroups: gnu.emacs.help,comp.emacs Original-Lines: 114 Original-NNTP-Posting-Host: 76.126.112.84 Original-X-Trace: posting.google.com 1332915987 10477 127.0.0.1 (28 Mar 2012 06:26:27 GMT) Original-X-Complaints-To: groups-abuse@google.com Original-NNTP-Posting-Date: Wed, 28 Mar 2012 06:26:27 +0000 (UTC) Complaints-To: groups-abuse@google.com Injection-Info: m10g2000pbk.googlegroups.com; posting-host=76.126.112.84; posting-account=bRPKjQoAAACxZsR8_VPXCX27T2YcsyMA User-Agent: G2/1.0 X-HTTP-UserAgent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.83 Safari/535.11,gzip(gfe) X-Received-Bytes: 6233 Original-Xref: usenet.stanford.edu gnu.emacs.help:191849 comp.emacs:102350 X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Original-Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.help:84265 Archived-At: Xah's Emacs + Keyboard Geeking, the Nth Episode 2012-03 http://xahlee.org/kbd/keyboard_geeking_2012-03-27.html for your entertainment only. Plain text version follows. ------------------------------- Just spent ~4 hours and did major surgery on my keyboard system again. specifically, the change is this: Before, the =E3=80=90Menu+=E2=80=B9key=E2=80=BA=E3=80=91 combo insert vario= us Unicode chars, and Caps Lock does emacs's =E2=80=9Cexecute-extended-command=E2=80=9D (M-x). Now, th= e two are switched. Now the Menu key does =E2=80=9Cexecute-extended-command=E2=80=9D = (just like on Linux by default), and =E3=80=90Caps Lock =E2=80=B9key=E2=80=BA=E3=80=91= inserts Unicode chars (note it's a key sequence here, not combo.). Also, Esc now does emacs's cancel =E3=80=90Ctrl+g=E3=80=91. The mappings are done using AutoHotkey and emacs. Here's related references and tutorials: Windows Programing: AutoHotkey Example Scripts Emacs's Keybinding Layout ErgoEmacs Keybinding System-wide ErgoEmacs Keybinding for Windows, Mac, Bash Note that all my {F1, =E2=80=A6, F12} function keys are used up. All 15/17 keys on the numberpad are also used up (the exceptions are Num Lock and Enter). All 9 app launch special buttons on the keyboard are also used up. Some of these keys are used globally, some are app specific. If you have empty function keys, you should make use of it NOW! (=E2=9E=B2 Increase Productivity Using F1 =E2=80=A6 F12 Keys) here's a summery of my keyboard shortcut design principle. =E2=91=A0 the most fundamental principle: always bind the most frequent= ly used operation to the easiest key (Frequency must be determined by statical means, as much as possible. (habit clouds your judgement) (=E2=9E= =B2 Emacs's Command Frequency)). Over the years, i find that this principle out weight any other, by far. This is the single most important principle. =E2=91=A1 key-combinations (i.e. hold a modifier key and press another)= , should be completely abolished. wrote much about this already here: Keyboard Shortcut Design: Dedicated keys, Special Buttons, Extra Keys. for some reason, i've always loved keys, and efficiency. Got a Brother electric typewriter in ~1986. (First computer use is ~1990. My first computer is ~1991.) Was QWERTY typist. Switched to Dvorak ~1993. Wrote my own Dvorak layout for Mac OS using ResEdit, ~1993. Use QuicKeys from ~1992 to 2002, and had IJKL keys as cursor movement. First emacs use ~1998. Live in emacs starting 1999. From 1999 to 2005, i use default emacs keys, and use emacs in text terminals exclusively. Have always explored all keyboard shortcuts in every OS/App i've used. ErgoEmacs keybinding started in 2007. Starting in 2007, i got really heavy with keybinding design and spend hours every month, studying, thinking, researching, tweaking, keys. LOL. The experience is sometimes frustrating, because the keyboard itself is so badly designed (=E2=9E=B2 Keyboard Hardware Design Flaws), and then ALL the keybo= ard tools, counting emacs and {Windows, Mac, Linux}, all have quirks that doesn't let you do certain bindings. So, when thinking about optimal key placement, you have to consider lots aspects. (preferrably, you want your bindings to work on all OSes, and on all keyboards (e.g. some don't have Menu key or RWin key, then there's Difference Between Apple and PC keyboards.), and also generally compatible with existing conventions, minimize using advanced features of keymacro utils (because some key combo won't work in another OS).), and then muscle memory change is a pain. So far, i haven't explored much of Linux's keyboard system. Did spent a month on linux last year. The keyboarding issues there isn't roses. Here's 2 lines i added to my AutoHotkey: #IfWinActive ahk_class Emacs CapsLock::Send ^2 ; call Ctrl+2 Esc::Send ^g ; call C-g The =E3=80=90Ctrl+2=E3=80=91 in MY emacs customization is a prefix to comma= nds that insert unicode. See: xah_emacs_unicode_input.el. What Keyboard You Use and How Much You Type, Really? Note: when we talk about keybinding, keyboarding habit, etc, it's important to say what keyboard one actually use, and how much one really types (from stat of a keylog). Otherwise, there's a lot miscommunication in online forums. One person says X, another can't see how X would be good, and it turns out one is using laptop keyboard and another fancy Kinesis, etc. Also of interest is how much one really types. We often hear =E2=80=9CI sit= on computer 10 hours a day for n years, and i think the keybinding/ keyboard should be this or that way=E2=80=9D. We coders all sit in front of comp all day. I did a calculation from my keylog last year to see how much i really typed. I was surprised to find that i actually type only 17k keystrokes a day, and that's only about 70 minutes per day if we use 50 wpm. See: Keyboard Layout: Dvorak vs Colemak: is it Worthwhile to Improve the Dvorak Layout?. The keyboard i currently use is Microsoft Natural Multimedia keyboard. Xah