Reasigne CapsLock para escapar y controlar todo el sistema
18
¿Es posible reasignar el sistema de teclas CapsLock de manera tal que cuando el botón CapsLock se presiona solo actúa como la tecla de escape y cuando se presiona con otra tecla, actúa como la tecla de control?
Parece que sería muy difícil. Por ejemplo, no pudo generar eventos de pulsación de tecla, porque no sabe qué tecla se presionó. Si se libera sin que se presione otra tecla, entonces era Escape, de lo contrario, era Control.
cjm
Respuestas:
16
He encontrado una muy buena solución llamada xcape . Desde el archivo Léame:
xcape se ejecuta como un demonio e intercepta la tecla Control. Si la tecla Control se presiona y suelta por sí sola, generará un evento de tecla Escape.
Esto tiene más sentido si ha reasignado la tecla Bloq Mayús a Control. Las versiones futuras de este programa pueden hacer ese mapeo por usted, pero por ahora esto es algo que debe hacer usted mismo.
Mapeé Caps to Escape para estar más cómodo escribiendo en Vim. Solía xmodmap, y puse esto ~/.Xmodmap.
clear Lock
keycode 0x42 = Escape
Para aplicar: xmodmap ~/.Xmodmap. Puede poner esto en un archivo como ~ / .bash_profile (lo puse en ~ / .xinitrc, porque no uso un administrador de inicio de sesión.
Para asignar CapsLock + [otra clave], considere usar xbindkeys.
Una solución exclusiva de Linux para reasignar claves en todo el sistema es escribir una regla udev simple. No dependerá de X, funcionará en cualquier terminal o aplicación y es portátil entre cualquier instalación reciente de Linux simplemente copiando dos archivos.
Necesita escribir 2 archivos: uno que contiene la regla udev que le dice al núcleo que reasigne las claves y otro que contiene las asignaciones reales que necesita.
Me encontré con una pregunta redactada de manera diferente en AskUbuntu que tenía una buena respuesta , pero tuve que modificarla ligeramente para que funcione en mis sistemas.
Según los comentarios de Louis y Sergiy allí, se me ocurrió esta solución que funciona para mí en Ubuntu 16.04 (Xenial) y la llevaré conmigo a los otros sistemas Linux que uso.
Instalé xcape y puse las siguientes líneas de código en mi .profilearchivo en mi directorio de inicio.
MÉTODO ACTUALIZADO:
Debido a que los distintos administradores de pantalla (gdm / kdm / sddm / etc.) se comportan de manera extraña y restablecen el modo de setxbmapsuspender / reanudar o bloquear / desbloquear, descubrí cómo configurar las opciones de manera que lo hereden y no lo hagan ' t restablecerlo todo el tiempo. Debido a que suspendí y reanudé mucho, necesitaba asegurarme de que no obtuve muchas copias de xcapeejecución que se resuelven en el nuevo script a continuación.
Primero modifique la configuración del teclado con sudo gedit /etc/default/keyboardy establezca XKBOPTIONS="ctrl:nocaps"y luego en su ~/.xprofileponer la línea única a continuación.
Esperemos que las diversas secciones del script le ahorren tiempo / problemas y eviten inicios de sesión atascados. Primero verifica si ya hay una instancia ejecutándose y la mata, ya que lo único que xcapehace es asignar Ctrl a Esc, esto es seguro, luego la hashparte asegura que haya xcape
instalado, de lo contrario su sistema podría bloquearse cuando intente iniciar sesión porque todo se inicia Se espera que los scripts salgan limpiamente.
He usado gnome-tweak-tool para asignar el bloqueo de mayúsculas a Ctrl, ya que no hay diseño de teclado en la configuración del sistema en Ubuntu 14.04. Entonces xcape -e 'Control_L = Escape' no funcionó, pero después de usar xcape -d descubrí que el Bloqueo de mayúsculas genera el código clave 66 y lo reasignó respectivamente: xcape -e '# 66 = Escape'. - Sergiy Byelozyorov 4 de septiembre de 14 a 10:08
Louis
Según esta publicación de blog, es posible hacer esto solo con xcape: setxkbmap -option 'caps: ctrl_modifier'; xcape -e 'Caps_Lock = Escape' setxkbmap -option 'caps: ctrl_modifier'; xcape -e 'Caps_Lock = Escape; Control_L = Escape; Control_R = Escape' - Louis Simoneau 4 de agosto de 15 a 10:06
Respuestas:
He encontrado una muy buena solución llamada xcape . Desde el archivo Léame:
fuente
Mapeé Caps to Escape para estar más cómodo escribiendo en Vim. Solía
xmodmap
, y puse esto~/.Xmodmap
.Para aplicar:
xmodmap ~/.Xmodmap
. Puede poner esto en un archivo como ~ / .bash_profile (lo puse en ~ / .xinitrc, porque no uso un administrador de inicio de sesión.Para asignar CapsLock + [otra clave], considere usar
xbindkeys
.fuente
Una solución exclusiva de Linux para reasignar claves en todo el sistema es escribir una regla udev simple. No dependerá de X, funcionará en cualquier terminal o aplicación y es portátil entre cualquier instalación reciente de Linux simplemente copiando dos archivos.
Necesita escribir 2 archivos: uno que contiene la regla udev que le dice al núcleo que reasigne las claves y otro que contiene las asignaciones reales que necesita.
Usando este método, he reasignado todo mi teclado, tal vez el código sea útil como inspiración http://git.adirat.com/carpalx-keyboard
fuente
He creado una herramienta en C especialmente para este propósito que supera muchos de los problemas con la solución xcape / xmodmap :
fuente
Me encontré con una pregunta redactada de manera diferente en AskUbuntu que tenía una buena respuesta , pero tuve que modificarla ligeramente para que funcione en mis sistemas.
Según los comentarios de Louis y Sergiy allí, se me ocurrió esta solución que funciona para mí en Ubuntu 16.04 (Xenial) y la llevaré conmigo a los otros sistemas Linux que uso.
Instalé xcape y puse las siguientes líneas de código en mi
.profile
archivo en mi directorio de inicio.MÉTODO ACTUALIZADO:
Debido a que los distintos administradores de pantalla (gdm / kdm / sddm / etc.) se comportan de manera extraña y restablecen el modo de
setxbmap
suspender / reanudar o bloquear / desbloquear, descubrí cómo configurar las opciones de manera que lo hereden y no lo hagan ' t restablecerlo todo el tiempo. Debido a que suspendí y reanudé mucho, necesitaba asegurarme de que no obtuve muchas copias dexcape
ejecución que se resuelven en el nuevo script a continuación.Primero modifique la configuración del teclado con
sudo gedit /etc/default/keyboard
y establezcaXKBOPTIONS="ctrl:nocaps"
y luego en su~/.xprofile
poner la línea única a continuación.Esperemos que las diversas secciones del script le ahorren tiempo / problemas y eviten inicios de sesión atascados. Primero verifica si ya hay una instancia ejecutándose y la mata, ya que lo único que
xcape
hace es asignar Ctrl a Esc, esto es seguro, luego lahash
parte asegura que hayaxcape
instalado, de lo contrario su sistema podría bloquearse cuando intente iniciar sesión porque todo se inicia Se espera que los scripts salgan limpiamente.Vieja forma:
Sergiy
Louis
fuente