From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Johan Andersson Newsgroups: gmane.emacs.help Subject: Re: Dvorak/Svorak in Emacs Date: Mon, 5 Oct 2009 07:57:06 +0000 Message-ID: <929ccd880910050057le755e8am3a70abbdd4583b02@mail.gmail.com> References: <929ccd880910030758ta1a6b7fye41ca55328d6b64e@mail.gmail.com> <20091004.003205.141180230.renaud@casenave-pere.fr> <929ccd880910031551p6aa01d81hae0bf57af6a81987@mail.gmail.com> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: multipart/alternative; boundary=00032555a0d2bf927804752b7539 X-Trace: ger.gmane.org 1254729473 26392 80.91.229.12 (5 Oct 2009 07:57:53 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Mon, 5 Oct 2009 07:57:53 +0000 (UTC) Cc: help-gnu-emacs@gnu.org To: "B. T. Raven" Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Mon Oct 05 09:57:47 2009 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.50) id 1MuiRz-0003B7-PI for geh-help-gnu-emacs@m.gmane.org; Mon, 05 Oct 2009 09:57:44 +0200 Original-Received: from localhost ([127.0.0.1]:44913 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MuiRz-0001ax-KH for geh-help-gnu-emacs@m.gmane.org; Mon, 05 Oct 2009 03:57:43 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MuiRY-0001aC-9F for help-gnu-emacs@gnu.org; Mon, 05 Oct 2009 03:57:16 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MuiRT-0001Y1-4l for help-gnu-emacs@gnu.org; Mon, 05 Oct 2009 03:57:15 -0400 Original-Received: from [199.232.76.173] (port=41574 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MuiRT-0001Xu-2C for help-gnu-emacs@gnu.org; Mon, 05 Oct 2009 03:57:11 -0400 Original-Received: from mx20.gnu.org ([199.232.41.8]:14106) by monty-python.gnu.org with esmtps (TLS-1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1MuiRS-0002av-Gw for help-gnu-emacs@gnu.org; Mon, 05 Oct 2009 03:57:10 -0400 Original-Received: from mail-bw0-f220.google.com ([209.85.218.220]) by mx20.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1MuiRR-0001rF-2d for help-gnu-emacs@gnu.org; Mon, 05 Oct 2009 03:57:09 -0400 Original-Received: by bwz20 with SMTP id 20so2345314bwz.42 for ; Mon, 05 Oct 2009 00:57:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:cc:content-type; bh=aDbSe82qaHi51fGA9wpE06yjVaSeEaPIX25gNEy88EQ=; b=fNxKzHyzOIR4SePOIk31R8jDZ9vyehv9W10Z/dh7qE2sFrb95+MTZmTXLCQy6W8dZS j5hovW2PMEfqB07CsMsEo5GQ3lVvQ5Acb5UQiCluhPZiQx/gVYvU9vDrQKsNzLhfTihd Fev4uYCZkuj5fHx+kfXNRRavrzQA0Ejn5wlno= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; b=KTX69JhhzTziq3JW+Kc0IBhf3yTJn5XcO9BYQ4yfz+QSEQd4JT0ZrNMIUxLc6ntjOU KrMuxCzMYYSqBM3iYVOqqV1hHU7nUoioGe1nW19r00T8g/e67vm49TUs8pqnUdTCPxZW zDm4GKLFGyGI6lsOzc4NDtjzpeQqrQ0i48tZg= Original-Received: by 10.204.10.20 with SMTP id n20mr3467646bkn.161.1254729426374; Mon, 05 Oct 2009 00:57:06 -0700 (PDT) In-Reply-To: X-detected-operating-system: by mx20.gnu.org: Error: This connection is not (no longer?) in the cache. X-detected-operating-system: by monty-python.gnu.org: GNU/Linux 2.6, seldom 2.4 (older, 4) 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:68675 Archived-At: --00032555a0d2bf927804752b7539 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Raven, looking at those movement keys, they are almost like Xah Lee's "ergonomic emacs keybindings". Xah Lee, looking through the dvorak lisp file you provided at your site, I think that I could really dig those bindings, with a few modifications. However, I was thinking about these bindings and the shell. How do you survive (if you use a shell outside of Emacs) that the shell C-a, C-e almos= t always means beginning and end of line? Of do you change them there aswell? On Sun, Oct 4, 2009 at 8:05 PM, B. T. Raven wrote: > If your reason for using Svorak is to accomplish both data and command > entry by touch typing, then the default cursor movement key bindings > aren't really feasable. The rest of Emacs default assignments can be > left as is, especially if the modifier keys are remapped using Keytweak > or Xmodmap*. You certainly don't want to mix qwerty and dvorak. The > keyboard should work the same in all apps, either at system level or per > user. > > The following works well for cursor movement on Dvorak and the other > voraks and mostly works for Firemacs too with a few collisions among > View, Edit, and Common settings: > > ;; Single char cursor movement on Dvorak layout > (global-set-key [(meta h)] 'backward-char) > (global-set-key [(meta n)] 'forward-char) > (global-set-key [(meta c)] 'previous-line) > (global-set-key [(meta t)] 'next-line) > > ;; upcased default bindings for h,n,c,t i.e Alt or Meta Shift > (global-set-key [(meta H)] 'mark-paragraph) > (global-set-key [(meta N)] 'next-buffer) > (global-set-key [(meta C)] 'capitalize-word) > (global-set-key [(meta T)] 'transpose-words) > > The following are adlibbed. Make them whatever you want: > > ;;substitute for stolen metakeychords > (global-set-key [(control n)] 'next-line-mark) > (global-set-key [(control p)] 'center-paragraph) > (global-set-key [(control b)] 'beginning-of-line-mark) > (global-set-key [(control f)] 'find-function-at-point) > (global-set-key [(shift control f)] 'find-variable-at-point) > > Although these are global, they are overridden in some contexts like > info, specialized modes, etc. So don't forget "backward, forward, next, > previous" mnemonics. A guru who is also an ergonomics expert should > probably incorporate all this in such a way that it can be made seamless > with the rest of Emacs. Then we could start teaching the 'voraks to the > young kids (exclusively). > > On Svorak, (=E5, =E4 and =F6) seem to be the only significant differences= from > Dvorak, at least as far as Emacs is concerned. Since these characters > don't occur in English, I produce them with an input method rather than > by a dedicated key. > > * Super, Alt, Ctl, Space, Ctl, Alt, Super, Hyper mod key layout works > well in Emacs for two-handed touch typing on 101-108 key keyboards. You > could also make Caps Lock into left Hyper if you think it's worth the > trouble. > > > Ed- > > p.s. a good way to practice Emacs keyboarding is with keywiz.el but it > will be a humbling experience for all but the most experienced > > > > Johan Andersson wrote: > > > > Thinking about it. The only thing I don't want to learn again are the > > movement keys. So I guess I could just rebind C-n, C-p, C-f, C-b, M-f > > and M-b. > > > > 2009/10/3 Johan Andersson > > > > > > I guess I could try that. But it does seems like a lot of time to > > get used to that. I mean, learning how to use C-n, C-f, etc... > > instead of using the arrows took quite some time. > > > > Lets say I want to keep the bindings at their current positions, ho= w > > would I go about that? Would I have to remap all bindings? I guess = I > > could check before each command is executed, what the command was. > > If it was a self-insert-command I would do nothing. Otherwise I > > would translate the binding to the dvorak layout, and the run the > > function. This would result in that the regular typing will be the > > dvorak way, but all other function calls would be mapped against > > qwerty. I guess no one has such code lying around? ;) > > > > 2009/10/3 Renaud Casenave-P=E9r=E9 > > > > > > Hi, > > > > I am a happy dvorak user myself and what I did was just use the > > new keybindings (like C-p becoming C-l) > > At first, you may think the bindings aren't really usable, but > > you will get used to it quite easily. > > Well, you'll have to use two hands to save a file or quit emacs= , > > but if you use dvorak (or svorak), I guess you keep your two > > hands on the keyboard, so it shouldn't be that much of a proble= m. > > > > So I suggest you give a chance to default bindings after > > switching X to Svorak. > > > > -- > > Renaud Casenave-P=E9r=E9 > > > > > > > --00032555a0d2bf927804752b7539 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Raven, looking at those movement keys, they are almost like Xah Lee's &= quot;ergonomic emacs keybindings".

Xah Lee, looking through th= e dvorak lisp file you provided at your site, I think that I could really d= ig those bindings, with a few modifications. However, I was thinking about = these bindings and the shell. How do you survive (if you use a shell outsid= e of Emacs) that the shell C-a, C-e almost always means beginning and end o= f line? Of do you change them there aswell?

On Sun, Oct 4, 2009 at 8:05 PM, B. T. Raven = <nihil@nihilo.net<= /a>> wrote:
If your reason for using Svorak is to accomplish both data and command
entry by touch typing, then the default cursor movement key bindings
aren't really feasable. The rest of Emacs default assignments can be left as is, especially if the modifier keys are remapped using Keytweak
or Xmodmap*. You certainly don't want to mix qwerty and dvorak. The
keyboard should work the same in all apps, either at system level or per user.

The following works well for cursor movement on Dvorak and the other
voraks and mostly works for Firemacs too with a few collisions among
View, Edit, and Common settings:

;; Single char cursor movement on Dvorak layout
(global-set-key [(meta h)] 'backward-char)
(global-set-key [(meta n)] 'forward-char)
(global-set-key [(meta c)] 'previous-line)
(global-set-key [(meta t)] 'next-line)

;; upcased default bindings for h,n,c,t i.e Alt or Meta Shift
(global-set-key [(meta H)] 'mark-paragraph)
(global-set-key [(meta N)] 'next-buffer)
(global-set-key [(meta C)] 'capitalize-word)
(global-set-key [(meta T)] 'transpose-words)

The following are adlibbed. Make them whatever you want:

;;substitute for stolen metakeychords
(global-set-key [(control n)] 'next-line-mark)
(global-set-key [(control p)] 'center-paragraph)
(global-set-key [(control b)] 'beginning-of-line-mark)
(global-set-key [(control f)] 'find-function-at-point)
(global-set-key [(shift control f)] 'find-variable-at-point)

Although these are global, they are overridden in some contexts like
info, specialized modes, etc. So don't forget "backward, forward, = next,
previous" mnemonics. A guru who is also an ergonomics expert should probably incorporate all this in such a way that it can be made seamless with the rest of Emacs. Then we could start teaching the 'voraks to the=
young kids (exclusively).

On Svorak, (=E5, =E4 and =F6) seem to be the only significant differences f= rom
Dvorak, at least as far as Emacs is concerned. Since these characters
don't occur in English, I produce them with an input method rather than=
by a dedicated key.

* Super, Alt, Ctl, Space, Ctl, Alt, Super, Hyper mod key layout works
well in Emacs for two-handed touch typing on 101-108 key keyboards. You
could also make Caps Lock into left Hyper if you think it's worth the trouble.


Ed-

p.s. a good way to practice Emacs keyboarding is with keywiz.el but it
will be a humbling experience for all but the most experienced



Johan Andersson wrote:


> Thinking about it. The only thing I don't want to learn again are = the
> movement keys. So I guess I could just rebind C-n, C-p, C-f, C-b, M-f<= br> > and M-b.
>
> <mailto:johan.rejee= p@gmail.com>>
>
> =A0 =A0 I guess I could try that. But it does seems like a lot of time= to
> =A0 =A0 get used to that. I mean, learning how to use C-n, C-f, etc...=
> =A0 =A0 instead of using the arrows took quite some time.
>
> =A0 =A0 Lets say I want to keep the bindings at their current position= s, how
> =A0 =A0 would I go about that? Would I have to remap all bindings? I g= uess I
> =A0 =A0 could check before each command is executed, what the command = was.
> =A0 =A0 If it was a self-insert-command I would do nothing. Otherwise = I
> =A0 =A0 would translate the binding to the dvorak layout, and the run = the
> =A0 =A0 function. This would result in that the regular typing will be= the
> =A0 =A0 dvorak way, but all other function calls would be mapped again= st
> =A0 =A0 qwerty. I guess no one has such code lying around? ;)
>
> =A0 =A0 2009/10/3 Renaud Casenave-P=E9r=E9 <renaud@casenave-pere.fr
> =A0 =A0 <mailto:re= naud@casenave-pere.fr>>
>
> =A0 =A0 =A0 =A0 Hi,
>
> =A0 =A0 =A0 =A0 I am a happy dvorak user myself and what I did was jus= t use the
> =A0 =A0 =A0 =A0 new keybindings (like C-p becoming C-l)
> =A0 =A0 =A0 =A0 At first, you may think the bindings aren't really= usable, but
> =A0 =A0 =A0 =A0 you will get used to it quite easily.
> =A0 =A0 =A0 =A0 Well, you'll have to use two hands to save a file = or quit emacs,
> =A0 =A0 =A0 =A0 but if you use dvorak (or svorak), I guess you keep yo= ur two
> =A0 =A0 =A0 =A0 hands on the keyboard, so it shouldn't be that muc= h of a problem.
>
> =A0 =A0 =A0 =A0 So I suggest you give a chance to default bindings aft= er
> =A0 =A0 =A0 =A0 switching X to Svorak.
>
> =A0 =A0 =A0 =A0 --
> =A0 =A0 =A0 =A0 Renaud Casenave-P=E9r=E9
>
>
>

--00032555a0d2bf927804752b7539--