Me gustaría un script bash que alterna entre:
setxkbmap se
y setxkbmap us
.
Entonces, mis intenciones son asignar ese script a CtrlEsctravés del Teclado> atajos personalizados.
El punto es que quiero cambiar la distribución del teclado CtrlEscape. ¿Cómo puedo implementar eso?
shell-script
x11
keyboard-layout
xkb
Fredrik
fuente
fuente
Respuestas:
No sé qué entorno de escritorio está ejecutando, cómo va a asignar una tecla de acceso directo puede variar, pero este script funciona a nivel mundial, al menos en mi
Ubuntu 12.04 box
yArch Linux
:fuente
xmodmap
como en mi respuesta a continuación.setxkbmap
. Lo mismo ocurre si cambio de diseño usando un acceso directo configurado a través de lakeyboard shortcuts
GUI en mi LMDE.setxkbmap
solo cambia cuando cambio de usarlo.Hay varias respuestas a preguntas similares . Sin embargo, ninguno de ellos funciona de manera sólida para mí.
El siguiente script debería funcionar en todos los casos. Ciertamente funciona en mi sistema Debian al cambiar diseños con
setxkbmap
:El script analiza la salida de xmodmap para ver si el diseño actual es "us" o "se". En el diseño "nosotros", SHIFT+ 7se asigna a "ampersand". Si solo va a alternar entre los diseños "nos" y "se", tener "ampersand" activado 7significa que está utilizando el diseño "nos" y el guión cambiará a "se". Si no tiene "ampersand" activado 7, el script cambia a "nosotros".
fuente
la mejor manera sería no usar un script, sino cargar un teclado de dos capas (por ejemplo :)
setxmodmap "us,se"
y redefinir el Ctrl- Escpara enviar ISO_Next_GroupMire esta respuesta en xkb para ver cómo redefinir algunas claves sin necesidad de editar los archivos predeterminados principales (por lo tanto, no es necesario ser root). En el archivo de símbolos locales (por ejemplo:)
~/.xkb/symbols/mysymbols
ponga una pequeña sección como:PC_CONTROL_LEVEL2 dice que el segundo símbolo de esa tecla se obtiene con Control (en lugar de Shift).
y en el archivo de mapa de teclas local (por ejemplo:
~/.xkb/keymap/mykbd
puede crearlo consetxkbmap "us,se" ; setxkbmap -print > ~/.xkb/keymap/mykbd
) cambie la línea xkb_symbols para agregar "mysymbols (ctr_esc_toggle)" para que tenga algo como:(tenga en cuenta que "se: 2", el ": 2" le indica que cargue las definiciones de símbolos "se" como Grupo2; puede apilar varios grupos).
ahora puede cargarlo con:
xkbcomp -I$HOME/.xkb ~/.xkb/keymap/mykbd $DISPLAY
luego Ctrl-Esc cambiará entre los diseños "nos" y "se".Sin embargo, tenga en cuenta que debe presionar Ctrl (y mantener) antes de Esc; Por otro lado, no funciona (requeriría definir un modificador virtual para Escape, y no sé cómo hacerlo)
fuente
leftwin+leftalt+space
vería?{ include "pc+us+ru:2+inet(evdev)+group(win_space_toggle)" };