emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: not quite understanding input methods


From: Maxim Nikulin
Subject: Re: not quite understanding input methods
Date: Thu, 2 Sep 2021 19:00:16 +0700
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0

On 01/09/2021 14:43, Yuri Khan wrote:
My point (which some will find offensive) is that maybe one doesn’t
need to implement input methods in Emacs.
I like the idea to avoid input methods in Emacs and to switch keyboard 
layouts using XKB as in other applications when keycodes may be directly 
mapped to symbols. Unfortunately Emacs keymaps use current keyboard 
layout, not base one. E.g. when Russian layout active, key symbols for 
US locale should be checked. It is terribly inconvenient to switch 
layout before each shortcut. Control + Cyrillic S does not act as C-c 
despite it is the same key. That is why switching layouts outside of 
Emacs still leads to more inconvenience than input methods in Emacs.
It was discussed earlier: Keybindings in non-Latin layout
https://lists.gnu.org/archive/html/emacs-devel/2009-05/msg00031.html

Side note: some iBus input methods have quick way to disable input method, e.g. pressing and releasing Shift.
~15 years ago more Gtk applications suffered from a similar problem that 
Ctrl+C required namely Latin C, not Cyrillic S. Nowadays I can not name 
application where Ctrl is broken. For Alt+something the issue is that 
"something" is locale-dependent and may require switching to RU layout.
As to emacs, minor inconvenience: default layout switch Win+Space aka 
s-SPC aborts incremental search, so customization of key bindings is 
required. Other issues are significantly harder to overcome.
There is reverse-im package that can translate RU symbols back to US 
ones. Unfortunately it does not work with keystrokes like M-$ or C-c C-, 
(`org-insert-structure-template')
(quail-define-package "russian-computer" ; ...
(quail-define-rules ; ...
 ("," ?б) ; ...
 ("$" ?\;) ; ...
 ("?" ?,))

For shortcuts "," should be associated for particular physical key independently of active layout.
So it is necessary to ensure at the desktop level that keyboard layout 
is (almost) never switched for Emacs windows. Preferably the same 
shortcuts for layout switching should work for all applications, Emacs 
should not be an exception.
I have managed to achieve setup that *mostly* works. CapsLock and 
Shift+CapsLock select assigned layouts in Emacs and other applications, 
US layout is forced for Emacs windows. On the other hand I consider it 
too complex and hardly can recommend it since it is not really robust 
and has some drawbacks.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]