3738 lines
72 KiB
Plaintext
3738 lines
72 KiB
Plaintext
How to setup international keyboard in X Window with Xmodmap and XKB
|
||
|
||
by Juraj Sipos, xvudpapc@savba.sk
|
||
|
||
How to setup international keyboard in Linux or Unix with Xmodmap and XKB
|
||
written by (c) Juraj Sipos. The Xmodmap is a file that XFree86 reads in order
|
||
to give you a keyboard layout. This solution will work for you in setting up
|
||
any international keyboard for (Debian, RedHat, Mandrake, CorelLinux) Linux,
|
||
FreeBSD, OpenBSD, NetBSD and possibly every Unix that uses XFree86. The
|
||
advantage of this howto is that it is not architecture specific and will work
|
||
on all other systems.
|
||
|
||
-----------------------------------------------------------------------------
|
||
Table of Contents
|
||
1. Introduction
|
||
1.1. Copyright
|
||
1.2. Revision history
|
||
1.3. Introduction
|
||
|
||
|
||
2. Setting up international keyboard in X Window System with Xmodmap and XKB
|
||
2.1. Quick start
|
||
|
||
|
||
3. How to do it: this experimental solution is a legacy issue - do not read
|
||
it if you use newer systems
|
||
3.1. Xmodmap theory and Xmodmap solution
|
||
3.2. Experimental .Xmodmap sample file for the Slovak language typewriter
|
||
layout
|
||
|
||
|
||
4. Xmodmap theory and Xmodmap solution
|
||
4.1. .Xmodmap sample file for the Slovak language typewriter layout
|
||
|
||
|
||
5. Character sets
|
||
5.1. ISO-8859-2 (ISO Latin2) character set
|
||
|
||
|
||
6. How this Xmodmap solution works on various systems
|
||
6.1. SuSE 6.4 and 7.0
|
||
6.2. SuSE 7.0 (Xfree86 3.3.6, KDE 1.x), SuSE 8.0
|
||
6.3. Mandrake Linux 7.2
|
||
6.4. Mandrake 8.1
|
||
6.5. RedHat 5.1, 5.2, 6.0, 6.1 and 6.2 (XFree86 3.3.6 and older)
|
||
6.6. RedHat 7.2, RedHat 8.0, Slackware 8.1
|
||
6.7. FreeBSD 3.1 and 3.2
|
||
6.8. FreeBSD 4.1, 4.2, 4.3, 4.4, 4.5
|
||
6.9. FreeBSD 4.6.
|
||
6.10. Corel Linux 1.0 and 1.1
|
||
|
||
|
||
7. ISO* specifications
|
||
8. Some national Xmodmap files
|
||
8.1. German
|
||
8.2. Hungarian
|
||
8.3. Czech
|
||
8.4. Polish
|
||
8.5. French
|
||
8.6. Croatian/Slovenian
|
||
8.7. Lithuanian keyboard (AZERTY layout)
|
||
8.8. Polish
|
||
|
||
|
||
9. Troubleshooting and some Xmodmap tips
|
||
9.1. Troubleshooting
|
||
9.2. Tips
|
||
|
||
|
||
10. Links
|
||
10.1. Other information on internationalization
|
||
10.2. Links to some non ISO8859-1 fonts
|
||
|
||
|
||
|
||
1. Introduction
|
||
|
||
1.1. Copyright
|
||
|
||
This documentation is free documentation; you can redistribute it and/or
|
||
modify it under the terms of the GNU General Public License as published by
|
||
the Free Software Foundation; either version 2 of the License, or (at your
|
||
option) any later version.
|
||
|
||
This documentation is distributed in the hope that it will be useful, but
|
||
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
||
details.
|
||
-----------------------------------------------------------------------------
|
||
|
||
1.2. Revision history
|
||
|
||
Revision History
|
||
Revision 1.6 2002-11-19
|
||
Some links added, info on newer Linux versions included, major formatting
|
||
changes
|
||
Revision 1.5 2001-12-03
|
||
Links on internationalization added, info on XKB, troubleshooting, info on
|
||
newer Linux versions, StarOffice 6
|
||
Revision 1.4 N/A
|
||
Correction of script for including X Window fonts to StarOffice 5.2
|
||
Revision 1.3 N/A
|
||
Minor corrections, spell checking and editation made, few more Xmodmap files
|
||
added; list of what all ISO8859* specifications mean
|
||
Revision 1.2 N/A
|
||
Completely rebuilt, added the possibility to force the system to read
|
||
Xmodmap; some national Xmodmap files added, more information included on
|
||
building up the standard Xmodmap files
|
||
Revision 1.1 N/A
|
||
Added copyright information and slight modifications pertaining to newer
|
||
systems
|
||
Revision 1.0 1999-08-01
|
||
initial version
|
||
-----------------------------------------------------------------------------
|
||
|
||
1.3. Introduction
|
||
|
||
The international keyboard Xmodmap HOWTO. Copyright (C) 1999, 2002 Juraj
|
||
Sipos (xvudpapc@savba.sk). Imagine you use a Linux or a BSD OS and want to
|
||
write a business letter to a person that has a foreign name with a slash or
|
||
diaeresis (two dots above a letter). Czech language uses signs like ?? and
|
||
many European languages have their special non-English characters.
|
||
|
||
This is the Xmodmap Howto, but some info on XKB is included, too. Why
|
||
Xmodmap? Xmodmap is a little hackers' solution that lets you gain a complete
|
||
control of a keyboard - you can map the keyboard to almost everything. You
|
||
can do this with XKB, too, but it's a little dirtier way, albeit a possible
|
||
one. A good idea is to keep your XKB maps clean and unmodified, so that you
|
||
don't have to reinstall your Unix box. Xmodmap solution helps you map
|
||
keyboard to your choice and if something goes wrong, you will be able to use
|
||
standard X keyboard. Some people also like their own customized keyboard
|
||
layouts and this HOWTO will explain how to achieve this.
|
||
|
||
With information in this file you can make your own customized
|
||
(international) keyboard layouts without installing any additional packages.
|
||
The following information will help you set up German, Spanish, Italian,
|
||
Slovak, Czech, Polish, Slovenian, Croatian, Danish, Dutch, French, Finnish,
|
||
Norwegian, Estonian, Latvian, Swedish and other keyboards. You can also
|
||
alternatively look at my hompage at [http://www.freebsd.nfo.sk/] http://
|
||
www.freebsd.nfo.sk to see visual layouts of various keyboards. In case you
|
||
want to install Greek, Hebrew or Russian language, follow my information and
|
||
apply changes pertinent to these languages also with respect to other
|
||
documentation (e.g., install Greek fonts, etc., see the Cyrilic, Hebrew, or
|
||
Danish howto).
|
||
-----------------------------------------------------------------------------
|
||
|
||
2. Setting up international keyboard in X Window System with Xmodmap and XKB
|
||
|
||
2.1. Quick start
|
||
|
||
2.1.1. Xmodmap
|
||
|
||
Make your own .Xmodmap file according to information in this file.
|
||
|
||
Write the following to your .bash_profile in your home directory:
|
||
|
||
export LANG=language
|
||
|
||
where "language" is the language you want to use. The languages can be found
|
||
in the file locale.alias in /usr/X11R6/lib/X11/locale. NOTE: some programs,
|
||
like Mozilla, don't care about these user's locale settings. Run "exit"
|
||
command on the console and log in again for Bash to read the statement from
|
||
its .bash_profile.
|
||
|
||
Install fonts (best are ISO8859-2 Type1 fonts for Eastern Europe, Czech or
|
||
Slovak), put them in your font path in the /etc/X11/XF86Config file (on some
|
||
newer systems this is not necessary). Start X Server (startx). If you use GDM
|
||
or XDM and your X server is already running, restart X server. Run the
|
||
command "xmodmap <20>/.Xmodmap" from the X terminal window to force the system
|
||
to read the .Xmodmap file. The dot does not have to be there. Name the
|
||
xmodmap keyboard map whatever way you want. Switch keyboard by pressing a key
|
||
(it is usually right Alt, Scroll Lock, it depends on how switching is defined
|
||
in the xmodmap file). That's all. NOTE: This HOWTO is for the X Window
|
||
System, use of national keyboards on the console is not explained here. If
|
||
you are desperate, try to issue the commands like:
|
||
|
||
setfont LatArCyrHeb-14 -m 8859-2
|
||
|
||
followed by
|
||
|
||
loadkeys sk
|
||
|
||
("sk" stands for the Slovak language). Most Linuxes have their own utilities
|
||
to set up console keyboards).
|
||
-----------------------------------------------------------------------------
|
||
|
||
2.1.2. XKB
|
||
|
||
Provided you have your fonts installed, just open the X terminal window and
|
||
issue a command: setxkbmap kb, where "kb" is the keyboard layout you want to
|
||
use, for example:
|
||
|
||
setxkbmap si
|
||
|
||
for the Slovenian language
|
||
|
||
setxkbmap de
|
||
|
||
for the German language
|
||
|
||
All the language names you may use are located in /usr/X11R6/lib/X11/xkb/
|
||
symbols directory.
|
||
|
||
Alternatively, if you are using KDE 2.0, open the KDE Start button, click on
|
||
Preferences, Personalization, Country & Language and choose ISO8859-2
|
||
charset. Note that this may be slightly different depending on the Linux or
|
||
KDE distribution. In newer Linux distributions you don't have to do this
|
||
anymore; in Slackware Linux 8.1, RedHat 8.0 or Mandrake 9 with KDE 3.0, for
|
||
example, just open Preferences, Peripherals, Keyboard - choose your keyboard
|
||
layout and everything should work fine (if you have the fonts pertinent for
|
||
the language of your choice installed, obviously).
|
||
|
||
You will see a language icon on the KDE panel. Switch the keyboard (NOTE:
|
||
this is for XKB, my xmodmap definition uses Scroll Lock for switching, other
|
||
xmodmap files use Right Alt) and enjoy.
|
||
|
||
You may alternatively edit the /etc/X11/Xf86Config file as explained in the
|
||
Danish Howto, or issue this command in an X terminal window for the Slovak
|
||
keyboard:
|
||
|
||
setxkbmap -model pc102 -symbols 'czsk(us_sk_qwertz)' setxkbmap cs -option
|
||
grp:shift_toggle
|
||
|
||
In RedHat 7.2 and Mandrake 8.1, it is enough to run the following setxkbmap
|
||
command from an X Terminal Window (assuming you have correct fonts
|
||
installed):
|
||
|
||
setxkbmap sk
|
||
|
||
setxkbmap si
|
||
|
||
setxkbmap de
|
||
|
||
qwerty or qwertz means that the letter z Z and y Y are swapped.
|
||
|
||
To see a variety of language maps (symbols), look in the file symbols.dir in
|
||
/usr/X11R6/lib/X11/xkb directory.
|
||
|
||
Some X Window managers override .Xmodmap setting. If .Xmodmap isn't read by X
|
||
automatically after starting the X Window System, a good way is to force the
|
||
system to read it from your root (home) directory. You will do this by
|
||
issuing the following command from an X terminal window:
|
||
|
||
xmodmap <20>/.Xmodmap
|
||
|
||
After I installed the Slovak keyboard in KDE with Xmodmap file that used
|
||
definitions for ISO8859-2 keycode entities (lcaron, scaron, etc.), some
|
||
changes had to be done in the system in relation to a Linux or XFree
|
||
distribution. The changes mostly pertained to dead keys that did not work.
|
||
-----------------------------------------------------------------------------
|
||
|
||
3. How to do it: this experimental solution is a legacy issue - do not read
|
||
it if you use newer systems
|
||
|
||
Before the year 2000, I used the following way to customize keyboard in X
|
||
Window System on some Unices. Put the following in your .bash_profile:
|
||
|
||
export LANG=language
|
||
|
||
OR
|
||
|
||
OR for csh shell
|
||
|
||
setenv LANG=langauge
|
||
|
||
and have the Xmodmap file in your home directory. If you ask me where you may
|
||
obtain such Xmodmap files, some are in this HOWTO, or go to GNOME ../share
|
||
directory. The file /usr/X11R6/lib/X11/locale/locale.alias contains the
|
||
aliases for langauges, so look there in order to find out what is ca_ES or
|
||
br_FR (the exact syntax for your language to use - you cannot write "croatia"
|
||
but you must write "croatian", not "Croatian"; this is very important, as
|
||
Unix is case sensitive).
|
||
|
||
Now you must install the pertinent language fonts and put path in XF86Config
|
||
file to these fonts. If you want to internationalize your keyboard, use the
|
||
standard Xmodmap definitions first and use right alt to switch between
|
||
keyboards (if you use GNOME Xmodmap files). If it does not work, do the
|
||
following:
|
||
|
||
a) Copy the "Compose" file from: /usr/X11R6/lib/X11/locale/iso8859-2 to: /usr
|
||
/X11R6/lib/X11/locale/iso8859-1 directory (yes, iso8859-1, not iso8859-2).
|
||
Back up the original "Compose" file if you want
|
||
|
||
b) Put the included .Xmodmap file to your root directory (Slovak language, or
|
||
make your own .Xmodmap file, or choose from the ones listed here).
|
||
|
||
c) Install ISO8859-2 fonts (or other pertinent fonts).
|
||
|
||
You may try to issue the command:
|
||
|
||
xset q
|
||
|
||
to see which fonts are in your path.
|
||
|
||
If you want to add fonts in your path from the X Window System, issue the
|
||
command:
|
||
|
||
xset fp+ /usr/fonts_path
|
||
|
||
xset fp rehash
|
||
|
||
d) Disable every "Scroll Lock" uncommented line in your XF86Config, because
|
||
our .Xmodmap file for the Slovak language uses the Scroll Lock to switch
|
||
between keyboards.
|
||
|
||
e) Put the appropriate fontpath for your newly installed fonts in the
|
||
XF86Config file, if necessary (Mandrake 7.2 and other OS's may not require
|
||
this). The Xmodmap solution may be applied to all X keyboards of your choice.
|
||
|
||
First, I must say that in my solution (in older XFree86 versions), different
|
||
mapping, if used, appears to work for Xmodmap keycodes for some ISO8859-2
|
||
keycode entities. ISO8859-2 definitions (keycode entities) like lcaron,
|
||
zcaron actually do not work. This means that the ISO8859-1 definitions must
|
||
be used instead and they will either give you what they say they are (aacute
|
||
[o?=, eacute [o?=, etc.), or they will not give you what they say they are
|
||
(using ISO8859-2 fonts, putting "threequarters" in your .Xmodmap file will
|
||
not give you "3/4" but "z" with a caron, a reversed ^ above it). For example,
|
||
"mu" will give lcaron, "oslash" rcaron, etc.
|
||
|
||
However, other key definitions, for example, adieresis (a with two dots above
|
||
it), uacute (u with a slash above it), as well as dead_diaeresis do not
|
||
require a substitution of other definitions and work pretty well, as they're
|
||
defined everywhere (a dead key is a key you press, hold it, yet nothing
|
||
happens, but after pressing another key you will get a special letter).
|
||
|
||
The original "Compose" file in ../iso8859-1 directory can be fully utilized
|
||
for English, Slovak or Czech keyboard layouts (Polish, Hungarian, Slovenian,
|
||
Croatian) in some older XFree86 distributions, but there is only one problem
|
||
- dead keys do not work. That's why you have to copy the "Compose" file from
|
||
the iso8859-2 directory to iso8859-1 directory, or alternatively, you can
|
||
edit the "Compose" file in iso8859-1 directory.
|
||
|
||
You can leave the Keyboard section in your XF86Config file without much
|
||
change. Put (if it's not already there) the following in the "Keyboard"
|
||
section:
|
||
|
||
Section "Keyboard"
|
||
|
||
Protocol "Standard"
|
||
|
||
XkbRules "xfree86"
|
||
|
||
XkbModel "pc101"
|
||
|
||
XkbLayout "us"
|
||
|
||
Force the system to read the xmodmap map by issuing the command: "xmodmap <20>
|
||
/.Xmodmap". Alternatively, you can have 60 .Xmodmap files like .Xmo1, .Xmo2,
|
||
.Xmo3, .Xmo4, etc., and you may force the system to read them (xmodmap <20>
|
||
/.Xmo1). The dot means it is a hidden file and it is not necessary. You may
|
||
also have xmo1, xmo2, or xmo3 Xmodmap files.
|
||
|
||
NOTE: If you are using some legacy programs like StarOffice 5.2, they have
|
||
their own fonts, so Xmodmap solution will not work on older systems
|
||
immediately with these applications. StarOffice 6.0 handles well conversion
|
||
to win1250 and vice versa, so you can transport documents to a M$ platform.
|
||
In my Mandrake 8.0, StarOffice 6.0 was internationalized immediately after
|
||
using my standard Xmodmap solution. All the fonts worked. However, with
|
||
StarOffice 5.2 this is not the case. In StarOffice 5.2, you must add X fonts
|
||
to StarOffice's fonts directory. Here is a script that will do it for you.
|
||
Cut it, name it "so52", make it executable (chmod +x so52), copy it to the
|
||
StarOffice5.2/share/xp3 directory and execute it there.
|
||
|
||
-------------------------------cut_here-----------------------------------
|
||
|
||
#!/bin/sh
|
||
|
||
# Put path to your StarOffice here
|
||
|
||
STAR_OFFICE_ROOT=/mnt/StarOffice5.2
|
||
|
||
FONTS_DIR=/usr/X11R6/lib/X11/fonts/ISO8859-2/Type1
|
||
|
||
# -----------------------------------------------------------------------
|
||
|
||
# Don't edit the script here
|
||
|
||
# -----------------------------------------------------------------------
|
||
|
||
XP3_DIR=$STAR_OFFICE_ROOT/share/xp3
|
||
|
||
if [ -e $XP3_DIR/psstd.fonts.il2 ]; then
|
||
|
||
echo "Changes were already done!"
|
||
|
||
echo "If there's a problem, delete the file"
|
||
|
||
echo " $XP3_DIR/psstd.fonts.il2"
|
||
|
||
exit 1
|
||
|
||
fi
|
||
|
||
if [ -e $FONTS_DIR/afm ]; then
|
||
|
||
AFM_DIR=$FONTS_DIR/afm
|
||
|
||
else
|
||
|
||
AFM_DIR=$FONTS_DIR
|
||
|
||
fi
|
||
|
||
# Link AFM files.
|
||
|
||
ln -sf $AFM_DIR/*.[aA][fF][mM] $XP3_DIR/fontmetrics/afm
|
||
|
||
# Link PFB files.
|
||
|
||
ln -sf $FONTS_DIR/*.[pP][fF][bB] $XP3_DIR/pssoftfonts
|
||
|
||
grep "\.pf" $FONTS_DIR/fonts.dir \
|
||
|
||
| sed -e 's/\.pfb /, /g' -e 's/-0-0-0-0-/-%d-%d-%d-%d-/g' \
|
||
|
||
> $XP3_DIR/psstd.fonts.il2
|
||
|
||
cat $XP3_DIR/psstd.fonts.il2 >> $XP3_DIR/psstd.fonts
|
||
|
||
------------------------------------cut_here-----------------------------
|
||
|
||
StarOffice 5.2 fully recognizes Word97 documents even written in other
|
||
languages, but a converter from iso8859-2 to win1250 encoding is necessary in
|
||
order to transport ISO8859-2 documents to M$ platform. For html documents
|
||
this is not necessary.
|
||
|
||
StarOffice 5.2 can be thus used by professional translators.
|
||
-----------------------------------------------------------------------------
|
||
|
||
3.1. Xmodmap theory and Xmodmap solution
|
||
|
||
If you want to edit and make your own .Xmodmap keyboard layout definitions,
|
||
I'll explain one line of the .Xmodmap file to make clear what you should do.
|
||
|
||
This example can be used for all keycodes. For example, the line:
|
||
|
||
keycode 0x11 = 8 asterisk aacute 8
|
||
|
||
(note: keycode 0x11 is derived from the "xkeycaps" utility; you can also use
|
||
the X Window "xev" utility to explore keyboard puzzles.)
|
||
|
||
says that the first pair, the default one, (number "8" and "asterisk") will
|
||
display number "8" when you press keycode 0x11 ("8"), will display asterisk
|
||
when a "shift" key is pressed. After pressing the Scroll Lock, there's
|
||
another definition: ISO_NEXT_GROUP, which means that when you press the
|
||
default "8" key, no "8" will be displayed, but aacute (<28>); when you press the
|
||
"shift" key, number "8" will be displayed. So if you change "aacute" and "8",
|
||
anything you put instead of "aacute" and "8" will be displayed, for example:
|
||
|
||
keycode 0x11 = 8 asterisk semicolon colon
|
||
|
||
will give you "semicolon" and "colon" in your 0x11 keycode after pressing the
|
||
Scroll Lock.
|
||
|
||
The ISO_NEXT_GROUP is defined by another line. If this line is not defined,
|
||
you will be able to use only two definitions ("8" and "asterisk") - look at
|
||
my .Xmodmap file. If you delete the ISO_NEXT_GROUP (the next pair of
|
||
definitions on the right), you will have only one group of keyboard
|
||
definitions ("8" and "asterisk"). Be careful when editing the .Xmodmap file.
|
||
You mustn't delete definitions that enable utilization of the Scroll Lock
|
||
unless you know what you are doing (or you map the second keyboard by right
|
||
Alt). These are the lines such as:
|
||
|
||
keycode 0x4e = ISO_Next_Group
|
||
|
||
add mod5 = ISO_Next_Group,
|
||
|
||
etc. You must also keep in mind that Unices are case sensitive. If you want
|
||
to find out more about keycodes, install the package "xkeycaps" or use "xev".
|
||
|
||
The following symbols on your right is what I found out through my research.
|
||
This is just an example. When you use a "Pound" definition in the Xmodmap
|
||
file, the X Window System will display you a Lslash instead (in relation to
|
||
using iso8859-2 fonts, of course). When you choose some easy KDE text editor,
|
||
select iso8859-2 fonts charset from the fonts menu. NOTE: vowel *acute
|
||
(uacute, eacute, etc.) signs require no substitution, therefore I omitted
|
||
iacute, aacute, etc., here.
|
||
|
||
ISO8859-1 entity will give you the: ISO8859-2 entity
|
||
|
||
in our nonstandard or experimental Xmodmap keycode definition
|
||
|
||
egrave ccaron
|
||
|
||
ugrave uring
|
||
|
||
agrave racute
|
||
|
||
ecircumflex "c" with something at the bottom of it
|
||
|
||
ucircumflex Lslash "Pound" in Xmodmap gives you Lslash.
|
||
|
||
Lcaron Writing "yen" will give us Lcaron
|
||
|
||
Scaron copyright (will give us Scaron)
|
||
|
||
Tcaron guillemotleft (will give us Tcaron)
|
||
|
||
Zcaron registered
|
||
|
||
lcaron mu
|
||
|
||
scaron onesuperior
|
||
|
||
tcaron guillemotright
|
||
|
||
zcaron threequarters
|
||
|
||
Cacute AE
|
||
|
||
Eogonek find out yourself
|
||
|
||
Edieresis Edieresis
|
||
|
||
ecaron igrave
|
||
|
||
onequarter zacute
|
||
|
||
questiondown z with a ring above it
|
||
|
||
Dcaron find out yourself
|
||
|
||
Ooblique Rcaron
|
||
|
||
thorn t with something at the bottom of it
|
||
|
||
Sterling Lstroke
|
||
|
||
yen Lcaron
|
||
|
||
copyright Scaron
|
||
|
||
brokenbar Sacute
|
||
|
||
macron Z with something above it
|
||
|
||
paragraph sacute
|
||
|
||
periodcentered caron
|
||
|
||
masculine s with something at the bottom of it
|
||
|
||
onequarter zacute
|
||
|
||
ecircumflex d with a line above it
|
||
|
||
ETH Dstroke
|
||
|
||
Ntilde Nacute
|
||
|
||
Otilde O with two dots above it
|
||
|
||
registered Zcaron
|
||
|
||
Nacute Ograve
|
||
|
||
nacute ograve
|
||
|
||
Ocircumflex Ocircumflex
|
||
|
||
ccaron egrave
|
||
|
||
nacute ntilde
|
||
------------------------------------------------------------------------
|
||
-----------------------------------------------------------------------------
|
||
|
||
3.2. Experimental .Xmodmap sample file for the Slovak language typewriter
|
||
layout
|
||
|
||
You may use this file as an example to build your own xmodmap keyboard
|
||
layouts. _______________________cut_here_________________________
|
||
|
||
keycode 0x09 = Escape
|
||
|
||
keycode 0x43 = F1 F11 F1 Multi_key
|
||
|
||
keycode 0x44 = F2 F12 F2 F12
|
||
|
||
keycode 0x45 = F3 F13 F3 F13 idiaeresis
|
||
|
||
keycode 0x46 = F4 F14 F4 F14 mu yen
|
||
|
||
keycode 0x47 = F5 F15 F5 F15 guillemotright guillemotleft
|
||
|
||
keycode 0x48 = F6 F16 F6 F16 ograve
|
||
|
||
keycode 0x49 = F7 F17 F7 dead_abovedot oacute
|
||
|
||
keycode 0x4A = F8 F18 F8 dead_breve acute
|
||
|
||
keycode 0x4B = F9 F19 F9 dead_cedilla ugrave
|
||
|
||
keycode 0x4C = F10 F20 F10 dead_ogonek
|
||
|
||
keycode 0x5F = F11 F21 dead_acute dead_caron
|
||
|
||
keycode 0x60 = F12 F22 dead_abovering dead_diaeresis
|
||
|
||
keycode 0x6F = Print Execute dead_iota
|
||
|
||
keycode 0x4E = ISO_Next_Group
|
||
|
||
keycode 0x6E = Pause
|
||
|
||
keycode 0x31 = grave asciitilde semicolon dead_diaeresis
|
||
|
||
keycode 0x0A = 1 exclam plus 1
|
||
|
||
keycode 0x0B = 2 at mu 2
|
||
|
||
keycode 0x0C = 3 numbersign onesuperior 3
|
||
|
||
keycode 0x0D = 4 dollar egrave 4
|
||
|
||
keycode 0x0E = 5 percent 0x0bb 5
|
||
|
||
keycode 0x0F = 6 asciicircum threequarters 6
|
||
|
||
keycode 0x10 = 7 ampersand yacute 7
|
||
|
||
keycode 0x11 = 8 asterisk aacute 8
|
||
|
||
keycode 0x12 = 9 parenleft iacute 9
|
||
|
||
keycode 0x13 = 0 parenright eacute 0
|
||
|
||
keycode 0x14 = minus underscore equal percent
|
||
|
||
keycode 0x15 = equal plus dead_acute dead_caron
|
||
|
||
keycode 0x33 = backslash bar ograve parenright
|
||
|
||
keycode 0x16 = BackSpace
|
||
|
||
keycode 0x6A = Insert
|
||
|
||
keycode 0x61 = Home
|
||
|
||
keycode 0x63 = Prior
|
||
|
||
keycode 0x4D = Num_Lock Pointer_EnableKeys
|
||
|
||
keycode 0x70 = KP_Divide slash
|
||
|
||
keycode 0x3F = KP_Multiply asterisk
|
||
|
||
keycode 0x52 = KP_Subtract minus
|
||
|
||
keycode 0x17 = Tab ISO_Left_Tab
|
||
|
||
keycode 0x18 = q Q
|
||
|
||
keycode 0x19 = w W
|
||
|
||
keycode 0x1A = e E
|
||
|
||
keycode 0x1B = r R
|
||
|
||
keycode 0x1C = t T
|
||
|
||
keycode 0x1D = y Y z Z
|
||
|
||
keycode 0x1E = u U
|
||
|
||
keycode 0x1F = i I
|
||
|
||
keycode 0x20 = o O
|
||
|
||
keycode 0x21 = p P
|
||
|
||
keycode 0x22 = bracketleft braceleft uacute slash
|
||
|
||
keycode 0x23 = bracketright braceright adiaeresis parenleft
|
||
|
||
keycode 0x24 = Return
|
||
|
||
keycode 0x6B = Delete
|
||
|
||
keycode 0x67 = End
|
||
|
||
keycode 0x69 = Next
|
||
|
||
keycode 0x4F = KP_Home 7 KP_Home
|
||
|
||
keycode 0x50 = KP_Up 8
|
||
|
||
keycode 0x51 = KP_Prior 9
|
||
|
||
keycode 0x56 = KP_Add plus
|
||
|
||
keycode 0x42 = Caps_Lock
|
||
|
||
keycode 0x26 = a A
|
||
|
||
keycode 0x27 = s S
|
||
|
||
keycode 0x28 = d D
|
||
|
||
keycode 0x29 = f F
|
||
|
||
keycode 0x2A = g G
|
||
|
||
keycode 0x2B = h H
|
||
|
||
keycode 0x2C = j J
|
||
|
||
keycode 0x2D = k K
|
||
|
||
keycode 0x2E = l L
|
||
|
||
keycode 0x2F = semicolon colon ocircumflex quotedbl
|
||
|
||
keycode 0x30 = apostrophe quotedbl section exclam
|
||
|
||
keycode 0x53 = KP_Left 4
|
||
|
||
keycode 0x54 = KP_Begin 5
|
||
|
||
keycode 0x55 = KP_Right 6
|
||
|
||
keycode 0x32 = Shift_L ISO_Next_Group
|
||
|
||
keycode 0x34 = z Z y Y
|
||
|
||
keycode 0x35 = x X
|
||
|
||
keycode 0x36 = c C
|
||
|
||
keycode 0x37 = v V
|
||
|
||
keycode 0x38 = b B
|
||
|
||
keycode 0x39 = n N
|
||
|
||
keycode 0x3A = m M
|
||
|
||
keycode 0x3B = comma less comma question
|
||
|
||
keycode 0x3C = period greater period colon
|
||
|
||
keycode 0x3D = slash question minus underscore
|
||
|
||
keycode 0x3E = Shift_R
|
||
|
||
keycode 0x62 = Up
|
||
|
||
keycode 0x57 = KP_End 1
|
||
|
||
keycode 0x58 = KP_Down 2
|
||
|
||
keycode 0x59 = KP_Next 3
|
||
|
||
keycode 0x6C = KP_Enter Return
|
||
|
||
keycode 0x25 = Control_L ISO_Next_Group
|
||
|
||
!keycode 0x40 = Alt_L Meta_L
|
||
|
||
keycode 0x40 = Meta_L Alt_L
|
||
|
||
keycode 0x41 = space
|
||
|
||
keycode 0x71 = Alt_R Meta_R
|
||
|
||
keycode 0x6D = Control_R
|
||
|
||
keycode 0x64 = Left
|
||
|
||
keycode 0x68 = Down
|
||
|
||
keycode 0x66 = Right
|
||
|
||
keycode 0x5A = KP_Insert 0
|
||
|
||
keycode 0x5B = KP_Delete period
|
||
|
||
!keysym Alt_L = Meta_L
|
||
|
||
!keysym F12 = Multi_key
|
||
|
||
clear Shift
|
||
|
||
!clear Lock
|
||
|
||
clear Control
|
||
|
||
clear Mod1
|
||
|
||
clear Mod2
|
||
|
||
clear Mod3
|
||
|
||
clear Mod4
|
||
|
||
clear Mod5
|
||
|
||
add Shift = Shift_L Shift_R
|
||
|
||
add Control = Control_L Control_R
|
||
|
||
!add Mod1 = Alt_L Alt_R
|
||
|
||
add Mod1 = Meta_L Alt_R
|
||
|
||
add Mod2 = Num_Lock
|
||
|
||
add Mod5 = ISO_Next_Group
|
||
|
||
!add Mod1 =
|
||
|
||
!add Mod2 = Alt_R Alt_L Mode_switch
|
||
|
||
keycode 0x73 = ISO_Next_Group
|
||
|
||
keycode 0x74 = dead_acute dead_diaeresis
|
||
|
||
keycode 0x75 = dead_caron dead_abovering
|
||
|
||
_____________________________cut_here_____________________________
|
||
|
||
You may find almost any xmodmap file in the GNOME directory in (SuSE) /opt/
|
||
gnome/share/xmodmap (with standard ISO8859-1,2 and other definitions). To
|
||
switch between the keyboards, use right Alt.
|
||
-----------------------------------------------------------------------------
|
||
|
||
4. Xmodmap theory and Xmodmap solution
|
||
|
||
If you want to edit and make your own .Xmodmap keyboard layout definitions,
|
||
I'll explain one line of the .Xmodmap file to make clear what you should do.
|
||
|
||
This explanation can be used for all keycodes. For example, the line:
|
||
|
||
keycode 0x11 = 8 asterisk aacute 8
|
||
|
||
(note: keycode 0x11 is derived from the "xkeycaps" utility; you can also use
|
||
the X Window "xev" utility to explore keyboard puzzles.)
|
||
|
||
says that the first pair, the default one, (number "8" and "asterisk") will
|
||
display number "8" when you press keycode 0x11 ("8"), will display asterisk
|
||
when a "shift" key is pressed. After pressing the Scroll Lock, there's
|
||
another definition: ISO_NEXT_GROUP, which means that when you press the
|
||
default "8" key, no "8" will be displayed, but aacute (<28>); when you press the
|
||
"shift" key, number "8" will be displayed. So if you change "aacute" and "8",
|
||
anything you put instead of "aacute" and "8" will be displayed, for example:
|
||
|
||
keycode 0x11 = 8 asterisk semicolon colon
|
||
|
||
will give you "semicolon" and "colon" in your 0x11 keycode after pressing the
|
||
Scroll Lock.
|
||
|
||
The ISO_NEXT_GROUP is defined by another line. If this line is not defined,
|
||
you will be able to use only two definitions ("8" and "asterisk") - look at
|
||
my .Xmodmap file. If you delete the ISO_NEXT_GROUP (the next pair of
|
||
definitions on the right), you will have only one group of keyboard
|
||
definitions ("8" and "asterisk"). Be careful when editing the .Xmodmap file.
|
||
You mustn't delete definitions that enable utilization of the Scroll Lock
|
||
unless you know what you are doing (or you map the second keyboard by right
|
||
Alt). These are the lines such as:
|
||
|
||
keycode 0x4e = ISO_Next_Group
|
||
|
||
add mod5 = ISO_Next_Group,
|
||
|
||
etc. You must also keep in mind that Unixes are case sensitive. If you want
|
||
to find out more about keycodes, install the package "xkeycaps" or use "xev".
|
||
-----------------------------------------------------------------------------
|
||
|
||
4.1. .Xmodmap sample file for the Slovak language typewriter layout
|
||
|
||
The following .Xmodmap sample file consists of two groups of keyboard
|
||
definitions you my use in addition to your default or XKB keyboard choice.
|
||
You may use this file as an example to build your own keyboard maps. This
|
||
file needs editing for your specific purposes and it's here only as a hint.
|
||
If you change letters like "y Y" to "t T", you will have "t T", etc. on your
|
||
keyboard where you normally have "y Y" keys. So you see that thus you can
|
||
have almost absolute control of your keyboard - something which in Microsoft
|
||
Windows operating system can only be achieved by special and certainly
|
||
expensive programs. Use the Scroll Lock to switch between the first and
|
||
second group of key definitions.
|
||
_______________________cut_here_________________________
|
||
|
||
keycode 0x09 = Escape
|
||
|
||
keycode 0x43 = F1 F11 F1 Multi_key
|
||
|
||
keycode 0x44 = F2 F12 F2 F12
|
||
|
||
keycode 0x45 = F3 F13 F3 F13 idiaeresis
|
||
|
||
keycode 0x46 = F4 F14 F4 F14 mu yen
|
||
|
||
keycode 0x47 = F5 F15 F5 F15 guillemotright guillemotleft
|
||
|
||
keycode 0x48 = F6 F16 F6 F16 ograve
|
||
|
||
keycode 0x49 = F7 F17 F7 dead_abovedot oacute
|
||
|
||
keycode 0x4A = F8 F18 F8 dead_breve acute
|
||
|
||
keycode 0x4B = F9 F19 F9 dead_cedilla ugrave
|
||
|
||
keycode 0x4C = F10 F20 F10 dead_ogonek
|
||
|
||
keycode 0x5F = F11 F21 dead_acute dead_caron
|
||
|
||
keycode 0x60 = F12 F22 dead_abovering dead_diaeresis
|
||
|
||
keycode 0x6F = Print Execute dead_iota
|
||
|
||
keycode 0x4E = ISO_Next_Group
|
||
|
||
keycode 0x6E = Pause
|
||
|
||
keycode 0x31 = grave asciitilde semicolon dead_diaeresis
|
||
|
||
keycode 0x0A = 1 exclam plus 1
|
||
|
||
keycode 0x0B = 2 at lcaron 2
|
||
|
||
keycode 0x0C = 3 numbersign scaron 3
|
||
|
||
keycode 0x0D = 4 dollar ccaron 4
|
||
|
||
keycode 0x0E = 5 percent tcaron 5
|
||
|
||
keycode 0x0F = 6 asciicircum zcaron 6
|
||
|
||
keycode 0x10 = 7 ampersand yacute 7
|
||
|
||
keycode 0x11 = 8 asterisk aacute 8
|
||
|
||
keycode 0x12 = 9 parenleft iacute 9
|
||
|
||
keycode 0x13 = 0 parenright eacute 0
|
||
|
||
keycode 0x14 = minus underscore equal percent
|
||
|
||
keycode 0x15 = equal plus dead_acute dead_caron
|
||
|
||
keycode 0x33 = backslash bar ncaron parenright
|
||
|
||
keycode 0x16 = BackSpace
|
||
|
||
keycode 0x6A = Insert
|
||
|
||
keycode 0x61 = Home
|
||
|
||
keycode 0x63 = Prior
|
||
|
||
keycode 0x4D = Num_Lock Pointer_EnableKeys
|
||
|
||
keycode 0x70 = KP_Divide slash
|
||
|
||
keycode 0x3F = KP_Multiply asterisk
|
||
|
||
keycode 0x52 = KP_Subtract minus
|
||
|
||
keycode 0x17 = Tab ISO_Left_Tab
|
||
|
||
keycode 0x18 = q Q
|
||
|
||
keycode 0x19 = w W
|
||
|
||
keycode 0x1A = e E
|
||
|
||
keycode 0x1B = r R
|
||
|
||
keycode 0x1C = t T
|
||
|
||
keycode 0x1D = y Y z Z
|
||
|
||
keycode 0x1E = u U
|
||
|
||
keycode 0x1F = i I
|
||
|
||
keycode 0x20 = o O
|
||
|
||
keycode 0x21 = p P
|
||
|
||
keycode 0x22 = bracketleft braceleft uacute slash
|
||
|
||
keycode 0x23 = bracketright braceright adiaeresis parenleft
|
||
|
||
keycode 0x24 = Return
|
||
|
||
keycode 0x6B = Delete
|
||
|
||
keycode 0x67 = End
|
||
|
||
keycode 0x69 = Next
|
||
|
||
keycode 0x4F = KP_Home 7 KP_Home
|
||
|
||
keycode 0x50 = KP_Up 8
|
||
|
||
keycode 0x51 = KP_Prior 9
|
||
|
||
keycode 0x56 = KP_Add plus
|
||
|
||
keycode 0x42 = Caps_Lock
|
||
|
||
keycode 0x26 = a A
|
||
|
||
keycode 0x27 = s S
|
||
|
||
keycode 0x28 = d D
|
||
|
||
keycode 0x29 = f F
|
||
|
||
keycode 0x2A = g G
|
||
|
||
keycode 0x2B = h H
|
||
|
||
keycode 0x2C = j J
|
||
|
||
keycode 0x2D = k K
|
||
|
||
keycode 0x2E = l L
|
||
|
||
keycode 0x2F = semicolon colon ocircumflex quotedbl
|
||
|
||
keycode 0x30 = apostrophe quotedbl section exclam
|
||
|
||
keycode 0x53 = KP_Left 4
|
||
|
||
keycode 0x54 = KP_Begin 5
|
||
|
||
keycode 0x55 = KP_Right 6
|
||
|
||
keycode 0x32 = Shift_L ISO_Next_Group
|
||
|
||
keycode 0x34 = z Z y Y
|
||
|
||
keycode 0x35 = x X
|
||
|
||
keycode 0x36 = c C
|
||
|
||
keycode 0x37 = v V
|
||
|
||
keycode 0x38 = b B
|
||
|
||
keycode 0x39 = n N
|
||
|
||
keycode 0x3A = m M
|
||
|
||
keycode 0x3B = comma less comma question
|
||
|
||
keycode 0x3C = period greater period colon
|
||
|
||
keycode 0x3D = slash question minus underscore
|
||
|
||
keycode 0x3E = Shift_R
|
||
|
||
keycode 0x62 = Up
|
||
|
||
keycode 0x57 = KP_End 1
|
||
|
||
keycode 0x58 = KP_Down 2
|
||
|
||
keycode 0x59 = KP_Next 3
|
||
|
||
keycode 0x6C = KP_Enter Return
|
||
|
||
keycode 0x25 = Control_L ISO_Next_Group
|
||
|
||
!keycode 0x40 = Alt_L Meta_L
|
||
|
||
keycode 0x40 = Meta_L Alt_L
|
||
|
||
keycode 0x41 = space
|
||
|
||
keycode 0x71 = Alt_R Meta_R
|
||
|
||
keycode 0x6D = Control_R
|
||
|
||
keycode 0x64 = Left
|
||
|
||
keycode 0x68 = Down
|
||
|
||
keycode 0x66 = Right
|
||
|
||
keycode 0x5A = KP_Insert 0
|
||
|
||
keycode 0x5B = KP_Delete period
|
||
|
||
!keysym Alt_L = Meta_L
|
||
|
||
!keysym F12 = Multi_key
|
||
|
||
clear Shift
|
||
|
||
!clear Lock
|
||
|
||
clear Control
|
||
|
||
clear Mod1
|
||
|
||
clear Mod2
|
||
|
||
clear Mod3
|
||
|
||
clear Mod4
|
||
|
||
clear Mod5
|
||
|
||
add Shift = Shift_L Shift_R
|
||
|
||
add Control = Control_L Control_R
|
||
|
||
!add Mod1 = Alt_L Alt_R
|
||
|
||
add Mod1 = Meta_L Alt_R
|
||
|
||
add Mod2 = Num_Lock
|
||
|
||
add Mod5 = ISO_Next_Group
|
||
|
||
!add Mod1 =
|
||
|
||
!add Mod2 = Alt_R Alt_L Mode_switch
|
||
|
||
keycode 0x73 = ISO_Next_Group
|
||
|
||
keycode 0x74 = dead_acute dead_diaeresis
|
||
|
||
keycode 0x75 = dead_caron dead_abovering
|
||
|
||
_____________________________cut_here_____________________________
|
||
-----------------------------------------------------------------------------
|
||
|
||
5. Character sets
|
||
|
||
If you want to build an .Xmodmap and you know how the character looks
|
||
visually, you may have problems about knowing how it is defined by name. A
|
||
good site that may help you with this may be: [http://www.geocities.com/
|
||
gorazd.hribar/latin-2/eng-iso-8859-2.html] http://www.geocities.com/
|
||
gorazd.hribar/latin-2/eng-iso-8859-2.html Here you can see ISO8859-2
|
||
characters visually.
|
||
|
||
I also included here some ISO8859-2 Character definitions for you to know
|
||
which names are used for pertinent keys. It may not be complete and you
|
||
should not bother about the keycode numbers, but notice how keys are named.
|
||
Much of this information is useful to build a keyboard with ISO8859-1
|
||
characters only, or a combination of East European characters and Western
|
||
characters. If you're going to use other languages than the Central European
|
||
or West-European ones, find a pertinent table for your ISO*** character set
|
||
on the Internet. The gdkkeysyms.h file that contains all the crazy names for
|
||
keycode entities including hexcodes is in (older versions of RedHat) /usr/
|
||
include/gdk/ directory. If no gdkkeysyms.h file is on your sustem, see the
|
||
file /usr/X11R6/include/X11/keysymdef.h (you must install XFree86 development
|
||
package to make use of this directory), or try to look in /lib/perl5/
|
||
site_perl/5.6.0/i386-linux/GTK/keysyms.pm (it also contains names of keycode
|
||
entities including hex codes). If you have a newer version of PERL, the
|
||
version number "5.6.0" may differ. The similar thing should apply to other
|
||
systems (FreeBSD), too, as they also use PERL.
|
||
-----------------------------------------------------------------------------
|
||
|
||
5.1. ISO-8859-2 (ISO Latin2) character set
|
||
|
||
Xmodmap entities with their word definitions (which you put in the Xmodmap
|
||
file) and their visual representation. Some word definitions lack their
|
||
visual forms.
|
||
|
||
----------------------------------------------------------------------
|
||
|
||
space
|
||
|
||
exclam !
|
||
|
||
quotedbl "
|
||
|
||
numbersign #
|
||
|
||
dollar $
|
||
|
||
percent
|
||
|
||
ampersand &
|
||
|
||
quoteright '
|
||
|
||
parenleft (
|
||
|
||
parenright )
|
||
|
||
asterisk *
|
||
|
||
plus +
|
||
|
||
comma ,
|
||
|
||
hyphen -
|
||
|
||
period .
|
||
|
||
slash /
|
||
|
||
zero 0
|
||
|
||
one 1
|
||
|
||
two 2
|
||
|
||
three 3
|
||
|
||
four 4
|
||
|
||
five 5
|
||
|
||
six 6
|
||
|
||
seven 7
|
||
|
||
eight 8
|
||
|
||
nine 9
|
||
|
||
colon :
|
||
|
||
semicolon ;
|
||
|
||
less < <
|
||
|
||
equal =
|
||
|
||
greater > >
|
||
|
||
question ?
|
||
|
||
at @
|
||
|
||
A A
|
||
|
||
B B
|
||
|
||
C C
|
||
|
||
D D
|
||
|
||
E E
|
||
|
||
F F
|
||
|
||
G G
|
||
|
||
H H
|
||
|
||
I I
|
||
|
||
J J
|
||
|
||
K K
|
||
|
||
L L
|
||
|
||
M M
|
||
|
||
N N
|
||
|
||
O O
|
||
|
||
P P
|
||
|
||
Q Q
|
||
|
||
R R
|
||
|
||
S S
|
||
|
||
T T
|
||
|
||
U U
|
||
|
||
V V
|
||
|
||
W W
|
||
|
||
X X
|
||
|
||
Y Y
|
||
|
||
Z Z
|
||
|
||
bracketleft [
|
||
|
||
backslash \
|
||
|
||
bracketright ]
|
||
|
||
asciicircum ^
|
||
|
||
underscore _
|
||
|
||
quoteleft `
|
||
|
||
a a
|
||
|
||
b b
|
||
|
||
c c
|
||
|
||
d d
|
||
|
||
e e
|
||
|
||
f f
|
||
|
||
g g
|
||
|
||
h h
|
||
|
||
i i
|
||
|
||
j j
|
||
|
||
k k
|
||
|
||
l l
|
||
|
||
m m
|
||
|
||
n n
|
||
|
||
o o
|
||
|
||
p p
|
||
|
||
q q
|
||
|
||
r r
|
||
|
||
s s
|
||
|
||
t t
|
||
|
||
u u
|
||
|
||
v v
|
||
|
||
w w
|
||
|
||
x x
|
||
|
||
y y
|
||
|
||
z z
|
||
|
||
braceleft {
|
||
|
||
bar |
|
||
|
||
braceright }
|
||
|
||
tilde <20>
|
||
|
||
space
|
||
|
||
Aogonek
|
||
|
||
breve
|
||
|
||
Lslash
|
||
|
||
currency
|
||
|
||
Lcaron
|
||
|
||
Sacute
|
||
|
||
section
|
||
|
||
dieresis
|
||
|
||
Scaron ??
|
||
|
||
Scedilla
|
||
|
||
Tcaron ??
|
||
|
||
Zacute ??
|
||
|
||
hyphen
|
||
|
||
Zcaron ??
|
||
|
||
Zdotaccent
|
||
|
||
degree
|
||
|
||
aogonek
|
||
|
||
ogonek
|
||
|
||
lslash
|
||
|
||
acute
|
||
|
||
lcaron ??
|
||
|
||
sacute ??
|
||
|
||
caron
|
||
|
||
cedilla
|
||
|
||
scaron ??
|
||
|
||
scedilla
|
||
|
||
tcaron ??
|
||
|
||
zacute
|
||
|
||
hungarumlaut
|
||
|
||
zcaron ??
|
||
|
||
zdotaccent
|
||
|
||
Racute
|
||
|
||
Aacute
|
||
|
||
Acircumflex
|
||
|
||
Abreve
|
||
|
||
Adieresis
|
||
|
||
Lacute
|
||
|
||
Cacute
|
||
|
||
Ccedilla
|
||
|
||
Ccaron ??
|
||
|
||
Eacute <20>
|
||
|
||
Eogonek
|
||
|
||
Edieresis
|
||
|
||
Ecaron ??
|
||
|
||
Iacute <20>
|
||
|
||
Icircumflex
|
||
|
||
Dcaron ??
|
||
|
||
Eth
|
||
|
||
Nacute ??
|
||
|
||
Ncaron ??
|
||
|
||
Oacute <20>
|
||
|
||
Ocircumflex
|
||
|
||
Ohungarumlaut
|
||
|
||
Odieresis
|
||
|
||
multiply
|
||
|
||
Rcaron ??
|
||
|
||
Uring ??
|
||
|
||
Uacute <20>
|
||
|
||
hungarumlaut
|
||
|
||
Udieresis
|
||
|
||
Yacute
|
||
|
||
Tcedilla
|
||
|
||
germandbls
|
||
|
||
racute
|
||
|
||
aacute <20>
|
||
|
||
acircumflex
|
||
|
||
abreve
|
||
|
||
adieresis
|
||
|
||
lacute
|
||
|
||
cacute
|
||
|
||
ccedilla
|
||
|
||
ccaron ??
|
||
|
||
eacute
|
||
|
||
eogonek
|
||
|
||
edieresis
|
||
|
||
ecaron
|
||
|
||
iacute
|
||
|
||
icircumflex
|
||
|
||
dcaron
|
||
|
||
dbar
|
||
|
||
nacute
|
||
|
||
ncaron
|
||
|
||
oacute
|
||
|
||
ocircumflex
|
||
|
||
ohungarumlaut
|
||
|
||
odieresis
|
||
|
||
divide
|
||
|
||
rcaron
|
||
|
||
uring
|
||
|
||
uacute
|
||
|
||
uhungarumlaut
|
||
|
||
udieresis
|
||
|
||
yacute
|
||
|
||
tcedilla
|
||
|
||
dotaccent
|
||
|
||
----------------------------------------------------------------------
|
||
|
||
First, if you are using older systems (see the legacy solution), try to see
|
||
if definitions will give you (after installing pertinent fonts and building
|
||
the Xmodmap map with keyboard definitions for X) what they say they are. If
|
||
they will not give you what they say they are, see my legacy soluttion.
|
||
|
||
-----------------------------------------------------------------------------
|
||
6. How this Xmodmap solution works on various systems
|
||
|
||
6.1. SuSE 6.4 and 7.0
|
||
|
||
6.1.1. SuSE 7.0 with XFree86 version 3.3.6 and KDE 2.0 (this also applies to
|
||
SuSE 6.4
|
||
|
||
No LANG=language statement is necessary in your bash_profile. You may use the
|
||
Xmodmap file with standard ISO8859-2 keycode definitions and the .Xmodmap
|
||
file (not from the legacy solution). Unfortunately, although you may
|
||
immediately start writing with ISO8859-2 keycodes, the dead keys are not
|
||
working properly and export LANG=language does not work here in order to make
|
||
these dead keys work. There's also some bug with fonts or something - KDE 2.0
|
||
(or older XFree86 does not properly handle ISO8859-2 fonts together with
|
||
Xmodmap. Old kedit, newest GNOME's gedit and StarOffice 5.2 work well (after
|
||
applying the above script for StarOffice 5.2).
|
||
|
||
After copying the Compose file from /usr/X11R6/lib/X11/locale/iso8859-2/ to
|
||
the /usr/X11R6/lib/X11/locale/iso8859-1/, you may start elegantly working
|
||
with dead keys. This was also tested on StarOffice 5.2.
|
||
-----------------------------------------------------------------------------
|
||
|
||
6.2. SuSE 7.0 (Xfree86 3.3.6, KDE 1.x), SuSE 8.0
|
||
|
||
SuSE 7.0 works same as above. SuSE 8.0 works without problems - just apply
|
||
the xmodmap command on your xmodmap keyboard definition and you are ready to
|
||
go. It is a good idea to install support for your national language in Yast2,
|
||
if there is a problem.
|
||
-----------------------------------------------------------------------------
|
||
|
||
6.3. Mandrake Linux 7.2
|
||
|
||
6.3.1. Mandrake Linux 7.2 - works as it should
|
||
|
||
Yes, it works as it should - I used the "kcmshell Personalization/kcmlayout",
|
||
command, which is in the menu in Configuration > KDE > Personalization >
|
||
keyboard layout and after just putting the LANG=language statement in my
|
||
.bash_profile, StarOffice worked immediately (with ISO8859-2 fonts added to
|
||
its directory) and I only switched the keyboards. I chose Czechoslovakian as
|
||
the second language and could write in Czech with ISO8859-2 characters on my
|
||
screen. (I used the script for putting the ISO8859-2 fonts for StarOffice).
|
||
Unfortunatelly, the KDE 2.0 kedit could not visualize the ISO8859-2 fonts and
|
||
after switching the keyboard and selecting ISO8859-2 charset I saw this:
|
||
??????? instead of lcaron, scaron, etc., but *acute symbols (uacute, aacute,
|
||
etc.) displayed well.
|
||
|
||
The maps in /usr/X11R6/lib/X11/xkb/symbols can be modified on the fly, but
|
||
this is a dirtier way than to modify Xmodmap maps. You switch keyboards from
|
||
the panel flag icon.
|
||
-----------------------------------------------------------------------------
|
||
|
||
6.3.2. Mandrake Linux 7.2 with XFree86 version 3.3.6
|
||
|
||
Apply the standard .Xmodmap keycodes (scaron, lcaron, not "threequarters" or
|
||
"mu", etc.) and issue the command: "xmodmap <20>/.Xmodmap" and you may work by
|
||
switching the keyboards by pressing Scroll Lock (if you use my Xmodmap file;
|
||
if you use other Xmodmap file, try right Alt or whatever else that is defined
|
||
in the Xmodmap file).
|
||
|
||
The FontPath statement in /etc/X11/XF86Config and /etc/X11/XF86Config does
|
||
not have to be changed:
|
||
|
||
FontPath "unix/:1"
|
||
|
||
The XFree86 reads automatically your fonts, but I put the ISO8859-2 fonts to
|
||
/usr/share/fonts directory (same as in RedHat). Surprisingly, you do not have
|
||
to copy the ../ISO8859-2/Compose file to ../ISO8859-1 directory and dead keys
|
||
work nicely.
|
||
-----------------------------------------------------------------------------
|
||
|
||
6.4. Mandrake 8.1
|
||
|
||
These distributions work well as they should. In KDE, you must open the menu:
|
||
Start > Preferences > Personalization > Country and Language, where you will
|
||
change CHARSET from ISO8859-1 to ISO8859-2 (or ISO8859-X for any other
|
||
language of your choice). Then you may either select a keyboard layout -
|
||
Peripherals, Keyboard (Slovak is included with dozens of other keyboard XKB
|
||
maps) from the menu: Start > Configuration > KDE > Personalisation >
|
||
Peripherals > Keyboard, or you may choose my Standard Xmodmap solution. No
|
||
other files require editing. That's great! Alternatively, you can set your
|
||
keyboard with setxkbmap command (see section FreeBSD 4.4).
|
||
-----------------------------------------------------------------------------
|
||
|
||
6.5. RedHat 5.1, 5.2, 6.0, 6.1 and 6.2 (XFree86 3.3.6 and older)
|
||
|
||
The legacy solution must be used here. No LANG=language statement is
|
||
necessary in your bash_profile. Here the "experimental" .Xmodmap solution
|
||
works ("mu" instead of "lcaron", etc.) and you must copy the Compose file
|
||
from ../IS08859-2 to ISO8859-1 directory in order for dead keys to work.
|
||
There is only one XF86Config file in /etc/X11 and its FontPath must contain
|
||
path to the pertinent fonts.
|
||
-----------------------------------------------------------------------------
|
||
|
||
6.6. RedHat 7.2, RedHat 8.0, Slackware 8.1
|
||
|
||
RedHat 7.2 behaves same as Mandrake 8.1. RedHat 8.0, with KDE 3, works nicely
|
||
without problems - you can use the xmodmap solution immediately without
|
||
digging up in the system and changing configurations. You do not have to go
|
||
to Look and Feel menu in the Preferences menu - you can either apply the
|
||
xmodmap solution immediately, or you can choose to configure (add) keyboard
|
||
in the Preferences - Peripherals menu (if you decide for XKB). You will have
|
||
the keyboard icon placed on the panel and you just click on it to switch
|
||
between keyboards. Slackware 8.1 behaves exactly as RedHat 8.0, I only had to
|
||
include the "export= language command (both for XKB and Xmodmap solution) in
|
||
the Bash profile for the dead keys to work.
|
||
-----------------------------------------------------------------------------
|
||
|
||
6.7. FreeBSD 3.1 and 3.2
|
||
|
||
Internationalization works the same way as with RedHat 5.1, 5.2, 6.0, 6.1,
|
||
6.2
|
||
-----------------------------------------------------------------------------
|
||
|
||
6.8. FreeBSD 4.1, 4.2, 4.3, 4.4, 4.5
|
||
|
||
No LANG=language statement is necessary in your bash_profile. But you must
|
||
put this to /etc/profile: LANG=cs_CZ.ISO_8859-2; export LANG
|
||
|
||
FreeBSD 4.1, 4.2, 4.3, 4.4 does not use Slovak locale, so we must use the
|
||
Czech one here. It really does not matter. Here this depends on XFree86.
|
||
Because the FreeBSD guys are too conservative about newer versions, they ship
|
||
FreeBSD with older versions of XFree86. In FreeBSD 4.1 the experimental
|
||
.Xmodmap solution works and you have to copy the ../ISO8859-2/Compose file to
|
||
../ISO8859-1 directory to make the dead keys work.
|
||
-----------------------------------------------------------------------------
|
||
|
||
6.9. FreeBSD 4.6.
|
||
|
||
The Standard Xmodmap solution works well. I think this version has some
|
||
problems with installation - after installing the system, I missed some
|
||
things I had selected in the installation wizard. A good idea would be to
|
||
upgrade.
|
||
|
||
If you decide to run setxkbmap (FreeBSD or Linux), you may use
|
||
|
||
setxkbmap si
|
||
|
||
as a command from an X Terminal for the Slovenian language
|
||
|
||
setxkbmap se
|
||
|
||
for Swedish
|
||
|
||
setxkbmap de
|
||
|
||
for German, etc.
|
||
|
||
A brief overview of names that stand for XKB maps:
|
||
|
||
am Armenian keyboard
|
||
|
||
be Belgian
|
||
|
||
de German
|
||
|
||
ca Canadian
|
||
|
||
cs Czech
|
||
|
||
dk Danish
|
||
|
||
es Spanish
|
||
|
||
fi Finnish
|
||
|
||
fr French
|
||
|
||
gb Great Britain
|
||
|
||
hu Hungarian
|
||
|
||
is Iceland
|
||
|
||
it Italian
|
||
|
||
jp Japanese
|
||
|
||
no Norwegian
|
||
|
||
pl Polish
|
||
|
||
pt Portugese
|
||
|
||
ro Romanian
|
||
|
||
ru Russian
|
||
|
||
se Swedish
|
||
|
||
si Slovenian
|
||
-----------------------------------------------------------------------------
|
||
|
||
6.10. Corel Linux 1.0 and 1.1
|
||
|
||
Same as with FreeBSD 3.x - legacy Xmodmap solution must be applied.
|
||
-----------------------------------------------------------------------------
|
||
|
||
7. ISO* specifications
|
||
|
||
------------------------------------------------------------------- ISO8859-0
|
||
old, replaced by ISO 8859-14 and ISO 8859-15.
|
||
|
||
ISO8859-1 Western Europe: Danish, Dutch, English, Faeroese, Finnish, Flemish,
|
||
French, German, Icelandic, Irish, Italian, Norwegian, Portuguese, Spanish,
|
||
and Swedish. Many other languages can be written with this.
|
||
|
||
ISO8859-2 Eastern Europe: Czech, Slovak, English, German, Hungarian, Polish,
|
||
Romanian, Serbo-Croatian, Slovak, Slovene.
|
||
|
||
ISO8859-3 English, Esperanto, Galician, Maltese and Turkish.
|
||
|
||
ISO8859-4 English, Baltic languages - Estonian, Latvian, Lithuanian, and
|
||
Scandinavian languages - Danish, Faeroese, Icelandic, Lappish, Norwegian, and
|
||
Swedish.
|
||
|
||
ISO8859-5 Latin/Cyrillic alphabet: Bulgarian, Byelorussian, English,
|
||
Macedonian, Russian, Serbian, Ukrainian.
|
||
|
||
ISO8859-6 Latin/Arabic alphabet: English, Arabic.
|
||
|
||
ISO8859-7 Latin/Greek alphabet: English, Greek.
|
||
|
||
ISO8859-8 Latin/Hebrew alphabet: English, Hebrew.
|
||
|
||
ISO8859-9 Latin alphabet: Danish, Dutch, English, Finnish, French, German,
|
||
Irish, Italian, Norwegian, Portuguese, Spanish, Swedish, Turkish, formed by
|
||
extending ISO8859-1.
|
||
|
||
ISO8859-10 Latin alphabet: Modification of ISO8859-4
|
||
|
||
ISO8859-11 Latin/Thai alphabet.
|
||
|
||
ISO8859-12 Reserved.
|
||
|
||
ISO8859-13 Baltic.
|
||
|
||
ISO8859-14 Celtic
|
||
|
||
ISO8859-15 Similar to Latin-1
|
||
|
||
ISO8859-16 Albanian, Croatian, English, Finnish, French, German, Hungarian,
|
||
Irish Gaelic, Italian, Latin, Polish, Romanian, Slovenian, Lithuanian, and
|
||
Scandinavian languages (Danish, Faeroese, Icelandic.
|
||
-----------------------------------------------------------------------------
|
||
|
||
8. Some national Xmodmap files
|
||
|
||
Please note: I'am not the author of these files and don't mail me if you find
|
||
something incorrect in them. These files were taken from the GNOME
|
||
distribution and the main focus of this howto is to tell you how to map
|
||
various keycode entities. Use right Alt to switch the keyboard.
|
||
-----------------------------------------------------------------------------
|
||
|
||
8.1. German
|
||
|
||
clear Mod1
|
||
|
||
clear Mod2
|
||
|
||
keycode 9 = Escape Escape
|
||
|
||
keycode 10 = 1 exclam
|
||
|
||
keycode 11 = 2 quotedbl twosuperior
|
||
|
||
keycode 12 = 3 section threesuperior
|
||
|
||
keycode 13 = 4 dollar dollar
|
||
|
||
keycode 14 = 5 percent
|
||
|
||
keycode 15 = 6 ampersand
|
||
|
||
keycode 16 = 7 slash braceleft
|
||
|
||
keycode 17 = 8 parenleft bracketleft
|
||
|
||
keycode 18 = 9 parenright bracketright
|
||
|
||
keycode 19 = 0 equal braceright
|
||
|
||
keycode 20 = ssharp question backslash
|
||
|
||
keycode 21 = dead_acute dead_grave
|
||
|
||
keycode 22 = BackSpace Delete
|
||
|
||
keycode 23 = Tab Tab
|
||
|
||
keycode 24 = q Q at
|
||
|
||
keycode 25 = w
|
||
|
||
keycode 26 = e
|
||
|
||
keycode 27 = r
|
||
|
||
keycode 28 = t
|
||
|
||
keycode 29 = z
|
||
|
||
keycode 30 = u
|
||
|
||
keycode 31 = i
|
||
|
||
keycode 32 = o
|
||
|
||
keycode 33 = p
|
||
|
||
keycode 34 = udiaeresis Udiaeresis
|
||
|
||
keycode 35 = plus asterisk dead_tilde
|
||
|
||
keycode 36 = Return
|
||
|
||
keycode 37 = Control_L
|
||
|
||
keycode 38 = a
|
||
|
||
keycode 39 = s
|
||
|
||
keycode 40 = d
|
||
|
||
keycode 41 = f
|
||
|
||
keycode 42 = g
|
||
|
||
keycode 43 = h
|
||
|
||
keycode 44 = j
|
||
|
||
keycode 45 = k
|
||
|
||
keycode 46 = l
|
||
|
||
keycode 47 = odiaeresis Odiaeresis
|
||
|
||
keycode 48 = adiaeresis Adiaeresis
|
||
|
||
keycode 49 = dead_circumflex degree
|
||
|
||
keycode 50 = Shift_L
|
||
|
||
keycode 51 = numbersign apostrophe
|
||
|
||
keycode 52 = y
|
||
|
||
keycode 53 = x
|
||
|
||
keycode 54 = c
|
||
|
||
keycode 55 = v
|
||
|
||
keycode 56 = b
|
||
|
||
keycode 57 = n
|
||
|
||
keycode 58 = m
|
||
|
||
keycode 59 = comma semicolon
|
||
|
||
keycode 60 = period colon Multi_key
|
||
|
||
keycode 61 = minus underscore
|
||
|
||
keycode 62 = Shift_R
|
||
|
||
keycode 63 = KP_Multiply
|
||
|
||
keycode 64 = Alt_L Meta_L
|
||
|
||
keycode 65 = space space
|
||
|
||
keycode 66 = Caps_Lock
|
||
|
||
keycode 67 = F1 F11
|
||
|
||
keycode 68 = F2 F12
|
||
|
||
keycode 69 = F3 F13
|
||
|
||
keycode 70 = F4 F14
|
||
|
||
keycode 71 = F5 F15
|
||
|
||
keycode 72 = F6 F16
|
||
|
||
keycode 73 = F7 F17
|
||
|
||
keycode 74 = F8 F18
|
||
|
||
keycode 75 = F9 F19
|
||
|
||
keycode 76 = F10 F20
|
||
|
||
keycode 77 = Num_Lock
|
||
|
||
keycode 78 = Scroll_Lock
|
||
|
||
keycode 79 = KP_7
|
||
|
||
keycode 80 = KP_8
|
||
|
||
keycode 81 = KP_9
|
||
|
||
keycode 82 = KP_Subtract
|
||
|
||
keycode 83 = KP_4
|
||
|
||
keycode 84 = KP_5
|
||
|
||
keycode 85 = KP_6
|
||
|
||
keycode 86 = KP_Add
|
||
|
||
keycode 87 = KP_1
|
||
|
||
keycode 88 = KP_2
|
||
|
||
keycode 89 = KP_3
|
||
|
||
keycode 90 = KP_0
|
||
|
||
keycode 91 = KP_Decimal
|
||
|
||
keycode 94 = less greater bar
|
||
|
||
keycode 95 = F11 F11
|
||
|
||
keycode 96 = F12 F12
|
||
|
||
keycode 108 = KP_Enter
|
||
|
||
keycode 109 = Control_R
|
||
|
||
keycode 112 = KP_Divide
|
||
|
||
keycode 113 = Mode_switch
|
||
|
||
keycode 114 = Break
|
||
|
||
keycode 110 = Find
|
||
|
||
keycode 98 = Up
|
||
|
||
keycode 99 = Prior
|
||
|
||
keycode 100 = Left
|
||
|
||
keycode 102 = Right
|
||
|
||
keycode 115 = Select
|
||
|
||
keycode 104 = Down
|
||
|
||
keycode 105 = Next
|
||
|
||
keycode 106 = Insert
|
||
|
||
! right windows-logo key
|
||
|
||
! in "windows" keyboards the postion of the key is annoying, is where AltGr
|
||
|
||
! usually resides, so go define it as AltGr
|
||
|
||
keycode 116 = Mode_switch
|
||
|
||
! right windows-menu key
|
||
|
||
keycode 117 = Multi_key
|
||
|
||
add Mod1 = Alt_L
|
||
|
||
add Mod2 = Mode_switch
|
||
-----------------------------------------------------------------------------
|
||
|
||
8.2. Hungarian
|
||
|
||
clear Mod1
|
||
|
||
clear Mod2
|
||
|
||
!charset "iso-8859-2"
|
||
|
||
keycode 9 = Escape
|
||
|
||
keycode 10 = 1 apostrophe asciitilde
|
||
|
||
keycode 11 = 2 quotedbl dead_caron
|
||
|
||
keycode 12 = 3 plus dead_circumflex
|
||
|
||
keycode 13 = 4 exclam dead_breve
|
||
|
||
keycode 14 = 5 percent degree
|
||
|
||
keycode 15 = 6 slash dead_ogonek
|
||
|
||
keycode 16 = 7 equal dead_grave
|
||
|
||
keycode 17 = 8 parenleft dead_abovedot
|
||
|
||
keycode 18 = 9 parenright dead_acute
|
||
|
||
keycode 19 = odiaeresis Odiaeresis dead_doubleacute
|
||
|
||
keycode 20 = udiaeresis Udiaeresis dead_diaeresis
|
||
|
||
keycode 21 = oacute Oacute dead_cedilla
|
||
|
||
keycode 22 = BackSpace Delete
|
||
|
||
keycode 23 = Tab Tab
|
||
|
||
keycode 24 = q Q backslash
|
||
|
||
keycode 25 = w W bar
|
||
|
||
keycode 26 = e E currency
|
||
|
||
keycode 27 = r
|
||
|
||
keycode 28 = t
|
||
|
||
keycode 29 = z
|
||
|
||
keycode 30 = u
|
||
|
||
keycode 31 = i I iacute Iacute
|
||
|
||
keycode 32 = o
|
||
|
||
keycode 33 = p
|
||
|
||
keycode 34 = odoubleacute Odoubleacute division
|
||
|
||
keycode 35 = uacute Uacute
|
||
|
||
keycode 36 = Return
|
||
|
||
keycode 37 = Control_L
|
||
|
||
keycode 38 = a
|
||
|
||
keycode 39 = s S dstroke
|
||
|
||
keycode 40 = d D Dstroke
|
||
|
||
keycode 41 = f F bracketleft
|
||
|
||
keycode 42 = g G bracketright
|
||
|
||
keycode 43 = h
|
||
|
||
keycode 44 = j J Iacute iacute
|
||
|
||
keycode 45 = k K lstroke Lstroke
|
||
|
||
keycode 46 = l L Lstroke lstroke
|
||
|
||
keycode 47 = eacute Eacute dollar
|
||
|
||
keycode 48 = aacute Aacute ssharp
|
||
|
||
keycode 49 = 0 section
|
||
|
||
keycode 50 = Shift_L
|
||
|
||
keycode 51 = udoubleacute Udoubleacute currency
|
||
|
||
keycode 52 = y Y greater
|
||
|
||
keycode 53 = x X numbersign
|
||
|
||
keycode 54 = c C ampersand
|
||
|
||
keycode 55 = v V at
|
||
|
||
keycode 56 = b B braceleft
|
||
|
||
keycode 57 = n N braceright
|
||
|
||
keycode 58 = m
|
||
|
||
keycode 59 = comma question semicolon
|
||
|
||
keycode 60 = period colon Multi_key
|
||
|
||
keycode 61 = minus underscore asterisk
|
||
|
||
keycode 62 = Shift_R
|
||
|
||
keycode 63 = KP_Multiply
|
||
|
||
keycode 64 = Alt_L Meta_L
|
||
|
||
keycode 65 = space space
|
||
|
||
keycode 66 = Caps_Lock
|
||
|
||
keycode 67 = F1 F11
|
||
|
||
keycode 68 = F2 F12
|
||
|
||
keycode 69 = F3 F13
|
||
|
||
keycode 70 = F4 F14
|
||
|
||
keycode 71 = F5 F15
|
||
|
||
keycode 72 = F6 F16
|
||
|
||
keycode 73 = F7 F17
|
||
|
||
keycode 74 = F8 F18
|
||
|
||
keycode 75 = F9 F19
|
||
|
||
keycode 76 = F10 F20
|
||
|
||
keycode 77 = Num_Lock
|
||
|
||
keycode 78 = Scroll_Lock
|
||
|
||
keycode 79 = KP_7
|
||
|
||
keycode 80 = KP_8
|
||
|
||
keycode 81 = KP_9
|
||
|
||
keycode 82 = KP_Subtract
|
||
|
||
keycode 83 = KP_4
|
||
|
||
keycode 84 = KP_5
|
||
|
||
keycode 85 = KP_6
|
||
|
||
keycode 86 = KP_Add
|
||
|
||
keycode 87 = KP_1
|
||
|
||
keycode 88 = KP_2
|
||
|
||
keycode 89 = KP_3
|
||
|
||
keycode 90 = KP_0
|
||
|
||
keycode 91 = KP_Decimal
|
||
|
||
keycode 94 = iacute Iacute less
|
||
|
||
keycode 95 = F11 F11
|
||
|
||
keycode 96 = F12 F12
|
||
|
||
keycode 108 = KP_Enter
|
||
|
||
keycode 109 = Control_R
|
||
|
||
keycode 112 = KP_Divide
|
||
|
||
keycode 113 = Mode_switch
|
||
|
||
keycode 114 = Break
|
||
|
||
keycode 110 = Find
|
||
|
||
keycode 98 = Up
|
||
|
||
keycode 99 = Prior
|
||
|
||
keycode 100 = Left
|
||
|
||
keycode 102 = Right
|
||
|
||
keycode 115 = Select
|
||
|
||
keycode 104 = Down
|
||
|
||
keycode 105 = Next
|
||
|
||
keycode 106 = Insert
|
||
|
||
keycode 107 = Delete
|
||
|
||
! as dead_ogonek, dead_caron, dead_breve and dead_doubleacute doesn't exist
|
||
|
||
! (yet), I put also compose lines for use with respectively dead_cedilla,
|
||
|
||
! dead_circumflex, dead_tilde and dead_tilde
|
||
|
||
add Mod1 = Alt_L
|
||
|
||
add Mod2 = Mode_switch
|
||
-----------------------------------------------------------------------------
|
||
|
||
8.3. Czech
|
||
|
||
! Converted keytable file to xmodmap file
|
||
|
||
clear Mod1
|
||
|
||
clear Mod2
|
||
|
||
keycode 9 = Escape Escape
|
||
|
||
keycode 10 = plus 1 asciitilde
|
||
|
||
keycode 11 = ecaron 2 dead_caron
|
||
|
||
keycode 12 = scaron 3 asciicircum
|
||
|
||
keycode 13 = ccaron 4 dead_breve
|
||
|
||
keycode 14 = rcaron 5 degree
|
||
|
||
keycode 15 = zcaron 6 dead_ogonek
|
||
|
||
keycode 16 = yacute 7 dead_grave
|
||
|
||
keycode 17 = aacute 8 dead_abovedot
|
||
|
||
keycode 18 = iacute 9 dead_acute
|
||
|
||
keycode 19 = eacute 0 dead_doubleacute
|
||
|
||
keycode 20 = equal percent dead_diaeresis
|
||
|
||
keycode 21 = dead_acute dead_caron dead_cedilla
|
||
|
||
keycode 22 = BackSpace Delete
|
||
|
||
keycode 23 = Tab Tab
|
||
|
||
keycode 24 = q Q backslash
|
||
|
||
keycode 25 = w W bar
|
||
|
||
keycode 26 = e E currency
|
||
|
||
keycode 27 = r
|
||
|
||
keycode 28 = t
|
||
|
||
keycode 29 = z
|
||
|
||
keycode 30 = u
|
||
|
||
keycode 31 = i
|
||
|
||
keycode 32 = o
|
||
|
||
keycode 33 = p
|
||
|
||
keycode 34 = uacute slash division
|
||
|
||
keycode 35 = parenright parenleft
|
||
|
||
keycode 36 = Return
|
||
|
||
keycode 37 = Control_L
|
||
|
||
keycode 38 = a
|
||
|
||
keycode 39 = s S dstroke Dstroke
|
||
|
||
keycode 40 = d D Dstroke dstroke
|
||
|
||
keycode 41 = f F bracketleft
|
||
|
||
keycode 42 = g G bracketright
|
||
|
||
keycode 43 = h
|
||
|
||
keycode 44 = j
|
||
|
||
keycode 45 = k K lstroke Lstroke
|
||
|
||
keycode 46 = l L Lstroke lstroke
|
||
|
||
keycode 47 = uring quotedbl dollar
|
||
|
||
keycode 48 = section exclam ssharp
|
||
|
||
keycode 49 = semicolon degree
|
||
|
||
keycode 50 = Shift_L
|
||
|
||
keycode 51 = dead_diaeresis dead_acute currency
|
||
|
||
keycode 52 = y Y greater
|
||
|
||
keycode 53 = x X numbersign
|
||
|
||
keycode 54 = c
|
||
|
||
keycode 55 = v V at
|
||
|
||
keycode 56 = b B braceleft
|
||
|
||
keycode 57 = n N braceright
|
||
|
||
keycode 58 = m
|
||
|
||
keycode 59 = comma question
|
||
|
||
keycode 60 = period colon Multi_key
|
||
|
||
keycode 61 = minus underscore
|
||
|
||
keycode 62 = Shift_R
|
||
|
||
keycode 63 = KP_Multiply
|
||
|
||
keycode 64 = Alt_L Meta_L
|
||
|
||
keycode 65 = space space
|
||
|
||
keycode 66 = Caps_Lock
|
||
|
||
keycode 67 = F1 F11
|
||
|
||
keycode 68 = F2 F12
|
||
|
||
keycode 69 = F3 F13
|
||
|
||
keycode 70 = F4 F14
|
||
|
||
keycode 71 = F5 F15
|
||
|
||
keycode 72 = F6 F16
|
||
|
||
keycode 73 = F7 F17
|
||
|
||
keycode 74 = F8 F18
|
||
|
||
keycode 75 = F9 F19
|
||
|
||
keycode 76 = F10 F20
|
||
|
||
keycode 77 = Num_Lock
|
||
|
||
keycode 78 = Scroll_Lock
|
||
|
||
keycode 79 = KP_7
|
||
|
||
keycode 80 = KP_8
|
||
|
||
keycode 81 = KP_9
|
||
|
||
keycode 82 = KP_Subtract
|
||
|
||
keycode 83 = KP_4
|
||
|
||
keycode 84 = KP_5
|
||
|
||
keycode 85 = KP_6
|
||
|
||
keycode 86 = KP_Add
|
||
|
||
keycode 87 = KP_1
|
||
|
||
keycode 88 = KP_2
|
||
|
||
keycode 89 = KP_3
|
||
|
||
keycode 90 = KP_0
|
||
|
||
keycode 94 = ampersand asterisk less
|
||
|
||
keycode 95 = F11 F11
|
||
|
||
keycode 96 = F12 F12
|
||
|
||
keycode 108 = KP_Enter
|
||
|
||
keycode 109 = Control_R
|
||
|
||
keycode 112 = KP_Divide
|
||
|
||
keycode 113 = Mode_switch
|
||
|
||
keycode 114 = Break
|
||
|
||
keycode 110 = Find
|
||
|
||
keycode 98 = Up
|
||
|
||
keycode 99 = Prior
|
||
|
||
keycode 100 = Left
|
||
|
||
keycode 102 = Right
|
||
|
||
keycode 115 = Select
|
||
|
||
keycode 104 = Down
|
||
|
||
keycode 105 = Next
|
||
|
||
keycode 106 = Insert
|
||
|
||
! right windows-logo key
|
||
|
||
! in "windows" keyboards the postion of the key is annoying, is where AltGr
|
||
|
||
! usually resides, so go definie it as AltGr
|
||
|
||
keycode 116 = Mode_switch
|
||
|
||
! right windows-menu key
|
||
|
||
keycode 117 = Multi_key
|
||
|
||
add Mod1 = Alt_L
|
||
|
||
add Mod2 = Mode_switch
|
||
-----------------------------------------------------------------------------
|
||
|
||
8.4. Polish
|
||
|
||
! The "AltGr" (right Alt) key generates Mode_switch
|
||
|
||
keycode 0x09 = Escape
|
||
|
||
keycode 0x43 = F1
|
||
|
||
keycode 0x44 = F2
|
||
|
||
keycode 0x45 = F3
|
||
|
||
keycode 0x46 = F4
|
||
|
||
keycode 0x47 = F5
|
||
|
||
keycode 0x48 = F6
|
||
|
||
keycode 0x49 = F7
|
||
|
||
keycode 0x4A = F8
|
||
|
||
keycode 0x4B = F9
|
||
|
||
keycode 0x4C = F10
|
||
|
||
keycode 0x5F = F11
|
||
|
||
keycode 0x60 = F12
|
||
|
||
keycode 0x6F = Print
|
||
|
||
keycode 0x4E = Multi_key
|
||
|
||
keycode 0x6E = Pause
|
||
|
||
keycode 0x31 = grave asciitilde
|
||
|
||
keycode 0x0A = 1 exclam
|
||
|
||
keycode 0x0B = 2 at
|
||
|
||
keycode 0x0C = 3 numbersign
|
||
|
||
keycode 0x0D = 4 dollar
|
||
|
||
keycode 0x0E = 5 percent
|
||
|
||
keycode 0x0F = 6 asciicircum
|
||
|
||
keycode 0x10 = 7 ampersand section
|
||
|
||
keycode 0x11 = 8 asterisk
|
||
|
||
keycode 0x12 = 9 parenleft
|
||
|
||
keycode 0x13 = 0 parenright
|
||
|
||
keycode 0x14 = minus underscore
|
||
|
||
keycode 0x15 = equal plus
|
||
|
||
keycode 0x33 = backslash bar
|
||
|
||
keycode 0x16 = BackSpace
|
||
|
||
keycode 0x6A = Insert
|
||
|
||
keycode 0x61 = Home
|
||
|
||
keycode 0x63 = Prior
|
||
|
||
keycode 0x4D = Num_Lock
|
||
|
||
keycode 0x70 = KP_Divide
|
||
|
||
keycode 0x3F = KP_Multiply
|
||
|
||
keycode 0x52 = KP_Subtract
|
||
|
||
keycode 0x17 = Tab
|
||
|
||
keycode 0x18 = Q
|
||
|
||
keycode 0x19 = W
|
||
|
||
keycode 0x1A = e E eogonek Eogonek
|
||
|
||
keycode 0x1B = R
|
||
|
||
keycode 0x1C = T
|
||
|
||
keycode 0x1D = Y
|
||
|
||
keycode 0x1E = U
|
||
|
||
keycode 0x1F = I
|
||
|
||
keycode 0x20 = o O oacute Oacute
|
||
|
||
keycode 0x21 = P
|
||
|
||
keycode 0x22 = bracketleft braceleft
|
||
|
||
keycode 0x23 = bracketright braceright
|
||
|
||
keycode 0x24 = Return
|
||
|
||
keycode 0x6B = Delete
|
||
|
||
keycode 0x67 = End
|
||
|
||
keycode 0x69 = Next
|
||
|
||
keycode 0x4F = KP_7
|
||
|
||
keycode 0x50 = KP_8
|
||
|
||
keycode 0x51 = KP_9
|
||
|
||
keycode 0x56 = KP_Add
|
||
|
||
keycode 0x42 = Caps_Lock
|
||
|
||
keycode 0x26 = a A aogonek Aogonek
|
||
|
||
keycode 0x27 = s S sacute Sacute
|
||
|
||
keycode 0x28 = D
|
||
|
||
keycode 0x29 = F
|
||
|
||
keycode 0x2A = G
|
||
|
||
keycode 0x2B = H
|
||
|
||
keycode 0x2C = J
|
||
|
||
keycode 0x2D = K
|
||
|
||
keycode 0x2E = l L lstroke Lstroke
|
||
|
||
keycode 0x2F = semicolon colon
|
||
|
||
keycode 0x30 = apostrophe quotedbl
|
||
|
||
keycode 0x53 = KP_4
|
||
|
||
keycode 0x54 = KP_5
|
||
|
||
keycode 0x55 = KP_6
|
||
|
||
keycode 0x32 = Shift_L
|
||
|
||
keycode 0x34 = z Z zabovedot Zabovedot
|
||
|
||
keycode 0x35 = x X zacute Zacute
|
||
|
||
keycode 0x36 = c C cacute Cacute
|
||
|
||
keycode 0x37 = V
|
||
|
||
keycode 0x38 = B
|
||
|
||
keycode 0x39 = n N nacute Nacute
|
||
|
||
keycode 0x3A = M
|
||
|
||
keycode 0x3B = comma less
|
||
|
||
keycode 0x3C = period greater Multi_key
|
||
|
||
keycode 0x3D = slash question
|
||
|
||
keycode 0x3E = Shift_R
|
||
|
||
keycode 0x62 = Up
|
||
|
||
keycode 0x57 = KP_1
|
||
|
||
keycode 0x58 = KP_2
|
||
|
||
keycode 0x59 = KP_3
|
||
|
||
keycode 0x6C = KP_Enter
|
||
|
||
keycode 0x25 = Control_L
|
||
|
||
keycode 0x40 = Alt_L Meta_L
|
||
|
||
keycode 0x41 = space
|
||
|
||
keycode 0x71 = Mode_switch
|
||
|
||
keycode 0x6D = Control_R
|
||
|
||
keycode 0x64 = Left
|
||
|
||
keycode 0x68 = Down
|
||
|
||
keycode 0x66 = Right
|
||
|
||
keycode 0x5A = KP_0
|
||
|
||
keycode 0x5B = KP_Decimal
|
||
|
||
! right windows-logo key
|
||
|
||
! in "windows" keyboards the postion of the key is annoying, is where AltGr
|
||
|
||
! usually resides, so go definie it as AltGr
|
||
|
||
keycode 116 = Mode_switch
|
||
|
||
! right windows-menu key
|
||
|
||
keycode 117 = Multi_key
|
||
|
||
clear Shift
|
||
|
||
clear Lock
|
||
|
||
clear Control
|
||
|
||
clear Mod1
|
||
|
||
clear Mod2
|
||
|
||
clear Mod3
|
||
|
||
clear Mod4
|
||
|
||
clear Mod5
|
||
|
||
add Shift = Shift_L Shift_R
|
||
|
||
add Lock = Caps_Lock
|
||
|
||
add Control = Control_L Control_R
|
||
|
||
add Mod1 = Alt_L
|
||
|
||
!Mode_switch
|
||
|
||
add Mod2 = Mode_switch
|
||
-----------------------------------------------------------------------------
|
||
|
||
8.5. French
|
||
|
||
clear Mod1
|
||
|
||
clear Mod2
|
||
|
||
keycode 9 = Escape Escape
|
||
|
||
keycode 10 = ampersand 1
|
||
|
||
keycode 11 = eacute 2 dead_tilde
|
||
|
||
keycode 12 = quotedbl 3 numbersign
|
||
|
||
keycode 13 = apostrophe 4 braceleft
|
||
|
||
keycode 14 = parenleft 5 bracketleft
|
||
|
||
keycode 15 = minus 6 bar
|
||
|
||
keycode 16 = egrave 7 dead_grave
|
||
|
||
keycode 17 = underscore 8 backslash
|
||
|
||
keycode 18 = ccedilla 9 asciicircum
|
||
|
||
keycode 19 = agrave 0 at
|
||
|
||
keycode 20 = parenright degree bracketright
|
||
|
||
keycode 21 = equal plus braceright
|
||
|
||
keycode 22 = BackSpace
|
||
|
||
keycode 23 = Tab Tab
|
||
|
||
keycode 24 = a
|
||
|
||
keycode 25 = z
|
||
|
||
keycode 26 = e E currency
|
||
|
||
keycode 27 = r
|
||
|
||
keycode 28 = t
|
||
|
||
keycode 29 = y
|
||
|
||
keycode 30 = u
|
||
|
||
keycode 31 = i
|
||
|
||
keycode 32 = o
|
||
|
||
keycode 33 = p
|
||
|
||
keycode 34 = dead_circumflex dead_diaeresis
|
||
|
||
keycode 35 = dollar sterling currency
|
||
|
||
keycode 36 = Return
|
||
|
||
keycode 37 = Control_L
|
||
|
||
keycode 38 = q
|
||
|
||
keycode 39 = s
|
||
|
||
keycode 40 = d
|
||
|
||
keycode 41 = f
|
||
|
||
keycode 42 = g
|
||
|
||
keycode 43 = h
|
||
|
||
keycode 44 = j
|
||
|
||
keycode 45 = k
|
||
|
||
keycode 46 = l
|
||
|
||
keycode 47 = m M
|
||
|
||
keycode 48 = ugrave percent
|
||
|
||
keycode 49 = twosuperior
|
||
|
||
keycode 50 = Shift_L
|
||
|
||
keycode 51 = asterisk mu
|
||
|
||
keycode 52 = w
|
||
|
||
keycode 53 = x
|
||
|
||
keycode 54 = c
|
||
|
||
keycode 55 = v
|
||
|
||
keycode 56 = b
|
||
|
||
keycode 57 = n
|
||
|
||
keycode 58 = comma question dead_cedilla
|
||
|
||
keycode 59 = semicolon period
|
||
|
||
keycode 60 = colon slash Multi_key
|
||
|
||
keycode 61 = exclam section
|
||
|
||
keycode 62 = Shift_R
|
||
|
||
keycode 63 = KP_Multiply
|
||
|
||
keycode 64 = Alt_L Meta_L
|
||
|
||
keycode 65 = space space
|
||
|
||
keycode 66 = Caps_Lock
|
||
|
||
keycode 67 = F1 F11
|
||
|
||
keycode 68 = F2 F12
|
||
|
||
keycode 69 = F3 F13
|
||
|
||
keycode 70 = F4 F14
|
||
|
||
keycode 71 = F5 F15
|
||
|
||
keycode 72 = F6 F16
|
||
|
||
keycode 73 = F7 F17
|
||
|
||
keycode 74 = F8 F18
|
||
|
||
keycode 75 = F9 F19
|
||
|
||
keycode 76 = F10 F20
|
||
|
||
keycode 77 = Num_Lock
|
||
|
||
keycode 78 = Scroll_Lock
|
||
|
||
keycode 79 = KP_7
|
||
|
||
keycode 80 = KP_8
|
||
|
||
keycode 81 = KP_9
|
||
|
||
keycode 82 = KP_Subtract
|
||
|
||
keycode 83 = KP_4
|
||
|
||
keycode 84 = KP_5
|
||
|
||
keycode 85 = KP_6
|
||
|
||
keycode 86 = KP_Add
|
||
|
||
keycode 87 = KP_1
|
||
|
||
keycode 88 = KP_2
|
||
|
||
keycode 89 = KP_3
|
||
|
||
keycode 90 = KP_0
|
||
|
||
keycode 92 = Sys_Req
|
||
|
||
keycode 94 = less greater bar
|
||
|
||
keycode 95 = F11 F11
|
||
|
||
keycode 96 = F12 F12
|
||
|
||
keycode 107 = Delete
|
||
|
||
keycode 108 = KP_Enter
|
||
|
||
keycode 109 = Control_R
|
||
|
||
keycode 112 = KP_Divide
|
||
|
||
keycode 113 = Mode_switch
|
||
|
||
keycode 114 = Break
|
||
|
||
keycode 110 = Find
|
||
|
||
keycode 98 = Up
|
||
|
||
keycode 99 = Prior
|
||
|
||
keycode 100 = Left
|
||
|
||
keycode 102 = Right
|
||
|
||
keycode 104 = Down
|
||
|
||
keycode 105 = Next
|
||
|
||
keycode 106 = Insert
|
||
|
||
! right windows-logo key
|
||
|
||
! in "windows" keyboards the postion of the key is annoying, is where AltGr
|
||
|
||
! usually resides, so go definie it as AltGr
|
||
|
||
keycode 116 = Mode_switch
|
||
|
||
! right windows-menu key
|
||
|
||
keycode 117 = Multi_key
|
||
|
||
add Mod1 = Alt_L
|
||
|
||
add Mod2 = Mode_switch
|
||
-----------------------------------------------------------------------------
|
||
|
||
8.6. Croatian/Slovenian
|
||
|
||
clear Mod1
|
||
|
||
clear Mod2
|
||
|
||
keycode 9 = Escape
|
||
|
||
keycode 10 = 1 exclam asciitilde
|
||
|
||
keycode 11 = 2 quotedbl caron
|
||
|
||
keycode 12 = 3 numbersign asciicircum
|
||
|
||
keycode 13 = 4 dollar breve
|
||
|
||
keycode 14 = 5 percent degree
|
||
|
||
keycode 15 = 6 ampersand ogonek
|
||
|
||
keycode 16 = 7 slash grave
|
||
|
||
keycode 17 = 8 parenleft abovedot
|
||
|
||
keycode 18 = 9 parenright acute
|
||
|
||
keycode 19 = 0 equal doubleacute
|
||
|
||
keycode 20 = apostrophe question diaeresis
|
||
|
||
keycode 21 = plus asterisk cedilla
|
||
|
||
keycode 22 = Delete Delete
|
||
|
||
keycode 23 = Tab Tab
|
||
|
||
keycode 24 = q Q backslash
|
||
|
||
keycode 25 = w W bar
|
||
|
||
keycode 26 = e
|
||
|
||
keycode 27 = r
|
||
|
||
keycode 28 = t
|
||
|
||
keycode 29 = z
|
||
|
||
keycode 30 = u
|
||
|
||
keycode 31 = i
|
||
|
||
keycode 32 = o
|
||
|
||
keycode 33 = p
|
||
|
||
keycode 34 = scaron Scaron division
|
||
|
||
keycode 35 = dstroke Dstroke multiply
|
||
|
||
keycode 36 = Return
|
||
|
||
keycode 37 = Control_L
|
||
|
||
keycode 38 = a
|
||
|
||
keycode 39 = s
|
||
|
||
keycode 40 = d
|
||
|
||
keycode 41 = f F bracketleft
|
||
|
||
keycode 42 = g G bracketright
|
||
|
||
keycode 43 = h
|
||
|
||
keycode 44 = j
|
||
|
||
keycode 45 = k K lstroke
|
||
|
||
keycode 46 = l L Lstroke
|
||
|
||
keycode 47 = ccaron Ccaron
|
||
|
||
keycode 48 = cacute Cacute ssharp
|
||
|
||
keycode 49 = cedilla diaeresis
|
||
|
||
keycode 50 = Shift_L
|
||
|
||
keycode 51 = zcaron Zcaron currency
|
||
|
||
keycode 52 = y
|
||
|
||
keycode 53 = x
|
||
|
||
keycode 54 = c
|
||
|
||
keycode 55 = v V at
|
||
|
||
keycode 56 = b B braceleft
|
||
|
||
keycode 57 = n N braceright
|
||
|
||
keycode 58 = m M section
|
||
|
||
keycode 59 = comma semicolon
|
||
|
||
keycode 60 = period colon
|
||
|
||
keycode 61 = minus underscore
|
||
|
||
keycode 62 = Shift_R
|
||
|
||
keycode 63 = KP_Multiply
|
||
|
||
keycode 64 = Alt_L Meta_L
|
||
|
||
keycode 65 = space space
|
||
|
||
keycode 66 = Caps_Lock
|
||
|
||
keycode 67 = F1 F11
|
||
|
||
keycode 68 = F2 F12
|
||
|
||
keycode 69 = F3 F13
|
||
|
||
keycode 70 = F4 F14
|
||
|
||
keycode 71 = F5 F15
|
||
|
||
keycode 72 = F6 F16
|
||
|
||
keycode 73 = F7 F17
|
||
|
||
keycode 74 = F8 F18
|
||
|
||
keycode 75 = F9 F19
|
||
|
||
keycode 76 = F10 F20
|
||
|
||
keycode 77 = Num_Lock
|
||
|
||
keycode 78 = Scroll_Lock
|
||
|
||
keycode 79 = KP_7
|
||
|
||
keycode 80 = KP_8
|
||
|
||
keycode 81 = KP_9
|
||
|
||
keycode 82 = KP_Subtract
|
||
|
||
keycode 83 = KP_4
|
||
|
||
keycode 84 = KP_5
|
||
|
||
keycode 85 = KP_6
|
||
|
||
keycode 86 = KP_Add
|
||
|
||
keycode 87 = KP_1
|
||
|
||
keycode 88 = KP_2
|
||
|
||
keycode 89 = KP_3
|
||
|
||
keycode 90 = KP_0
|
||
|
||
keycode 91 = KP_Decimal
|
||
|
||
keycode 92 = X386Sys_Req
|
||
|
||
keycode 94 = less greater
|
||
|
||
keycode 95 = F11 F1
|
||
|
||
keycode 96 = F12 F12
|
||
|
||
keycode 108 = KP_Enter
|
||
|
||
keycode 109 = Control_R
|
||
|
||
keycode 112 = KP_Divide
|
||
|
||
keycode 113 = Mode_switch
|
||
|
||
keycode 114 = Break
|
||
|
||
keycode 110 = Find
|
||
|
||
keycode 98 = Up
|
||
|
||
keycode 99 = Prior
|
||
|
||
keycode 100 = Left
|
||
|
||
keycode 102 = Right
|
||
|
||
keycode 104 = Down
|
||
|
||
keycode 105 = Next
|
||
|
||
keycode 106 = Insert
|
||
|
||
add Mod1 = Alt_L
|
||
|
||
add Mod2 = Mode_switch
|
||
-----------------------------------------------------------------------------
|
||
|
||
8.7. Lithuanian keyboard (AZERTY layout)
|
||
|
||
clear Mod1
|
||
|
||
clear Mod2
|
||
|
||
keycode 9 = Escape Escape
|
||
|
||
keycode 10 = exclam 1
|
||
|
||
keycode 11 = quotedbl 2 at
|
||
|
||
keycode 12 = slash 3 numbersign
|
||
|
||
keycode 13 = semicolon 4 dollar
|
||
|
||
keycode 14 = colon 5 percent
|
||
|
||
keycode 15 = comma 6 asciicircum
|
||
|
||
keycode 16 = period 7 ampersand
|
||
|
||
keycode 17 = question 8 asterisk
|
||
|
||
keycode 18 = parenleft 9
|
||
|
||
keycode 19 = parenright 0
|
||
|
||
keycode 20 = underscore minus minus underscore
|
||
|
||
keycode 21 = plus equal equal plus
|
||
|
||
keycode 22 = BackSpace
|
||
|
||
keycode 23 = Tab Tab
|
||
|
||
keycode 24 = aogonek Aogonek q Q
|
||
|
||
keycode 25 = zcaron Zcaron w W
|
||
|
||
keycode 26 = e E currency
|
||
|
||
keycode 27 = r
|
||
|
||
keycode 28 = t
|
||
|
||
keycode 29 = y
|
||
|
||
keycode 30 = u
|
||
|
||
keycode 31 = i
|
||
|
||
keycode 32 = o
|
||
|
||
keycode 33 = p
|
||
|
||
keycode 34 = iogonek Iogonek bracketleft braceleft
|
||
|
||
keycode 35 = leftdoublequotemark doublelowquotemark bracketright braceright
|
||
|
||
keycode 36 = Return
|
||
|
||
keycode 37 = Control_L
|
||
|
||
keycode 38 = a
|
||
|
||
keycode 39 = s
|
||
|
||
keycode 40 = d
|
||
|
||
keycode 41 = f
|
||
|
||
keycode 42 = g
|
||
|
||
keycode 43 = h
|
||
|
||
keycode 44 = j
|
||
|
||
keycode 45 = k
|
||
|
||
keycode 46 = l
|
||
|
||
keycode 47 = uogonek Uogonek semicolon colon
|
||
|
||
keycode 48 = eabovedot Eabovedot apostrophe quotedbl
|
||
|
||
keycode 49 = grave asciitilde
|
||
|
||
keycode 50 = Shift_L
|
||
|
||
keycode 51 = backslash bar
|
||
|
||
keycode 52 = z
|
||
|
||
keycode 53 = umacron Umacron x X
|
||
|
||
keycode 54 = c
|
||
|
||
keycode 55 = v
|
||
|
||
keycode 56 = b
|
||
|
||
keycode 57 = n
|
||
|
||
keycode 58 = m
|
||
|
||
keycode 59 = ccaron Ccaron comma less
|
||
|
||
keycode 60 = scaron Scaron period greater
|
||
|
||
keycode 61 = eogonek Eogonek slash question
|
||
|
||
keycode 62 = Shift_R
|
||
|
||
keycode 63 = KP_Multiply
|
||
|
||
keycode 64 = Alt_L Meta_L
|
||
|
||
keycode 65 = space space
|
||
|
||
keycode 66 = Caps_Lock
|
||
|
||
keycode 67 = F1 F11
|
||
|
||
keycode 68 = F2 F12
|
||
|
||
keycode 69 = F3 F13
|
||
|
||
keycode 70 = F4 F14
|
||
|
||
keycode 71 = F5 F15
|
||
|
||
keycode 72 = F6 F16
|
||
|
||
keycode 73 = F7 F17
|
||
|
||
keycode 74 = F8 F18
|
||
|
||
keycode 75 = F9 F19
|
||
|
||
keycode 76 = F10 F20
|
||
|
||
keycode 77 = Num_Lock
|
||
|
||
keycode 78 = Scroll_Lock
|
||
|
||
keycode 79 = KP_7
|
||
|
||
keycode 80 = KP_8
|
||
|
||
keycode 81 = KP_9
|
||
|
||
keycode 82 = KP_Subtract
|
||
|
||
keycode 83 = KP_4
|
||
|
||
keycode 84 = KP_5
|
||
|
||
keycode 85 = KP_6
|
||
|
||
keycode 86 = KP_Add
|
||
|
||
keycode 87 = KP_1
|
||
|
||
keycode 88 = KP_2
|
||
|
||
keycode 89 = KP_3
|
||
|
||
keycode 90 = KP_0
|
||
|
||
keycode 94 = less greater bar
|
||
|
||
keycode 95 = F11 F11
|
||
|
||
keycode 96 = F12 F12
|
||
|
||
keycode 108 = KP_Enter
|
||
|
||
keycode 109 = Control_R
|
||
|
||
keycode 112 = KP_Divide
|
||
|
||
keycode 113 = Mode_switch
|
||
|
||
keycode 114 = Break
|
||
|
||
keycode 110 = Find
|
||
|
||
keycode 98 = Up
|
||
|
||
keycode 99 = Prior
|
||
|
||
keycode 100 = Left
|
||
|
||
keycode 102 = Right
|
||
|
||
keycode 115 = Select
|
||
|
||
keycode 104 = Down
|
||
|
||
keycode 105 = Next
|
||
|
||
keycode 106 = Insert
|
||
|
||
! right windows-logo key
|
||
|
||
! in "windows" keyboards the postion of the key is annoying, is where AltGr
|
||
|
||
! usually resides, so go definie it as AltGr
|
||
|
||
keycode 116 = Mode_switch
|
||
|
||
! right windows-menu key, redefined as Compose key
|
||
|
||
keycode 117 = Multi_key
|
||
|
||
add Mod1 = Alt_L
|
||
|
||
add Mod2 = Mode_switch
|
||
-----------------------------------------------------------------------------
|
||
|
||
8.8. Polish
|
||
|
||
! The "& 7" key generates 7, ampersand, and section
|
||
|
||
! The "E" key generates e, E, eogonek, and Eogonek
|
||
|
||
! The "O" key generates o, O, oacute, and Oacute
|
||
|
||
! The "A" key generates a, A, aogonek, and Aogonek
|
||
|
||
! The "S" key generates s, S, sacute, and Sacute
|
||
|
||
! The "L" key generates l, L, lstroke, and Lstroke
|
||
|
||
! The "Z" key generates z, Z, zabovedot, and Zabovedot
|
||
|
||
! The "X" key generates x, X, zacute, and Zacute
|
||
|
||
! The "C" key generates c, C, cacute, and Cacute
|
||
|
||
! The "N" key generates n, N, nacute, and Nacute
|
||
|
||
! The "AltGr" key generates Mode_switch
|
||
|
||
keycode 0x09 = Escape
|
||
|
||
keycode 0x43 = F1
|
||
|
||
keycode 0x44 = F2
|
||
|
||
keycode 0x45 = F3
|
||
|
||
keycode 0x46 = F4
|
||
|
||
keycode 0x47 = F5
|
||
|
||
keycode 0x48 = F6
|
||
|
||
keycode 0x49 = F7
|
||
|
||
keycode 0x4A = F8
|
||
|
||
keycode 0x4B = F9
|
||
|
||
keycode 0x4C = F10
|
||
|
||
keycode 0x5F = F11
|
||
|
||
keycode 0x60 = F12
|
||
|
||
keycode 0x6F = Print
|
||
|
||
keycode 0x4E = Multi_key
|
||
|
||
keycode 0x6E = Pause
|
||
|
||
keycode 0x31 = grave asciitilde
|
||
|
||
keycode 0x0A = 1 exclam
|
||
|
||
keycode 0x0B = 2 at
|
||
|
||
keycode 0x0C = 3 numbersign
|
||
|
||
keycode 0x0D = 4 dollar
|
||
|
||
keycode 0x0E = 5 percent
|
||
|
||
keycode 0x0F = 6 asciicircum
|
||
|
||
keycode 0x10 = 7 ampersand section
|
||
|
||
keycode 0x11 = 8 asterisk
|
||
|
||
keycode 0x12 = 9 parenleft
|
||
|
||
keycode 0x13 = 0 parenright
|
||
|
||
keycode 0x14 = minus underscore
|
||
|
||
keycode 0x15 = equal plus
|
||
|
||
keycode 0x33 = backslash bar
|
||
|
||
keycode 0x16 = BackSpace
|
||
|
||
keycode 0x6A = Insert
|
||
|
||
keycode 0x61 = Home
|
||
|
||
keycode 0x63 = Prior
|
||
|
||
keycode 0x4D = Num_Lock
|
||
|
||
keycode 0x70 = KP_Divide
|
||
|
||
keycode 0x3F = KP_Multiply
|
||
|
||
keycode 0x52 = KP_Subtract
|
||
|
||
keycode 0x17 = Tab
|
||
|
||
keycode 0x18 = Q
|
||
|
||
keycode 0x19 = W
|
||
|
||
keycode 0x1A = e E eogonek Eogonek
|
||
|
||
keycode 0x1B = R
|
||
|
||
keycode 0x1C = T
|
||
|
||
keycode 0x1D = Y
|
||
|
||
keycode 0x1E = U
|
||
|
||
keycode 0x1F = I
|
||
|
||
keycode 0x20 = o O oacute Oacute
|
||
|
||
keycode 0x21 = P
|
||
|
||
keycode 0x22 = bracketleft braceleft
|
||
|
||
keycode 0x23 = bracketright braceright
|
||
|
||
keycode 0x24 = Return
|
||
|
||
keycode 0x6B = Delete
|
||
|
||
keycode 0x67 = End
|
||
|
||
keycode 0x69 = Next
|
||
|
||
keycode 0x4F = KP_7
|
||
|
||
keycode 0x50 = KP_8
|
||
|
||
keycode 0x51 = KP_9
|
||
|
||
keycode 0x56 = KP_Add
|
||
|
||
keycode 0x42 = Caps_Lock
|
||
|
||
keycode 0x26 = a A aogonek Aogonek
|
||
|
||
keycode 0x27 = s S sacute Sacute
|
||
|
||
keycode 0x28 = D
|
||
|
||
keycode 0x29 = F
|
||
|
||
keycode 0x2A = G
|
||
|
||
keycode 0x2B = H
|
||
|
||
keycode 0x2C = J
|
||
|
||
keycode 0x2D = K
|
||
|
||
keycode 0x2E = l L lstroke Lstroke
|
||
|
||
keycode 0x2F = semicolon colon
|
||
|
||
keycode 0x30 = apostrophe quotedbl
|
||
|
||
keycode 0x53 = KP_4
|
||
|
||
keycode 0x54 = KP_5
|
||
|
||
keycode 0x55 = KP_6
|
||
|
||
keycode 0x32 = Shift_L
|
||
|
||
keycode 0x34 = z Z zabovedot Zabovedot
|
||
|
||
keycode 0x35 = x X zacute Zacute
|
||
|
||
keycode 0x36 = c C cacute Cacute
|
||
|
||
keycode 0x37 = V
|
||
|
||
keycode 0x38 = B
|
||
|
||
keycode 0x39 = n N nacute Nacute
|
||
|
||
keycode 0x3A = M
|
||
|
||
keycode 0x3B = comma less
|
||
|
||
keycode 0x3C = period greater Multi_key
|
||
|
||
keycode 0x3D = slash question
|
||
|
||
keycode 0x3E = Shift_R
|
||
|
||
keycode 0x62 = Up
|
||
|
||
keycode 0x57 = KP_1
|
||
|
||
keycode 0x58 = KP_2
|
||
|
||
keycode 0x59 = KP_3
|
||
|
||
keycode 0x6C = KP_Enter
|
||
|
||
keycode 0x25 = Control_L
|
||
|
||
keycode 0x40 = Alt_L Meta_L
|
||
|
||
keycode 0x41 = space
|
||
|
||
keycode 0x71 = Mode_switch
|
||
|
||
keycode 0x6D = Control_R
|
||
|
||
keycode 0x64 = Left
|
||
|
||
keycode 0x68 = Down
|
||
|
||
keycode 0x66 = Right
|
||
|
||
keycode 0x5A = KP_0
|
||
|
||
keycode 0x5B = KP_Decimal
|
||
|
||
! right windows-logo key
|
||
|
||
! in "windows" keyboards the postion of the key is annoying, is where AltGr
|
||
|
||
! usually resides, so go definie it as AltGr
|
||
|
||
keycode 116 = Mode_switch
|
||
|
||
! right windows-menu key keycode 117 = Multi_key
|
||
|
||
clear Shift
|
||
|
||
clear Lock
|
||
|
||
clear Control
|
||
|
||
clear Mod1
|
||
|
||
clear Mod2
|
||
|
||
clear Mod3
|
||
|
||
clear Mod4
|
||
|
||
clear Mod5
|
||
|
||
add Shift = Shift_L Shift_R
|
||
|
||
add Lock = Caps_Lock
|
||
|
||
add Control = Control_L Control_R
|
||
|
||
add Mod1 = Alt_L
|
||
|
||
!Mode_switch add Mod2 = Mode_switch
|
||
-----------------------------------------------------------------------------
|
||
|
||
9. Troubleshooting and some Xmodmap tips
|
||
|
||
9.1. Troubleshooting
|
||
|
||
Get the newest Linux distribution. Mandrake 8.1 or RedHat 7.2 or 8.0 work
|
||
fantastically with regard to internationalization (which could not be said
|
||
about previous distributions). If locales are not installed, you must install
|
||
them. The GNU C Library comes with a locale database, which you should have
|
||
on your system. Upgrade your glibc. Troubleshooting of older versions of
|
||
XFree or KDE is insignificant in my opinion, as the systems get better and
|
||
better and people install newer versions. You may find almost any xmodmap
|
||
file in the GNOME directory in (SuSE) /opt/gnome/share/xmodmap (with standard
|
||
ISO8859-1,2 and other definitions). To switch between the keyboards, use
|
||
right Alt. Slackware has a very good databse of xmodmap maps in /usr/share/
|
||
xmodmap. Use the command: locale -a to see all the locales.
|
||
|
||
-----------------------------------------------------------------------------
|
||
9.2. Tips
|
||
|
||
If you want to list the current keymap table, issue the command: xmodmap -pk
|
||
| more
|
||
|
||
The xkeycaps program is a sort of graphical front-end for xmodmap. Start it
|
||
and see which numbers mean which keycode.
|
||
|
||
To make the mouse buttons left-handed, use a command: xmodmap -e "pointer = 3
|
||
2 1"
|
||
|
||
To remove the CapsLock and change it to a control key, write this in your
|
||
Xmodmap file:
|
||
|
||
remove Lock = Caps_Lock keysym Caps_Lock = Control_L add Control = Control_L
|
||
-----------------------------------------------------------------------------
|
||
|
||
10. Links
|
||
|
||
10.1. Other information on internationalization
|
||
|
||
[http://www.geocities.com/gorazd.hribar/latin-2/eng-iso-8859-2.html] http://
|
||
www.geocities.com/gorazd.hribar/latin-2/eng-iso-8859-2.html Here you can see
|
||
ISO8859-2 characters visually [http://users.raketnet.nl/koos_pol/en/
|
||
xmodmap-nl.html] http://users.raketnet.nl/koos_pol/en/xmodmap-nl.html Dutch
|
||
keymap [http://www.linuxfaq.com/HOWTO/Unicode-HOWTO.html] http://
|
||
www.linuxfaq.com/HOWTO/Unicode-HOWTO.html Unicode HOWTO [http://
|
||
www.linuxfaq.com/HOWTO/Cyrillic-HOWTO.html] http://www.linuxfaq.com/HOWTO/
|
||
Cyrillic-HOWTO.html Cyrillic HOWTO [http://www.linuxfaq.com/HOWTO/
|
||
Esperanto-HOWTO.html] http://www.linuxfaq.com/HOWTO/Esperanto-HOWTO.html
|
||
Esperanto HOWTO [http://www.linuxfaq.com/HOWTO/Belgian-HOWTO.html] http://
|
||
www.linuxfaq.com/HOWTO/Belgian-HOWTO.html Belgian HOWTO [http://
|
||
www.linuxfaq.com/HOWTO/Chinese-HOWTO.html] http://www.linuxfaq.com/HOWTO/
|
||
Chinese-HOWTO.html Chinese HOWTO [http://www.linuxfaq.com/HOWTO/
|
||
Danish-HOWTO.html] http://www.linuxfaq.com/HOWTO/Danish-HOWTO.html Danish
|
||
HOWTO [http://www.linuxfaq.com/HOWTO/Finnish-HOWTO.html] http://
|
||
www.linuxfaq.com/HOWTO/Finnish-HOWTO.html Finnish HOWTO [http://
|
||
www.linuxfaq.com/HOWTO/French-HOWTO.html] http://www.linuxfaq.com/HOWTO/
|
||
French-HOWTO.html French HOWTO [http://www.linuxfaq.com/HOWTO/
|
||
German-HOWTO.html] http://www.linuxfaq.com/HOWTO/German-HOWTO.html German
|
||
HOWTO [http://www.linuxfaq.com/HOWTO/Hebrew-HOWTO.html] http://
|
||
www.linuxfaq.com/HOWTO/Hebrew-HOWTO.html Hebrew HOWTO [http://
|
||
www.linuxfaq.com/HOWTO/Hellenic-HOWTO.html] http://www.linuxfaq.com/HOWTO/
|
||
Hellenic-HOWTO.html Hellenic HOWTO [http://www.linuxfaq.com/HOWTO/
|
||
Italian-HOWTO.html] http://www.linuxfaq.com/HOWTO/Italian-HOWTO.html Italian
|
||
HOWTO [http://www.linuxfaq.com/HOWTO/Polish-HOWTO.html] http://
|
||
www.linuxfaq.com/HOWTO/Polish-HOWTO.html Polish HOWTO [http://
|
||
www.linuxfaq.com/HOWTO/Portuguese-HOWTO.html] http://www.linuxfaq.com/HOWTO/
|
||
Portuguese-HOWTO.html Portugese HOWTO [http://www.linuxfaq.com/HOWTO/
|
||
Serbian-HOWTO.html] http://www.linuxfaq.com/HOWTO/Serbian-HOWTO.html Serbian
|
||
HOWTO [http://www.linuxfaq.com/HOWTO/Slovenian-HOWTO.html] http://
|
||
www.linuxfaq.com/HOWTO/Slovenian-HOWTO.html Slovenian HOWTO [http://
|
||
www.linuxfaq.com/HOWTO/Spanish-HOWTO.html] http://www.linuxfaq.com/HOWTO/
|
||
Spanish-HOWTO.html Spanish HOWTO [http://www.linuxfaq.com/HOWTO/
|
||
Thai-HOWTO.html] http://www.linuxfaq.com/HOWTO/Thai-HOWTO.html Thai HOWTO
|
||
[http://www.linuxfaq.com/HOWTO/Turkish-HOWTO.html] http://www.linuxfaq.com/
|
||
HOWTO/Turkish-HOWTO.html Turskish HOWTO
|
||
-----------------------------------------------------------------------------
|
||
|
||
10.2. Links to some non ISO8859-1 fonts
|
||
|
||
[ftp://ftp.redhat.com/pub/redhat/linux/7.2/en/os/i386/RedHat/RPMS/
|
||
XFree86-ISO8859-15-100dpi-fonts-4.1.0-3.i386.rpm] ftp://ftp.redhat.com/pub/
|
||
redhat/linux/7.2/en/os/i386/RedHat/RPMS/
|
||
XFree86-ISO8859-15-100dpi-fonts-4.1.0-3.i386.rpm [ftp://ftp.redhat.com/pub/
|
||
redhat/linux/7.2/en/os/i386/RedHat/RPMS/
|
||
XFree86-ISO8859-15-75dpi-fonts-4.1.0-3.i386.rpm] ftp://ftp.redhat.com/pub/
|
||
redhat/linux/7.2/en/os/i386/RedHat/RPMS/
|
||
XFree86-ISO8859-15-75dpi-fonts-4.1.0-3.i386.rpm [ftp://ftp.redhat.com/pub/
|
||
redhat/linux/7.2/en/os/i386/RedHat/RPMS/
|
||
XFree86-ISO8859-2-100dpi-fonts-4.1.0-3.i386.rpm] ftp://ftp.redhat.com/pub/
|
||
redhat/linux/7.2/en/os/i386/RedHat/RPMS/
|
||
XFree86-ISO8859-2-100dpi-fonts-4.1.0-3.i386.rpm [ftp://ftp.redhat.com/pub/
|
||
redhat/linux/7.2/en/os/i386/RedHat/RPMS/
|
||
XFree86-ISO8859-2-75dpi-fonts-4.1.0-3.i386.rpm] ftp://ftp.redhat.com/pub/
|
||
redhat/linux/7.2/en/os/i386/RedHat/RPMS/
|
||
XFree86-ISO8859-2-75dpi-fonts-4.1.0-3.i386.rpm
|
||
|
||
Note: This RedHat ftp directory contains more fonts, just look into the
|
||
RPMdirectory above.
|