En primer lugar, disculpe mi ignorancia de X y XKB; He estado tratando de hackear una solución con la esperanza de poder lograr lo que quiero sin requerir una comprensión detallada de la misma.
Estoy tratando de crear un mapa de teclado XKB en Ubuntu 12.04 que me permita estipular cuál de las dos teclas de mayúsculas constituye el modificador de Nivel2. Específicamente, la 4tecla solo debe producir a $
cuando se mantiene el desplazamiento a la derecha, no a la izquierda.
Mi lectura hasta ahora:
- http://www.charvolant.org/~doug/xkb/html/node5.html
- http://people.uleth.ca/~daniel.odonnell/Blog/custom-keyboard-in-linuxx11
- http://www.x.org/releases/X11R7.5/doc/input/XKB-Enhancing.html
- Mucha búsqueda!
Intenté definir un tipo personalizado y luego referirme a él explícitamente en un mapa de símbolos:
/usr/share/X11/xkb/types/mbfisher
:
default xkb_types "mbfisher" {
type "RIGHT_SHIFT" {
modifiers = None+Shift_R;
map[None] = Level1;
map[Shift_R] = Level2;
};
}
/usr/share/X11/xkb/symbols/mbfisher
:
default
partial alphanumeric_keys
xkb_symbols "basic" {
name[Group1]= "mbfisher";
key <AE04> {
type= "RIGHT_SHIFT",
symbols[Group1]= [ 4, dollar ]
};
};
Luego selecciono el mapa con la GUI de diseño de teclado de Ubuntu.
Obviamente, esto deshabilita el teclado alfanumérico aparte de la 4tecla, pero el signo de dólar todavía se puede escribir con cualquiera de las teclas de mayúsculas.
Soy consciente de escribir una pregunta masiva con mucha información inútil, así que me detendré aquí; por favor pregunte por cualquier cosa que me haya perdido.
¿Algunas ideas?
# xmodmap -verbose -e "clear shift" ! 1: clear shift clear shift ! ! executing work queue ! clear shift
¡Esto es lo que finalmente funcionó! Utilicé
xmodmap
y un~/.Xmodmap
archivo en lugar de la configuración xkb.~/.Xmodmap
:Las 2 líneas comentadas (mirando con
!
) muestran los encabezados de las columnas antes y después de mis cambios. Esto me ha permitido especificar col 2 como Shift_L y col 3 como Shift_R, ya que he asignado shift_R como Mode_switch.Los cambios se realizan ejecutando:
setxkbmap us
establece el mapa de EE. UU. predeterminado para que trabaje desde una pizarra limpia y lexmodmap
agrega los cambios personalizados.Cuando se implementa el
!
,@
,#
,$
y%
personajes sólo pueden ser escritas con la clave de desplazamiento a la derecha, y^
,&
,*
,(
y)
sólo pueden ser escritas con la tecla de mayúsculas izquierda.Ahora puedo continuar asignando todas las teclas en el lado izquierdo del teclado para que solo se modifiquen con la tecla Mayús derecha (es decir, los caracteres alfabéticos y sus modificaciones en mayúsculas) y viceversa; Esta solución significa que solo necesito reasignar el lado izquierdo.
Otros enlaces útiles encontrados en el camino:
¡Muchas gracias a @Trudbert por ayudarme a encontrar la respuesta!
fuente