On 2008-05-27 09:45 +0000, Tuomo Valkonen wrote:
> On further inspection, standard Mode_Switch also seems to 
> set the state mask 0x2000, but it is typically non-locking,
> so there's no problem. We certainly should not ignore 
> a non-locking Mode_Switch bit (typically AltGr in non-braindead
> xmodmap user-customisable keymaps). Perhaps the only solution
> is configurability of locking mods. (Or does Xkb offer that
> info? In any case I CBA.)

Another strange thing is that ISO_Level3_Shit does not set
a special "group" bit. Rather, to even remotely emulate appearing 
to work^1, it seems to depend on being mapped to _some_ modifier.
I suppose Xlib then uses Dirty Hacks to check whether modifiers
are mapped to that key specifically.

---

^1 My keymap depends heavily on remapping of AltGr, traditionally mapped
as Mode_Switch, configurable in the third and fourth fields of xmodmap
keycode lines. Xkb keymaps killed that user configurability, by switching
to ISO_Level3_Shit not accessible with xmodmap at that time -- and not
as conveniently as Mode_Switch even now, plus ISO_Level3_Shit+j and 
a few other keys also don't work at all. (No, it's not keyboard hardware
crappiness; the same keycombo as Mode_Switch+j works.) I therefore use 
a full custom .Xmodmap stored from pre-Xkb X. (Xkb isn't user-configurable;
its keymaps are essential program source code, as are fontconfig's XML 
crap and udev's properietary shit. They're not configuration files, 
they're source code meant for developers only.)

As for my keymap, as it might be of some interest:

The mostly useless caps lock has of course become a control key.
Tilde and caret have swapped the shift modifier from standard 
.fi layout. The _very_ conveniently placed altgr (=Mode_Switch) 
right of left shift has <>| (plain, shift, altgr) on it in the 
standard layout, whereas the standard altgr is right of spacebar,
which makes for very cumbersome combos for braces etc. found in 
the number row of the altgr map. That row of my altgr map along 
with the euro sign and the two accents on the right are standard
(in the X map; some of the keys are not printed on the layouts),
the rest are my additions. (The key left of right shift is n-dash,
quite undistinguishable from a short dash in a fixed-width font.)

plain 

§          1 2 3 4 5 6 7 8 9 0 + ´   bsp
tab         q w e r t y u i o p å ~  ent
ctrl        a s d f g h j k l ö ä '   er
lshift altgr z x c v b n m , . -  rshift

shift

½          ! " # ¤ % & / ( ) = ? `   bsp
tab         Q W E R T Y U I O P Å ^  ent
ctrl        A S D F G H J K L Ö Ä *   er
lshift altgr Z X C V B N M ; : _  rshift

altgr (= Mode_Switch)

¶          ¡ @ £ $ ½ ¥ { [ ] } \ ¸   bsp
tab             €         [ ]     ¨  ent
ctrl          < | >   { } ( ) \   ´   er
lshift altgr       ‘ ’ “ ”   … –  rshift


-- 
Tuomo

Reply via email to