xmodmap
es obsoleto; así que de hecho debería hacerse con las xkb
herramientas.
El intercambio que desea parece no estar incluido por defecto con los archivos X11; así que tienes que escribirlo tú mismo.
La página http://madduck.net/docs/extending-xkb/ me ayudó a comprender y encontrar una manera de hacerlo.
Cree un archivo ~/.xkb/keymap/mykbd
donde coloque la salida setxkbmap
, será su definición de teclado base; p.ej:
setxkbmap -print > ~/.xkb/keymap/mykbd
luego, cree un archivo de símbolos para definir su intercambio de claves, póngalo por ejemplo en ~/.xkb/symbols/myswap
allí, ponga las siguientes líneas:
partial modifier_keys
xkb_symbols "swap_l_shift_ctrl" {
replace key <LCTL> { [ Shift_L ] };
replace key <LFSH> { [ Control_L ] };
};
luego, edite el ~/.xkb/keymap/mykbd
archivo y cambie la xkb_symbols
línea para agregar
+myswap(swap_l_shift_ctrl)
finalmente, puede cargarlo con xkbcomp -I$HOME/.xkb ~/.xkb/keymap/mykbd $DISPLAY
(no puede usar "~" para el -I
parámetro). Probablemente arrojará muchas advertencias sobre símbolos indefinidos para algunas teclas raras, pero puede ignorarlas (por ejemplo, error de redireccionamiento a dave:) 2> /dev/null
.
Si desea poder intercambiar fácilmente entre un ctrl / shift normal y uno invertido; simplemente cree bajo ~/.xkb/keymap/
otro archivo, sin la opción adicional "myswap", y cárguelo con xkbcomp
. Puede hacer dos pequeños scripts para cargarlos.
xkbcomp $DISPLAY some.dump
después y antes de llamar a IBus, y haga una diferencia de los dos volcados (son la definición completa del teclado); probablemente verás diferencias.setxkbmap -option caps:escape
funciona. IBus recordó las teclas intercambiadas Esc y las teclas Bloq Mayús, pero no sirve para las teclas intercambiadas Left Shift y Left Control.Me encontré con algunos problemas de mapeo
LALT
paraControl_L
usar la solución de Pablo , parece que también debes configurar lasmodifier_map
opciones.Copié una plantilla de
/usr/share/X11/xkb/symbols/altwin
- busquexkb_symbols "ctrl_alt_win"
- y la modifiqué para establecer los siguientes cambios:El
~/.xkb/symbols/myswap
archivo final fue:También agregué
-w0
alxkbcomp
comando para evitar cualquier salida de advertencia al abrir un nuevo shell.** Al cambiar mucho entre Mac y Linux, me gusta tener dos teclas de control en Linux para aproximar el teclado de Mac para mi memoria muscular.
fuente