From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.bugs Subject: bug#43830: keyboard layout handling incompatible with rest of the OS Date: Sun, 01 Nov 2020 17:11:58 +0200 Message-ID: <83y2jlf6wx.fsf@gnu.org> References: <87h7r78a5y.fsf@mail.linkov.net> <87imbn2iwm.fsf@mail.linkov.net> <87y2kisawy.fsf@mail.linkov.net> <83362qa073.fsf@gnu.org> <87blhdrhww.fsf@mail.linkov.net> <83362p85l3.fsf@gnu.org> <83y2jqcrvn.fsf@gnu.org> <87blghbjpn.fsf@mail.linkov.net> Mime-Version: 1.0 Content-Type: text/plain; charset=koi8-r Content-Transfer-Encoding: 8bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="35896"; mail-complaints-to="usenet@ciao.gmane.io" Cc: 43830@debbugs.gnu.org, pogonyshev@gmail.com To: Juri Linkov Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Sun Nov 01 16:13:15 2020 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kZF2h-0009ET-6S for geb-bug-gnu-emacs@m.gmane-mx.org; Sun, 01 Nov 2020 16:13:15 +0100 Original-Received: from localhost ([::1]:41966 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kZF2f-000064-Vj for geb-bug-gnu-emacs@m.gmane-mx.org; Sun, 01 Nov 2020 10:13:13 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:53970) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kZF2U-00005v-Vm for bug-gnu-emacs@gnu.org; Sun, 01 Nov 2020 10:13:03 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]:54823) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kZF2U-0005N6-MO for bug-gnu-emacs@gnu.org; Sun, 01 Nov 2020 10:13:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1kZF2U-0003Xb-Hk for bug-gnu-emacs@gnu.org; Sun, 01 Nov 2020 10:13:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 01 Nov 2020 15:13:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 43830 X-GNU-PR-Package: emacs Original-Received: via spool by 43830-submit@debbugs.gnu.org id=B43830.160424354113558 (code B ref 43830); Sun, 01 Nov 2020 15:13:02 +0000 Original-Received: (at 43830) by debbugs.gnu.org; 1 Nov 2020 15:12:21 +0000 Original-Received: from localhost ([127.0.0.1]:38135 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kZF1o-0003WZ-VK for submit@debbugs.gnu.org; Sun, 01 Nov 2020 10:12:21 -0500 Original-Received: from eggs.gnu.org ([209.51.188.92]:53776) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kZF1n-0003WN-4c for 43830@debbugs.gnu.org; Sun, 01 Nov 2020 10:12:19 -0500 Original-Received: from fencepost.gnu.org ([2001:470:142:3::e]:55744) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kZF1g-0005Ky-Vp; Sun, 01 Nov 2020 10:12:13 -0500 Original-Received: from [176.228.60.248] (port=2171 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1kZF1f-0003C7-A5; Sun, 01 Nov 2020 10:12:12 -0500 In-Reply-To: <87blghbjpn.fsf@mail.linkov.net> (message from Juri Linkov on Sun, 01 Nov 2020 09:53:08 +0200) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list 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-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:192398 Archived-At: > From: Juri Linkov > Cc: Eli Zaretskii , 43830@debbugs.gnu.org > Date: Sun, 01 Nov 2020 09:53:08 +0200 > > > The point is that the character is not enough, you need to know both > > the character and the physical key (you cannot reconstruct the key > > from the character alone). E.g. suppose I type 'Ê' in Russian layout. > > If it is a self-inserting command, character 'Ê' should be added to the > > active buffer. But if I'm typing a multikey binding, it should be > > interpreted as 'q' (it's the same physical key), so that e.g. 'C-Þ Ê' is > > translated to 'C-x q'. > > What is worse is that in a writable buffer, typing 'Ê' should insert > this character untranslated, but in the same buffer when it's in > read-only view mode, typing the same 'Ê' should translate it to 'q' > and quit the buffer with the View-quit command. When using reverse-im > with local-function-key-map, the Help buffer says: > > q (translated from Ê) runs the command View-quit. > > So the question is whether it's possible to do the same using > XkbTranslateKeyCode? The local-function-key-map is smart enough > to not translate self-inserting keys. Can code for XkbTranslateKeyCode > use the same condition to detect self-inserting keys? Why do you want XkbTranslateKeyCode to do this? why not the code in keyboard.c that reads the event queue and invokes commands? If we make both the key and the character available to keyboard.c, it should be able to figure out what is TRT in each situation, I think.