xmodmap

xmodmap

Post by Michae » Sat, 17 Aug 2002 01:05:36



Hello,

I am trying to make my linux support cyrillic writing. Unfortunately, I
encountered several difficulties, namely with the keyboard map. I did
not find an appropriate map such that both the cyrillic layout as well
as the latin one (swiss german) work correctly. Therefore I want to
write my own keyboard map. Unfortunately, I do not know a lot about
writing keyboard maps. How can I define a key to switch between cyrillic
and latin layout? I actually need to assign five different meanings to
certain keys, since the original layout uses the AltGr key for certain
symbols. Thus, I need the latin lower- and uppercase, the cyrillic
lower- and uppercase and some combinations with AltGr. How can I achieve
that? Are there any good tutorials treating the problem of writing
keyboard maps for xmodmap?

Thanks.

 
 
 

xmodmap

Post by Olexiy Avramchenk » Sat, 17 Aug 2002 16:20:24


Michael wrote:
>Hello,

>I am trying to make my linux support cyrillic writing. Unfortunately, I
>encountered several difficulties, namely with the keyboard map. I did
>not find an appropriate map such that both the cyrillic layout as well
>as the latin one (swiss german) work correctly. Therefore I want to
>write my own keyboard map. Unfortunately, I do not know a lot about
>writing keyboard maps. How can I define a key to switch between cyrillic
>and latin layout? I actually need to assign five different meanings to
>certain keys, since the original layout uses the AltGr key for certain
>symbols. Thus, I need the latin lower- and uppercase, the cyrillic
>lower- and uppercase and some combinations with AltGr. How can I achieve
>that? Are there any good tutorials treating the problem of writing
>keyboard maps for xmodmap?

>Thanks.

This is how I add koi-8 support:
1. Edit "/etc/X11/XF86Config-4" section "InputDevice" for keyboard
(look at "XF86Config-4" attachment):
Option "XkbLayout"     "ru_koi8"
Option "XkbOptions"    "grp:ctrl_shift_toggle"
2. Copy attachment "ru_koi8" to "/usr/X11R6/lib/X11/xkb/" .
3. Restart X and use Ctrl+Shift to switch between english and russian.
4. You can ensure that all works fine via 'xev' program (you might have
   your terminal missing koi-8 font or smth else).

In case you want another encoding just rename ru_koi8 to smth else
and edit "ru_koi8" file.

Olexiy

[ XF86Config-4 < 1K ]
# <skipped>

Section "InputDevice"
        Identifier  "Chicony KB-2971"
        Driver      "keyboard"
        Option      "XkbLayout"               "ru_koi8"
        Option      "XkbOptions"      "grp:ctrl_shift_toggle"
EndSection

# <skipped>

[ ru_koi8 4K ]
// Russian keyboard with koi8 encoding

partial default alphanumeric_keys
xkb_symbols "basic" {
    name[Group1]= "US/ASCII";
    name[Group2]= "Russian-koi8";

    key <TLDE> {  [           grave,      asciitilde      ],
                        [        sterling,   threesuperior      ]       };
    key <LSGT> {  [            less,         greater      ],
                        [          Agrave,          agrave      ]       };
    key <AD01> {  [               q,               Q      ],
                        [     Ecircumflex,     ecircumflex      ]       };
    key <AE01> {  [               1,          exclam      ],
                        [               1,          exclam      ]       };
    key <AB01> {  [               z,               Z      ],
                        [          Ntilde,          ntilde      ]       };
    key <AC02> {  [               s,               S      ],
                        [          Ugrave,          ugrave      ]       };
    key <AC01> {  [               a,               A      ],
                        [              AE,              ae      ]       };
    key <AD02> {  [               w,               W      ],
                        [          Atilde,          atilde      ]       };
    key <AE02> {  [               2,              at      ],
                        [               2,              at      ]       };
    key <AB03> {  [               c,               C      ],
                        [          Oacute,          oacute      ]       };
    key <AB02> {  [               x,               X      ],
                        [           THORN,           thorn      ]       };
    key <AC03> {  [               d,               D      ],
                        [        multiply,        division      ]       };
    key <AD03> {  [               e,               E      ],
                        [          Otilde,          otilde      ]       };
    key <AE04> {  [               4,          dollar      ],
                        [               4,        quotedbl      ]       };
    key <AE03> {  [               3,      numbersign      ],
                        [               3,      numbersign      ]       };
    key <AB04> {  [               v,               V      ],
                        [          Iacute,          iacute      ]       };
    key <AC04> {  [               f,               F      ],
                        [          Aacute,          aacute      ]       };
    key <AD05> {  [               t,               T      ],
                        [           Aring,           aring      ]       };
    key <AD04> {  [               r,               R      ],
                        [      Ediaeresis,      ediaeresis      ]       };
    key <AE05> {  [               5,         percent      ],
                        [               5,           colon      ]       };
    key <AB06> {  [               n,               N      ],
                        [     Ocircumflex,     ocircumflex      ]       };
    key <AB05> {  [               b,               B      ],
                        [          Eacute,          eacute      ]       };
    key <AC06> {  [               h,               H      ],
                        [          Ograve,          ograve      ]       };
    key <AC05> {  [               g,               G      ],
                        [             ETH,             eth      ]       };
    key <AD06> {  [               y,               Y      ],
                        [     Icircumflex,     icircumflex      ]       };
    key <AE06> {  [               6,     asciicircum      ],
                        [               6,           comma      ]       };
    key <AB07> {  [               m,               M      ],
                        [        Ooblique,          oslash      ]       };
    key <AC07> {  [               j,               J      ],
                        [      Idiaeresis,      idiaeresis      ]       };
    key <AD07> {  [               u,               U      ],
                        [        Ccedilla,        ccedilla      ]       };
    key <AE07> {  [               7,       ampersand      ],
                        [               7,          period      ]       };
    key <AE08> {  [               8,        asterisk      ],
                        [               8,       semicolon      ]       };
    key <AB08> {  [           comma,            less      ],
                        [     Acircumflex,     acircumflex      ]       };
    key <AC08> {  [               k,               K      ],
                        [          Igrave,          igrave      ]       };
    key <AD08> {  [               i,               I      ],
                        [     Ucircumflex,     ucircumflex      ]       };
    key <AD09> {  [               o,               O      ],
                        [          Yacute,          yacute      ]       };
    key <AE10> {  [               0,      parenright      ],
                        [               0,      parenright      ]       };
    key <AE09> {  [               9,       parenleft      ],
                        [               9,       parenleft      ]       };
    key <AB09> {  [          period,         greater      ],
                        [          Agrave,          agrave      ]       };
    key <AB10> {  [           slash,        question      ],
                        [           slash,        question      ]       };
    key <AC09> {  [               l,               L      ],
                        [      Adiaeresis,      adiaeresis      ]       };
    key <AC10> {  [       semicolon,           colon      ],
                        [      Odiaeresis,      odiaeresis      ]       };
    key <AD10> {  [               p,               P      ],
                        [          Uacute,          uacute      ]       };
    key <AE11> {  [           minus,      underscore      ],
                        [           minus,      underscore      ]       };
    key <AC11> {  [      apostrophe,        quotedbl      ],
                        [      Udiaeresis,      udiaeresis      ]       };
    key <AD11> {  [     bracketleft,       braceleft      ],
                        [          Egrave,          egrave      ]       };
    key <AE12> {  [           equal,            plus      ],
                        [           equal,            plus      ]       };
    key <AD12> {  [    bracketright,      braceright      ],
                        [          ssharp,      ydiaeresis      ]       };
    key <BKSL> {  [       backslash,             bar      ],
                        [       backslash,             bar      ]       };

    // End alphanumeric section

    // Begin modifier mappings

    modifier_map Shift  { Shift_L };
    modifier_map Lock   { Caps_Lock, ISO_Lock };
    modifier_map Control{ Control_L };
    modifier_map Mod3   { Mode_switch };

};

partial alphanumeric_keys
xkb_symbols "winkeys" {
    include "ru(basic)"
    key <AE04> {  [               4,          dollar      ],
                        [               4,       semicolon      ]       };
    key <AE03> {  [               3,      numbersign      ],
                        [               3,      numbersign      ]       };
    key <AE05> {  [               5,         percent      ],
                        [               5,         percent      ]       };
    key <AE06> {  [               6,     asciicircum      ],
                        [               6,           colon      ]       };
    key <AE07> {  [               7,       ampersand      ],
                        [               7,        question      ]       };
    key <AE08> {  [               8,        asterisk      ],
                        [               8,        asterisk      ]       };
    key <AB10> {  [           slash,        question      ],
                        [          period,           comma      ]       };
    key <BKSL> {  [       backslash,             bar      ],
                        [           slash,             bar      ]       };

- Show quoted text -

};


 
 
 

1. xmodmap for GlidePoint?

I'm running X11R6.1 with a GlidePoint trackpad set up in my X setup as the
Pointer...

If I do an xmodmap -pp, it shows correctly that I now have 4 buttons...

and Netscape is happy using the 4th buttton (tap) to do the right thing...

however, if I try to use xmodmap to map button 4 to one of the others, so I
can use tap as button 2, eg

xmodmap -e 'pointer = 1 2 3 2'

I get an error saying  

X Error of failed request: BadValue (integer parameter out of range for operation)
  Major opcode of failed request: 116 (X_SetPointerMapping)
  Value in failed request: 0x2
  Serial number of failed request:  10
  Current serial number in output stream:  10

...so it would seem xmodmap is a bit confused...

how do I do this?

thanks

2. AIX Mail

3. xmodmap and Latin-1

4. looking for sys. admin. in the bay area

5. xmodmap, AltGr and Swiss keyboard

6. Before showing ignorance, please read the text

7. Xmodmap.dk updated

8. how to set up javastations

9. Xmodmap help for Win95 keys

10. Win95 keys in .Xmodmap

11. xmodmap

12. Xmodmap: strange behaviour

13. xmodmap problems in AIX 3.2.2