Respuestas:
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
para Control_L
usar la solución de Pablo , parece que también debes configurar las modifier_map
opciones.
Copié una plantilla de /usr/share/X11/xkb/symbols/altwin
- busque xkb_symbols "ctrl_alt_win"
- y la modifiqué para establecer los siguientes cambios:
El ~/.xkb/symbols/myswap
archivo final fue:
partial modifier_keys
xkb_symbols "swap" {
key <MENU> { [ Super_L ] };
key <LALT> { [ Control_L, Control_L ] };
key <RALT> { type[Group1] = "TWO_LEVEL",
symbols[Group1] = [ Alt_R, Meta_R ] };
key <LWIN> { [ Alt_L, Meta_L ] };
key <LCTL> { [ Control_L ] };
key <RCTL> { [ Control_R ] };
modifier_map Control { <LALT>, <LCTL>, <RCTL> };
modifier_map Mod1 { <LWIN>, <RALT> };
modifier_map Mod4 { <MENU> };
};
También agregué -w0
al xkbcomp
comando para evitar cualquier salida de advertencia al abrir un nuevo shell.
xkbcomp -w0 -I$HOME/.xkb $HOME/.xkb/keymap/mykbd $DISPLAY
** 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.