Imagine that you change your keyboard layout. You have to spend time training your muscles to find the keys that you want to type, this is already hard enough.
But you will also have to spend time training your muscles to find the keys that you want to enter as part of shortcuts, which is ridiculous (you have usually chosen these keys because they are easy to reach, not because of their letter*).
Is there a way to have these key definitions not move around when you change your keyboard layout?
For example if I'm in azerty, and I want to learn qwerty, I would like to have beginning-of-line
remapped from C-a
to C-q
, so that it stays where it is on my keyboard (first key right of TAB
).
As I understand it, it is partially implemented through input methods, but it takes the opposite way: it changes the way emacs interprets input characters for text. But it won't work if you want to change your keyboard layout system-wide, for example.
I understand that there are lots of ways to define key bindings, but for example, I would deem acceptable a solution that would take care of all key bindings converted from human strings with the kbd
function.
*. It is not true for certain keys that are less often used. For example, the C-c
map of most major modes use key names that are easy to remember, rather than easy to reach. As a bonus question, it would be nice to be able to preserve (remap so that the physical key doesn't move) some keybindings and move (don't remap, the letter associated to the key doesn't change) some others. The user could select one option or the other by using two different functions instead of kbd
when defining his keybindings.