On Fri, 9 Oct 2015 18:14:47 +1100 Erik Christiansen <dva...@internode.on.net> 
wrote:

> On 08.10.15 20:33, Gevisz wrote:
> > In this connection I have only one inconvenience connected with the facts 
> > that
> > 1) I usually have to use 3 keyboard layouts at the same time switching
> >    between them with a hot key,
> > 2) it is impossible to have a "direct hot key switch" to a certain
> >    keyboard layout in Linux world.
> 
> It is very risky to say that anything is impossible in linux;

Ok, next to impossible. ;)

> it usually turns out that there are at least three ways to do what
> one at first thinks impossible. My first reaction to your problem was
> to suggest several files to switch to ~/.Xmodmap, and then find out
> if a SIGHUP to X would make it re-read its config.

And what if not?

I may try this solution but I still have to google how to send
a SIGNUP signal to X and, moreover, to find out how to send it
in a quick and convenient way. Otherwise this way will not be
a solution at all.

Moreover, even before trying it, I suspect that this way of
achieving a "direct hot key keyboard switch" will cause X to
re-read its configuration from a file on a disk that can take
a noticeable time, which is not desired.

The true solution to this should be to keep all the needed
keyboard layouts in memory and only change the pointer to
the corresponding memory locations by a corresponding hot key.

I believe that such a solution should be provided in the X configuration
and realized in the corresponding window manager plugin but, as far as I know,
it is not. That is why I wrote that it is impossible in Linux (unless you
can re-write X, of course :).
 

> Much easier, by appearances, is Tony's suggestion. A quick look at
> ";h keymap", leading to ";h mbyte-keymap", looks very promising, not
> least since there are many ready-to-use mappings:
> 
> $ locate -r 'keymap.*vim' | wc -l
> 130
> 
> That, though, only maps in Vim, and only during text insertion.
> (which may be just what you want)

Yes, you are right, this workaround can be what I actually need.
Moreover, I have used a similar workaround when I used emacs about 15 years ago.

However, in ":h mbyte-keymap" is written that this workaround would interfere
with using "commands that take a single character argument, like f and r" what
is definitely a drawback.

Moreover, as far as I understand, in this workaround the keymap tables are
read anew from disk every time you hit <C-^>, so it, again, can take a 
noticeable
time, what is not good.

Otherwise, this suggestion looks interesting and I will try it a bit later.  

> If cross-application mapping is desired, though, then an alternative to
> ~/.Xmodmap is to just execute (several of) something like:
> 
> $ xmodmap -e 'keycode 91 = 0x2c'    # Change numeric pad '.' to ','
> 
> in a shell script, after using xev to elucidate the keycode and keysim of
> all the keys you want to remap.
> 
> For me, this reverts the above mapping:
> 
> $ xmodmap -e 'keycode 91 = 0x2e'    # Change numeric pad ',' to '.'

Thank you for pointing me to the xmodmap and xev utilities. I will consider
this solution as well but it would lead to execution of a long remapping script
that again should take a noticeable time comparing with just changing a pointer
to the corresponding keymap table in memory. 
 
> OK, that's three ways. Time to stop.
> 
> Erik
> 

-- 
-- 
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to vim_use+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to