Hoy encontré este muy buen artículo de Steven Losh en el que presenta un par de asignaciones de teclado que aumentan la productividad. Entre ellos se encuentra un mapeo dinámico de las teclas de desplazamiento izquierda y derecha.
La idea
Cuando se presionan Shift_L o Shift_R sin una tecla adicional, se asignan a '(' y ')' respectivamente, de lo contrario funcionan como de costumbre.
El problema
Él hace todo esto bajo OSX. Estoy tratando de lograr lo mismo con Linux. No hay una forma directa de hacerlo, ya que entiendo que no puede usar xmodmap para configurar una tecla solo para Shift_L, y otra para Shift cuando se usa como una tecla modificadora.
Busqué en Google un poco y encontré personas que intentaban hacer lo mismo en Windows, lo que aparentemente es posible usando AutoHotKey, pero no pude encontrar nada para Linux.
¿Hay alguna manera de resolver esto en Linux?
Respuestas:
¡Guauu! El comentario del usuario teika kazura sobre la pregunta original es bastante correcto, no solo es efectivamente un duplicado de esa otra pregunta , sino que la respuesta provista allí ("use xcape ") resuelve este problema.
Después de clonar el repositorio xcape y compilar (primero tuve que instalar libXtst-devel en mi caja Fedora), pude obtener el comportamiento exacto solicitado con el siguiente comando:
Después de una prueba superficial, parece funcionar extremadamente bien. ¡Agradable!
Otras opciones
Si usa la tecla Shift como modificador del mouse (es decir, si alguna vez hace clic con la tecla Mayúsculas presionada), probablemente desee incluir la opción de tiempo de espera de xcape y encontrar un valor de tiempo de espera cómodo, de modo que las teclas Shift solas se usen en combinación con el mouse don No generes paréntesis espurios. Desde el xcape README:
Por lo tanto, al incluir la
-t
bandera con un valor de tiempo de espera que funcione para usted, aún podrá hacer clic con el mouse mientras mantiene presionada la tecla Mayús durante al menostimeout ms
milisegundos.(Crédito, nuevamente, a teika kazura por señalar la otra pregunta, y también a don_crissti por la respuesta original allí).
fuente
-t <timeout ms>
Si mantiene presionada una tecla por más tiempo que este tiempo de espera, xcape no generará un evento clave. El valor predeterminado es 500 ms". ... A menos que xcape interfiera con el evento de pulsación de tecla del modificador (no recuerdo), eso debería evitar que genere pulsaciones de teclas espurias, al tiempo que le permite usarlo como un modificador de selección de mouse siempre que lo mantenga presionado el tiempo suficiente .-t
bandera!Es un desafío interesante, y estoy de acuerdo con uno para el que xinput no parece estar perfectamente adaptado. Pasé un tiempo jugueteando con las habilidades de xmodmap, y estuve tan frustrantemente cerca de lograr lo que quieres hacer ... sin lograr llegar allí.
Usando xmodmap, es posible asignar parenleft como un símbolo de tecla desplazado en la tecla de desplazamiento a la izquierda:
el cual sorta obras, al menos en las pruebas en mi caja de Fedora 17, pero no de una manera satisfactoria. Descubrí que, con este mapeo en su lugar, la tecla de mayúsculas todavía funcionaba normalmente y no mostraba ningún paréntesis espurio, pero (frustrantemente) tampoco producía de manera confiable parentescos izquierdos. Por alguna razón, la clave no parece modificar de forma fiable en sí , que rompe su cometido ... desplazado inicialmente. Por alguna razón, presionar el desplazamiento a la izquierda varias veces seguidas eventualmente provocaría que comience a producir padres izquierdos, pero solo después de la cuarta o quinta pulsación.
Un comportamiento que hice aviso, sin embargo, que es posible que pueda trabajar con como un análogo "lo suficientemente cerca": He encontrado que después de parenleft mapeo y parenright en Shift_L y Shift_R, podría escribir de forma fiable parens por "rodar" a través de las dos teclas de mayúsculas - en otras palabras, con este mapeo:
presionando Shift_L seguido de Shift_R, luego soltando ambos, generaría un par derecho o un par izquierdo en la otra dirección. (Las asignaciones de paren podrían invertirse, por supuesto; no pude decidir de qué manera se sentía más "natural").
Eso fue lo más cerca que llegué a lograr el comportamiento exacto que estás buscando; no parece posible usar solo xmodmap.
Estaba medio convencido de que simplemente no es posible, punto, pero luego me di cuenta de que hay al menos una tecla que funciona exactamente como usted describe: la tecla Súper ("Windows"). Bajo Gnome Shell, es una tecla modificadora (mod4), que produce un efecto diferente (desencadenando Descripción general) cuando se presiona solo. Entonces, al menos en teoría, puede ser posible implementar la sobrecarga de teclas de cambio deseada de la misma manera.
... Pero, no tengo ni idea de cómo se haría eso, o de lo invasivo que sería empantanarse en el procesamiento necesario cada vez que presione la tecla Shift. :-)
fuente
quizás busque xbindkeys para cambiar la asignación de teclas o simplemente encuentre un buen complemento de codificación para vim o gedit o lo que quiera usar o codifique el suyo.
herramientas para cambiar mapas de teclas /programming/6812/mapping-my-custom-keys-in-debian
tal vez http://www.tldp.org/HOWTO/Keyboard-and-Console-HOWTO-14.html
y escribe un script para habilitarlo.
fuente