On Tue, Mar 12, 2024 at 09:11:32AM +0000, Chris Green wrote:
> On Tue, Mar 12, 2024 at 02:25:59PM +1100, Brendan O'Dea wrote:
> > On Tue, 12 Mar 2024 at 02:28, Chris Green <c...@isbd.net> wrote:
> > >
> > > If I comment out the line:-
> > >
> > >     keysym period = period rightcaret U25B6 NoSymbol
> > >
> > > then the > key works again in xvile.  However I really don't see why
> > > the above line breaks xvile, no other programs (or none I can find
> > > anyway) are affected in the same way.  The U25B6 character works in
> > > xvile as does 'period' (I'd really miss that one!).
> > 
> > Maybe try :
> > 
> >     keysym period = period greater U25B6 NoSymbol
> > 
> > On my machine, where I haven't remapped that key I get this:
> > 
> >   % xmodmap -pk | fgrep period
> >          60    0x002e (period) 0x003e (greater) 0x002e (period) 0x003e 
> > (greater)
> > 
> Yes, brilliant! Thank you.  It now works.
> 
> I don't know where I got rightcaret from.  It's always the most
> difficult bit when playing with character mapping, finding the right
> names.

xmodmap uses the names defined in the X keyboard map files.
Those start with a grid location, i.e., the "AB09" in this chunk:

    key <AB08> { [     comma,       less,      ccedilla,         Ccedilla ] };
    key <AB09> { [    period,    greater, dead_abovedot,       dead_caron ] };
    key <AB10> { [     slash,   question,  questiondown,        dead_hook ] };
    key <BKSL> { [ backslash,        bar,       notsign,        brokenbar ] };

The symbols match up with /usr/include/X11/keysymdef.h, which has a bunch
of non-character codes, plus ISO-8859-1 and its friends.  There's a nice
comment in the file which explains how it relates to Unicode.

Locations that didn't right nicely into a uniform grid have special names such
as "BKSL".

The names can differ according to the keyboard map.  You can get some insight
by seeing how they're used, e.g., in /usr/share/X11/xkb (Debian):

Looking for rightcaret, I see only a few references:

symbols/my:98:        key <AB08> { [    Arabic_comma, rightcaret            ] };
symbols/in:1581:    key <AB09> { [         U002E,          U0C19,     
rightcaret                  ] }; // . ఙ >
symbols/us:83:    key <TLDE> {        [ leftcaret,    rightcaret ]       };

The last is plausible, but see its definition:

partial alphanumeric_keys
xkb_symbols "ibm238l" {

    include "us(basic)"
    name[Group1]= "English (US, IBM Arabic 238_L)";

    key <AB08> {        [     comma,    comma      ]       };
    key <AB09> {        [    period,    period     ]       };
    key <BKSL> {        [ quoteleft,    asciitilde ]       };
    key <LSGT> {        [ backslash,    bar        ]       };
    key <TLDE> {        [ leftcaret,    rightcaret ]       };
};

That "ibm238l" looks odd - that's used in a few places:

rules/base.extras.xml:463:            <name>ibm238l</name>
rules/evdev.extras.xml:463:            <name>ibm238l</name>
symbols/sun_vndr/us:63: xkb_symbols "ibm238l" {
symbols/sun_vndr/us:64: include "us(ibm238l)"
symbols/us:74:xkb_symbols "ibm238l" {

and none of those seem plausible.  Perhaps this used a customized keyboard
map which was wiped out by an upgrade.

"greater" is easier to follow, there are more than 300 references, e.g.,

symbols/us:53:    key <AB09> {  [    period,    greater         ]       };
symbols/us:138:    key <AB09> { [    period,    greater, dead_abovedot,       
dead_caron ] };
symbols/us:194:  key <AB09> { [     period, greater,         dead_abovedot, 
dead_circumflex ] };
symbols/us:224:    key <AD03> { [      period,  greater, dead_abovedot, 
periodcentered  ] };
symbols/us:288:    key <AD03> { [    period,    greater, dead_abovedot,       
dead_caron ] };
symbols/us:352:    key <AD03> { [    period, greater, ecircumflex,   
periodcentered     ] };
symbols/us:403:    key <AD09> { [      period,  greater         ]       };
symbols/us:454:    key <AD04> { [      period,  greater         ]       };

When you use xmodmap, you're basically telling it to reinterpret one of those
table entries.  So... when you're puzzled, finding the relevant table can
help.

For amusement:

https://invisible-island.net/xterm/modified-keys.html

-- 
Thomas E. Dickey <dic...@invisible-island.net>
https://invisible-island.net

Attachment: signature.asc
Description: PGP signature

Reply via email to