From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Juri Linkov Newsgroups: gmane.emacs.bugs Subject: bug#9751: 23.3; Alternative Keyboard Feature/Bug Date: Thu, 20 Oct 2011 09:29:54 +0300 Organization: JURTA Message-ID: <878vogmazh.fsf@mail.jurta.org> References: <675A64DA-C90A-4DBC-A3DB-C564A318B70F@cs.duke.edu> <0DC129AB-1830-4EED-A487-1C4CDCE4CB46@cs.duke.edu> <83sjmvjxps.fsf@gnu.org> <672DC73F-99F7-4CDC-86DA-318FCA8DEB70@cs.duke.edu> <87r528pllc.fsf@mail.jurta.org> 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 1319092928 9614 80.91.229.12 (20 Oct 2011 06:42:08 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Thu, 20 Oct 2011 06:42:08 +0000 (UTC) Cc: lekktu@gmail.com, 9751@debbugs.gnu.org, Nikos Pitsianis To: Stefan Monnier Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Thu Oct 20 08:42:04 2011 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([140.186.70.17]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1RGmKI-00017R-QO for geb-bug-gnu-emacs@m.gmane.org; Thu, 20 Oct 2011 08:42:02 +0200 Original-Received: from localhost ([::1]:39859 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RGmKI-0002rs-Ce for geb-bug-gnu-emacs@m.gmane.org; Thu, 20 Oct 2011 02:42:02 -0400 Original-Received: from eggs.gnu.org ([140.186.70.92]:47861) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RGmKC-0002rL-RK for bug-gnu-emacs@gnu.org; Thu, 20 Oct 2011 02:41:58 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RGmKB-0007Ye-OM for bug-gnu-emacs@gnu.org; Thu, 20 Oct 2011 02:41:56 -0400 Original-Received: from debbugs.gnu.org ([140.186.70.43]:56652) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RGmKB-0007YZ-KC for bug-gnu-emacs@gnu.org; Thu, 20 Oct 2011 02:41:55 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.69) (envelope-from ) id 1RGmLF-00016w-Ut for bug-gnu-emacs@gnu.org; Thu, 20 Oct 2011 02:43:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Juri Linkov Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 20 Oct 2011 06:43:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 9751 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 9751-submit@debbugs.gnu.org id=B9751.13190929374218 (code B ref 9751); Thu, 20 Oct 2011 06:43:01 +0000 Original-Received: (at 9751) by debbugs.gnu.org; 20 Oct 2011 06:42:17 +0000 Original-Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1RGmKW-00015z-Ps for submit@debbugs.gnu.org; Thu, 20 Oct 2011 02:42:17 -0400 Original-Received: from smarty.dreamhost.com ([208.113.175.8]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1RGmKR-00015o-6J for 9751@debbugs.gnu.org; Thu, 20 Oct 2011 02:42:12 -0400 Original-Received: from ps18281.dreamhostps.com (ps18281.dreamhost.com [69.163.218.105]) by smarty.dreamhost.com (Postfix) with ESMTP id 2F88A6E8093; Wed, 19 Oct 2011 23:41:03 -0700 (PDT) Original-Received: from localhost (ps18281.dreamhostps.com [69.163.218.105]) by ps18281.dreamhostps.com (Postfix) with ESMTP id B4106AAB4B5C; Wed, 19 Oct 2011 23:41:01 -0700 (PDT) In-Reply-To: (Stefan Monnier's message of "Wed, 19 Oct 2011 22:10:05 -0400") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.90 (x86_64-pc-linux-gnu) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list Resent-Date: Thu, 20 Oct 2011 02:43:01 -0400 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 2) X-Received-From: 140.186.70.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:52900 Archived-At: > I guess we can use function-key-map instead, tho. And `function-key-map' really works even for characters with no modifiers (for the value `nil' below): (let ((modifiers '(nil (control) (meta) (control meta))) (map '((?=CF=82 . ?w) (?=CE=B5 . ?e) (?=CF=81 . ?r) (?=CF=84 . ?t= ) (?=CF=85 . ?y) (?=CE=B8 . ?u) (?=CE=B9 . ?i) (?=CE=BF . ?o) (?=CF=80 . ?p= ) (?=CE=B1 . ?a) (?=CF=83 . ?s) (?=CE=B4 . ?d) (?=CF=86 . ?f) (?=CE=B3 . ?g= ) (?=CE=B7 . ?h) (?=CE=BE . ?j) (?=CE=BA . ?k) (?=CE=BB . ?l) (?=CE=B6 . ?z= ) (?=CF=87 . ?x) (?=CF=88 . ?c) (?=CF=89 . ?v) (?=CE=B2 . ?b) (?=CE=BD . ?n= ) (?=CE=BC . ?m) (?\; . ?q)))) (dolist (pair map) (dolist (mod modifiers) (define-key local-function-key-map (vector (append mod (list (car pair)))) (vector (append mod (list (cdr pair)))))))) So `C-=CF=87 =CE=B2' runs `switch-to-buffer' whereas self-inserting chara= cters are inserted as is, without translation. However, there is another problem. Single-key bindings don't work in mod= es where they are bound to other commands, like `v' (`dired-view-file') in D= ired, or `d' (`Info-directory') in Info. I see no better way than to translate single keys in such modes individua= lly: (let ((map '((?=CF=82 . ?w) (?=CE=B5 . ?e) (?=CF=81 . ?r) (?=CF=84 . ?t= ) (?=CF=85 . ?y) (?=CE=B8 . ?u) (?=CE=B9 . ?i) (?=CE=BF . ?o) (?=CF=80 . ?p= ) (?=CE=B1 . ?a) (?=CF=83 . ?s) (?=CE=B4 . ?d) (?=CF=86 . ?f) (?=CE=B3 . ?g= ) (?=CE=B7 . ?h) (?=CE=BE . ?j) (?=CE=BA . ?k) (?=CE=BB . ?l) (?=CE=B6 . ?z= ) (?=CF=87 . ?x) (?=CF=88 . ?c) (?=CF=89 . ?v) (?=CE=B2 . ?b) (?=CE=BD . ?n= ) (?=CE=BC . ?m) (?\; . ?q)))) (dolist (pair map) (define-key dired-mode-map (vector (car pair)) (vector (cdr pair))) (define-key Info-mode-map (vector (car pair)) (vector (cdr pair))) ;; and many other similar modes ... )) And then some single keys work, some don't. For example, typing a key that translates to `x' in Dired writes in the echo area: Keyboard macro terminated by a command ringing the bell