Kotoistus -
VoidSymbol vai NoSymbol symbols/fi tiedostoon?
VoidSymbol vai NoSymbol symbols/fi tiedostossa?
Pitäisikö meidän käyttää VoidSymbol vai NoSymbol symbolia
merkitsemään merkkipaikkoja jotka eivät tuota mitään merkkiä?
Päätös täytyy tehdä koska jossakin on bugi joka on kuvattu alla. Se
liittyy xmodmap:in käyttöön.
Let's take an example of changing the "f" key to produce and "x" and an "X"
with AltGr and Shift+AltGr.
NoSymbol:
If a position is marked with NoSymbol, the key produces "f" and "F" when pressed
with AltGr and Shift+AltGr, respectively.
If we change the settings with "xmodmap -e 'f F x X x X', the values get changed
properly if we look them up with "xmodmap -pk." However, if we try pressing the key, an "f"
and "F" are produced, not the new values. This seems to be a bug.
VoidSymbol:
If we use VoidSymbol, the key doesn't produce anything when pressed with AltGr or Shift+AltGr.
If we change the settings with "xmodmap -e 'f F x X x X', the values get changed properly
both for "modmap -pk" and for keyboard output as well. I.e. if we press AltGr+f and Shift+AltGr+f,
we get an "x" and an "X," as we should.
Arguments in favor of NoSymbol:
-With NoSymbol, if AltGr is held down, the key produces the same character as it does
without modifiers ("f" in our case). With VoidSymbol, pressing the key with AltGr down
produces nothing.
Arguments in favor of VoidSymbol:
-xmodmap can be used to change keys set with VoidSymbol; NoSymbol makes the key
unreassignable with xmodmap.
-We can produce the same character as without modifiers by specifying it
explicitly. In our case we could specify f and F for all positions.
Päätös johon ollaan taipumassa:
-Ilmoitetaan bugista.
-Muutetaan NoSymbol sarakkeissa 3 ja 4 merkkeihin sarakkeissa 1 ja 2.
NoSymbol jätetty muihin sijainteihin joten mitään ei tulostu kun näitä painetaan.
(Tämän bugin raportoi Teemu Likonen.)
FOLLOWUP:
When using NoSymbol, the symbol list is "truncated" when NoSymbol is used.
Explained below through examples:
1. Not truncated:
key <AC04> { [ f, F, VoidSymbol, VoidSymbol ] };
2. Not truncated:
key <AC04> { [ f, F, NoSymbol, VoidSymbol ] };
3. Not truncated:
key <AC04> { [ f, F, VoidSymbol, NoSymbol ] };
4. Truncated:
key <AC04> { [ f, F, NoSymbol, NoSymbol ] };
5. Truncated:
key <AC04> { [ f, F, NoSymbol ] };
6. Truncated:
key <AC04> { [ f, F ] };
The problem is not with xmodmap, but in xlib's XChangeKeyboardMapping() or
XLookupString() function.
I wrote a little test app and set the values there with XChangeKeyboardMapping(), which is what
xmodmap does as well. I then read the values with XLookupString(), as xev does.
I got the same behavior as xmodmap and xev, so the problem is in these library functions,
not the utilities.
|