Las soluciones xmodmap y kimapte ayudarán al configurar cualquier teclado internacional para (Debian, RedHat, Mandrake, Corel Linux) Linux, FreeBSD, OpenBSD, NetBSD y posiblemente cualquier Unix que use Xfree86 y KDE. La ventaja de este paquete es que no es específico de una arquitectura y funcionará en SPARC, MIPS y todos los demás sistemas. No quiero decir que los otros paquetes sean dependientes de la arquitectura, pero es que no me gusta escribir basura en el bash_profile y XF86Config o incluso en algún sitio más. Este ar tículo fue escrito por Juraj Sipos (c) el 4/22/2000, xvudpapc@savba.sk
INTRODUCCION
Imagine que usa Linux o un SO BSD y quiere escribir una carta de negocios a una persona
que tiene un nombre extranjero con un acento o diéresis. El idioma Danés usa simbolos
como ø y el Portugues ñ. Con esta información puede crear su propia configuración de
un teclado internacional sin insta lar ningún paquete adicional. La siguiente
información le ayudar&a acute; a establecer un teclado Alemán, Español, Italiano,
Eslovaco , Checo, Polaco, Esloveno, Croata, Danés, Holandés, Francés , Finlandés,
Noruego, Estoniano, Latvian, Sueco y otros teclados sin inst alar paquetes adiccionales y
sin escribir basura en el bash_profile y XF86Config. Puede también consultar mi página
en http://www.home.sk/www/man/bsd1.htm
para ver imágenes de varios teclados. En caso de que desee instalar el Griego, Hebreo o
el Ruso, siga mis consejos y realice los cambios pertinentes para estos idiomas (e.g.,
para instalar todas las fuentes Griegas, etc.).
El problema principal de kikbd o del teclado internacional con KDE en X Windows es que no funciona en Xfree86 tan fácilmente (tiene que intalar algunos paquetes nacionales y escribir basura de sintaxis complicada en los archivos mencionados antes). Cualquier usuario quiere una manera simple de configurar su teclado para configuraciones internacionales. Una forma sencilla es arrancar KDE, cambiar la configuración del teclado internacional e inmediatamente escribir en el lenguaje que elijamos (esto funcio nará para el Alemán y otros idiomas, pero en los teclados del Este de Europa algunas teclas no funcionan). De acuerdo con la documentación d el KDE, debería de funcionar, pero no funciona. Despu&ecute;s de explorar muchos recursos dedicados a KDE en la red, no encontré ninguna solución (sin contar la que te obliga a instalar algún paquete nacional). Sé que debería incluir algunas configuraciones locales en mi bash_profile o en mis scripts de login de csh, pero después de realizar estas configuraciones no podía cambiar (e instalar) teclados en FreeBSD y parecí que se iba complicando cada vez más comparandolo con la información que tenía localizada de KDE y X Windows con Xfree86.
Aquí hay varias soluciones para instalar configuraciones de teclados internacionales. La información siguiente le ayudará para establecer una configuración para un teclado Europeo.. La solución funciona para Xfree86 en 3.1 RELEASE en FreeBSD (solución .Xmodmap), Corel Linux, Debian Linux, RedHat y FreeBSD 3.3 RELEASE y 4.0 RELEASE (solución KDE *.kimap). Lo he probado en esos sistemas. Nota: la solución .Xmodmap funciona bien con otros entornos de ventanas. Algunos Unixs ignorarn la configuración de .Xmodmap cuando se usa con KDE. Si .Xmodmap no funciona, se tienen que cambiar los archivos KDE kimap en el directorio ../kikbd.
Si la solucón .Xmodmap no funciona en KDE, copie skz.kimap (al final de este articulo) a /usr/local/share/apps/kikbd, que es el directorio de teclado de KDE. El problema con KDE es que después de instalar otro teclado, no tiene oportunidad de usarlo, ya que la documentación del KDE no especifica claramente como definir sus configuraciones locales en el archivo bash_profile. Después de que instalé el teclado Eslovaco en KDE, no podía escribir Eslovaco o Checo, así que realicé unos pequeños cambios al archivo skz.kimap, que son explicados más tarde. Después de realizar estos cambios, no se necesitan otros - no necesita escribir comandos especiales a su bash_profile o XF86Config. PERO CUANDO INSTALE OTRO TECLADO en START/SETTINGS/INPUTDEVICES/INTERNATIONAL KEYBOARDS desde su menu KDE, CHEQUEE AUTOSTART. Entonces todo funcionará bien. La diferencia entre skz.kimap y sky.kimap (y csz.kimap y csy.kimap) es que y,Y y z,Z están cambiadas, así que en el archivo skz.kimap o csz.kimap tendrá z,Z en vez de y,Y, pero en sky.kimap o csy.kimap, y,Y no cambian su posición en la configuración del teclado inglés de IBM.
Cómo funciona:
a) Copie el archivo "Compose" de /usr/X11R6/lib/X11/locale/iso8859-2 al directorio /usr/X11R6/lib/X11/locale/iso8859-1 (sí, iso8859-1, no iso8859-2). Guarde el archivo "Compose" original si quiere (alternativamente, copie otros archivos iso885*** Compose al directorio iso8859-1).
b) Ponga el archivo incluido ..Xmodmap a su directorio root (idioma Eslovaco, o cree su propio archivo .Xmodmap) (o quizás ponga sus propios archivos *.kimap en el directorio kikbd si Xmodmap no funciona)
c) Instale las fuentes ISO8859-2 (o otras fuentes pertinentes).
d) Desabilite cada línea "Scroll lock" no comentada en su XF86Config, porque nuestro .Xmodmap usa scroll lock para cambiar entre teclados.
e) Ponga el apropiado fontpath para sus nuevas fuentes en su XF86Config, en caso necesario.
La solución .Xmodmap se puede realizar con todos los teclados X menos con el Hebreo, supongo (estoy bromeando). El archivo .Xmodmap ignora todas las configuraciones de teclados definidas en /usr/X11R6/lib/X11/xkb/symbols/, donde está los simbolos para muchos teclados internacionales. La solución .Xmodmap le ofrece una máquina de escribir Eslovaca mejorada.
Primero, debo decir que en mi solución, se utiliza un diferente mapeo para el archivo .Xmodmap (y el arhivo kimap) para algunas definiciones ISO. Esto significa que las definiciones ISO le derán lo que dicen que son (aacute [á], eacute [é], etc.), o no le darán lo que dicen que son (poniendo "threequarters" en su archivo .Xmodmap no le dará "3/4" sino "z" con una caron encima). Por ejemplo, "mu" dará lcaron, "oslash" rcaron, etc. (Obviamente, en otro caso necesita instalar algunos paquetes nacionales pra usar la definición "lcaron" en vez de "mu"). Normalmente, no puede poner "lcaron" en el archivo .Xmodmap, porque no le dará lcaron; en cambio, debe escribir "mu" , o "guillemotright" para tcaron. También lo intenté con números hexadecimales, y funcionó. Sin embargo, otras definiciones, como por ejemplo, adieresis (a con dos puntos encima), uacute (u con acento), así como dead_diaeresis no requieren una substitució de otras definiciones and funcionan bastante bien ya que están definidas en muchos lugares (deadkey es una tecla que presiona, y no pasa nada, pero cuando presiona otra tecla conseguirá una letra especial). El archivo original "Compose" en el directorio .../iso8859-1 pues ser enteramente utilizado para configuraciones de teclado Eslovaco y Checo (Polaco, Húngaro, Esloveno, Croata), pero sólo hay un problema con la configuración de teclado Eslovaco o Checo ( y también otros idiomas) - dead_caron no funciona. Esa es la razón por la que tiene que copiar el archivo "Compose" desde el directorio iso8859-2 al directorio iso8859-1, o alternativamente, puede editar el archivo "Compose" del directorio iso8859-1 y poner todas las referencias de "dead_caron" de iso8859-2/Compose al archivo iso8859-1/Compose.
Puede dejar la sección del Teclado en su XF86Config sin hacer muchos cambios. Ponga (si no está ya puesto) lo siguiente en la sección del Teclado:
Section "Keyboard"
Protocol "Standard"
XkbRules "xfree86"
XkbModel "pc101"
XkbLayout "us"
Algunos entornos X Windows ignoran las configuraciones de .Xmodmap, así que si usa KDE y .Xmodmap no funciona, use kikbd keymap en vez de .Xmodmap. (Un ejemplo de kikbd keymap para el idioma Eslovaco está incluido al final de este fichero). La configuración de teclado Eslovaca/Checa/Inglé se cambiasThe Slovak/Czech/English se cambian con .Xmodmap. Usted puede usar idiomas sólo con las aplicaciones que tengan acceso a sus fuentes ISO-8859-2 (o otras fuentes) (esto puede que no funcione con StarOffice o con alguna aplicación que tengan sus propias fuentes). StarOffice tiene su propio directorio de fuentes - fuentes afm en ../xp3/fontmetrics/afm, y fuentes ps en .../xp3/pssoftfonts, así que debe añadir los directorios de fuentes ISO8859-2 a estos directorios (para indicar a StarOffice que use también estas fuentes) y edite el archivo fonts.dir y añada las fuentes ligadas simbólicamente ahi. Yo puedo usar fácilmente cualquier idioma en StarOffice.
Nota Importante: si quiere intercambiar documentos entre StarOffice o WordPerfect y MS Word, debe incluir la información sobre el código de windows 1250 al fichero que escriba (win1250 es parecido a iso8859-2, pero es un poco diferente). Existe una solución: use un convertidor de iso8859-2 a win1250 (puede encontrar uno en mi página en http://www.home.sk/www/man/bsd1.htm).
Si quiere editar y crear su propio archivo .Xmodmap, le explicaré una línea del archivo .Xmodmap para dejarle claro lo que debería hacer. Esta explicación puede ser usada para todas los keycode.
Por ejemplo, la línea:
keycode 0x11 = 8 asterisk aacute 8
(nota: keycode 0x11 viene de xkeycaps)
significa que en el primer par, por defecto, (número "8" y "asterik")
dibujará el número "8" cuando presione el keycode 0x11 ("8"), y un
asterisco cuando se presione una tecla "shift". Después de presionar el scroll
lock, existe otra definicion: ISO_NEXT_GROUP, que significa que cuando se presiona la
tecla "8" por defecto, no saldrá un "8", sino aacute
("á"), cuando presione la tecla "shift" , saldrá un número
"8". Así que si cambia "aacute" y "8", todo lo que pongo en
vez de "aacute" y "8" será dibujado, por ejemplo:
keycode 0x11 = 8 asterisk semicolon colon
le dará "semicolon" y "colon" en su 0x11 keycode después de presionar el scroll lock. Si borra el ISO_NEXT_GROUP (el siguiente par de definiciones de la derecha), usted sólo tendrá un grupo de definiciones de teclado ("8" y "asterisk"). Tenga cuidado cuando edite el fichero .Xmodmap. No debe borrar definiciones que capacitan la utilización del scroll lock al menos que sepa lo que hace . Por ejemplo las líneas:
keycode 0x4e = ISO_Next_Group
add mod5 = ISO_Next_Group
etc. Debe de tener también en cuenta que los Unixes distinguen las mayúsculas de las minusculas.
Si quiere averiguar más sobre , instale el paquete "xkeycaps".
________________corte_aqui_________________________________________
! Este archivo es un archivo de entrada `xmodmap' para PC 101 key
#2 (FreeBSD/XFree86; US)
! teclados creados por XKeyCaps, modificado por Juraj Sipos el 8/17/1999.
! XKeyCaps 2.38 is Copyright (c) 1997 Jamie Zawinski <jwz@netscape.com.
! http://people.netscape.com/jwz/xkeycaps/ Es una solución .Xmodmap para
! el teclado Eslovaco. Debe tener instaladas las fuentes ISO-8859-2 con un puntero
! en /etc/XF86Config
! NOTA: "!" es un comentario. Hay algo más de información pero la he
borrado
! y no es importantante.
! Si quiere saber que he borrado ejecute xkeycaps y genere su
! propio archivo Xmodmap.
! La tecla "0 Ins" genera KP_Insert y KP_0
! La tecla ". Del" genera KP_Delete y KP_Decimal
!#define XK_dead_semivoiced_sound 0xFE5F
!dead_iota, dead_voiced_sound, dead_belowdot, dead_tilde, dead_macron
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_doubleacute dead_circumflex
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 acute slash
keycode 0x23 = bracketright braceright diaeresis 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
_____________corte_aqui__________________________________________________
# Fichero de configuración KDE skz.kimap , modificado por Juraj
Sipos
# renombre este archivo como skz.kimap y copielo al directorio KDE .../kikbd
[International Keyboard]
Label=Skz
Locale=sk
# *** aqui había cosas que he borrado.
[KeyboardMap]
CapsSymbols=q,w,e,r,t,y,u,i,o,p,a,s,d,f,g,h,j,k,l,z,x,c,v,b,n,m
keysym0=1,plus,1,exclam,,
keysym1=2,mu,2,at,,
keysym2=3,onesuperior,3,numbersign,,
keysym3=4,egrave,4,dollar,,
keysym4=5,0x0bb,5,percent,,
keysym5=6,threequarters,6,asciicircum,,
keysym6=7,yacute,7,ampersand,,
keysym7=8,aacute,8,asterisk,,
keysym8=9,iacute,9,parenleft,,
keysym9=0,eacute,0,parenright,,
keysym10=minus,equal,percent,minus,underscore,
keysym11=grave,dead_diaeresis,dead_circumflex,grave,asciitilde,
keysym12=equal,dead_acute,dead_caron,equal,plus,
keysym13=bracketleft,uacute,slash,bracketleft,braceleft,
keysym14=bracketright,adiaeresis,parenleft,bracketright,braceright,
keysym15=semicolon,ocircumflex,quotedbl,semicolon,colon,
keysym21=y,z,Z,,,
keysym22=z,y,Y,,,
# He cambiado arriba algunos keysyms (como "mu" en vez de "lcaron")
y he añadido las siguientes líneas
keycode43=51,ograve,parenright,backslash,bar,
keycode40=48,section,exclam,apostrophe,quotedbl,
keycode51=59,comma,question,less,comma,
keycode52=60,period,colon,period,greater,
keycode53=61,minus,underscore,slash,question,
____corte_aqui_______________________________________________________
(Los números de los keycodes provienen de "xkeycaps")
El propósito de la siguiente información es ayudarle a crear configuraciones de teclado .Xmodmap con iso8859-2 u otros conjuntos de caracteres. Si va a usar otros idiomas que no sean de Europa Central, encuentre una table para su conjunto de caracteres ISO*** en Internet. El archivo gdkkeysyms.h está en (RedHat) /usr/include/gdk/gdkkeysyms.h y contiene todos los nombres especiales que estamos usando aquí (también tiene nombres de caracteres griegos).
UNIX
Conjunto de caracteres ISO-8859-2 (ISO Latin2)
octal hex (puede usarlo también con otros idiomas)
----------------------------------------------------------------------
Antes de nada, asegurese que las definiciones que se le dan (después de instalar las
pertinentes fuentes y el teclado en X ) son lo que dicen que son. Si no le dan lo que
dicen que son (algunos keycodes no funcionarán), entonces debe hacer una substitución.
Se pueden localizar las definiciones que no dan lo que dicen por su forma visual en el
código Western Latin 1. Por ejemplo, si carga un sitio web Eslovaco, no use el código
ISO8859-2 para verlo, sino el Western ISO8859-1. Así puede ver fuentes incorrectas con
letras como ¾. Podrá darse cuenta de lo que hay que sustituir. Pero si no sabe como es
llamado "¾" en la terminologia SO, encuentre y descargue un código de
caracteres apropiado para ISO-8859-1. Tiene que estar en algún sitio de la red. Los
símbolos de la derecha (por ejemplo, mu [micro], que es µ, le dará lcaron en vez de µ)
le darán lo que hay en su izquierda. NOTA: las vocales acentuadas no requieren
substitución. así que he omitido iacute (í), aacute (á), etc.
0243 0xa3 /Lslash £ (Explicación:
escribiendo £ ["pound" en nuestro caso]
en el archivo Xmodmap o kimap le dará Lslash. Pero Lslash puede ser
obtenida por un dead_caron - presione un dead_caron y L). El símbolo
de la derecha, si lo pone en el archivo Xmodmap o kimap, imprimirá
el cará que está en su izquierda
0245 0xa5 /Lcaron ¥ De este modo, escribiendo "yen" al
archivo kimap o Xmodmap nos dará Lcaron
0251 0xa9 /Scaron © copyright (nos dará Scaron)
0253 0xab /Tcaron « guillemotleft (nos dará Tcaron)
0256 0xae /Zcaron ® registered
0265 0xb5 /lcaron µ mu
0271 0xb9 /scaron ¹ onesuperior
0273 0xbb /tcaron » guillemotright
0276 0xbe /zcaron ¾ threequarters
0306 0xc6 /Cacute Æ descubralo usted
0312 0xca /Eogonek Ê descubralo usted
0313 0xcb /Edieresis Ë Edieresis
0314 0xcc /Ecaron Ì descubralo usted
0317 0xcf /Dcaron Ï descubralo usted
0321 0xd1 /Nacute Ñ Ograve
0322 0xd2 /Ncaron Ò descubralo usted
0324 0xd4 /Ocircumflex Ô Ocircumflex
0325 0xd5 /Ohungarumlaut Õ find out yourself
0330 0xd8 /Rcaron Ø descubralo usted
0331 0xd9 /Uring Ù descubralo usted
0333 0xdb /Uhungarumlaut Û
0336 0xde /Tcedilla Þ
0343 0xe3 /abreve ã
0345 0xe5 /lacute å
0346 0xe6 /cacute æ
0350 0xe8 /ccaron è egrave
0352 0xea /eogonek ê
0354 0xec /ecaron ì
0357 0xef /dcaron ï
0361 0xf1 /nacute ñ ntilde
0362 0xf2 /ncaron ò
0365 0xf5 /ohungarumlaut õ
0370 0xf8 /rcaron ø
0371 0xf9 /uring ù
0373 0xfb /uhungarumlaut û
0376 0xfe /tcedilla þ
0377 0xff /dotaccent ÿ
Puede experimentar para ver que deficiones corresponden con qué cada caracter, no
debería ser difícil. Esto es simplemente un consejo para empezar. Yo no continué mis
investigaciones porque ya me funcionan mis teclados Checo y Eslovaco y por ahora no estoy
interesado en usar otros teclados; Mire en mi página y constrúyase su propio teclado.
Disfrute.
Juraj Sips