On 23-09-2003, at 19h 37'49", Golem3u wrote to rlug about "[rlug] no more xmodmap, now 
it's xkb"
> Negasind alta solutie la problema cu xmodmap si ctrl+alt+Fx decat chvt, si 
> descoperind pe deasupra ca nu mai pot folosi nici ctrl+alt++ si ctrl+alt+- 
> pentru schimbatul rezolutiei in X, m-am scarbit, mi-am luat inima in dinti 
> si m-am documentat cu privire la xkb.
> In mod clar un sistem mult mai performant (elastic) de mapare a tastaturii 
> decat xmodmap, din pacate dificultatea configurarii as zice ca a crescut 
> in proportie geometrica cu cresterea de utilitate fata de xmodmap.
> 
> In fine, dupa ceva sapaturi m-am prins cam ce linie de comanda ar trebui 
> folosita pentru a mapa tastatura cu setxkbmap (eu am folosit: setxkbmap 
> -rules xfree86 -model pc104 -layout ro -option 
> "lv3:lv3_winswitch,altwin:meta_alt" ) si cum trebuie configurat XF86Config 
> (eu am folosit:
>      Option     "XkbRules"      "xfree86"
>      Option     "XkbModel"      "pc104"
>      Option     "XkbLayout"     "ro"
> #    Option     "XkbVariant"    ""
>      Option     "XkbOptions"    "lv3:win_switch,altwin:meta_alt" )
> 
> Optiunea "lv3:win_switch" ii spune lui xkb sa mapeze diacriticele pe 
> tastele de windoze (ambele)+literele corespunzatoare (a,s,t,i,q). 
> Teoretic, optiunea "altwin:meta_alt" nici nu e necesara pentru a mapa 
> diacriticele pe tastele de windoze, insa daca nu cer lui xkb sa puna o 
> alta functie pe alt-uri, mapeaza diacriticele pe AltGr (care e varianta de 
> mapare default), desi eu ii spun sa le puna pe tastele de windoze.
> 
> Trecand peste aceasta problema, descopar ca desi reusesc sa pun 
> diacriticele pe tastele de windoze in loc de AltGr, treaba nu functioneaza 
> decat cu tasta de windoze din stanga, in timp ce cea din dreapta se 
> comporta ca si cum n-ar fi apasata. Ma benoclez indelung si fara rezultat 
> prin cele 8 (opt) fisiere de config ale lui xkb pana renunt la a mai 
> incerca sa mapez pe ambele taste direct din optiuni.
> 
> Si imi vine ideea sa conving xkb ca, de fapt, tastele RWIN (tasta windoze 
> din dreapta) si LWIN (cea din stanga) sunt una si aceeasi chestie, cu 
> scopul de a-l face sa reactioneze la fel indiferent pe care o apas (aflu 
> de pe net ca teoretic se poate, desi nu e recomandat).
> Fara sa reusesc sa gasesc pe vreundeva cum se face chestia asta, si 
> recurgand la the good old way of trial and error, am incercat sa fac 
> treaba manual, uitandu-ma cum asociaza semnalele de la tastatura codurilor 
> tastelor (chestia asta se face atat in xkb/geometry/pc cat si in 
> xkb/keycodes/xfree86, desi nu mi-e clar exact prin ce difera utilitatea 
> celor doua fisiere; in geometry/pc se retine si asezarea fizica a tastelor 
> , un feature care nu-mi dau seama la ce foloseste). Cea mai mare reusita 
> prin aceasta metoda a fost sa inversez LWIN cu RWIN, situatie in care nu 
> puteam folosi diacriticele decat cu tasta windoze din dreapta - hurrray:(.
> Exista si posibilitatea de a face alias-uri la codurile tastelor (ceva de 
> genul: alias <BKSP> = <BACKSPACE> ). Inutil sa mentionez ca nici varianta 
> "alias <RWIN> = <LWIN>" nu a avut vreun succes.

xkb sucs, xmodmap is the best!
> 
> Intrebarile mele:
> ^^^^^^^^^^^^^^^^^
> 
> 1. stie (sau descopera) cineva daca exista o configuratie naturala (din 
> XF86Config sau setxkbmap) a xkb cu ajutorul careia se pot mapa 
> diacriticele pe AMBELE taste de windoze?

> 
> 2. stie (sau se prinde) cineva ce trebuie facut pentru ca xkb sa vada LWIN 
> si RWIN ca aceeasi tasta (sau sa se comporte ca si cum)?
> 

Alege din astea:

    key <LWIN> { [ Mode_switch ] };
    key <RWIN> { [ Mode_switch ] };

    modifier_map Mod3 { Mode_switch };

    modifier_map Mod1   { Meta_L, Meta_R };
    modifier_map Mod4   { Alt_L,  Alt_R  };

Astea le ai deja in fisierul ro, daca e cel facut de Mi�u Moldovan.
(La mine este: /etc/X11/xkb/symbols/ro.)

Daca nu-ti merge cu fisierul asta ori nu ai pc104, ori ai ceva care iti
redefineste Meta_R in altceva. Vezi ca la pc104 ai intre Alt_R si Ctrl_R
doua taste: Meta_R si Menu.

Mugurel


-- Attached file included as plaintext by Ecartis --

// symbols definition for a very simple Romanian Keyboard layout.
//
// We basically override some modifier_keys so that using the Right Alt
// and the corresponing letter we are able to generate the romanian characters
//
// Created by Cristian Gafton, <[EMAIL PROTECTED]> (C) 2000
// Modified by Mi�u Moldovan, <[EMAIL PROTECTED]> (C) 2001
// 
// $XFree86: xc/programs/xkbcomp/symbols/ro,v 3.1.6.1 2001/05/23 18:32:19 dawes Exp $

partial hidden alphanumeric_keys modifier_keys
xkb_symbols "basic" {
    name[Group1]= "Romanian";

    key <AD01> { [], [ acircumflex,     Acircumflex     ] };
    key <AC01> { [], [ abreve,          Abreve          ] };   
    key <AC02> { [], [ scedilla,        Scedilla        ] };
    key <AD05> { [], [ tcedilla,        Tcedilla        ] };
    key <AD08> { [], [ icircumflex,     Icircumflex     ] };
};

default
xkb_symbols "pc101" {
    key <RALT> { [ Mode_switch,  Multi_key ] };

    include "ro(basic)"

    modifier_map Mod3 { Mode_switch };
};

xkb_symbols "pc104" {
    key <RALT> { [ Mode_switch ] };
    key <RWIN> { [ Multi_key ] };

    include "ro(basic)"

    modifier_map Mod3 { Mode_switch };
};

xkb_symbols "alt_is_meta" {
    key <LALT> {  [  Meta_L ]  };
    key <LWIN> {  [  Alt_L  ]  };

    include "ro(pc104)"

    // modifier mappings
    modifier_map Mod1   { Meta_L, Meta_R };
    modifier_map Mod4   { Alt_L,  Alt_R  };
};



--- 
Detalii despre listele noastre de mail: http://www.lug.ro/


Raspunde prin e-mail lui