Mantenga presionadas las teclas para el modificador

22

Me enamoré de poder mantener presionada una tecla en Android durante aproximadamente 100ms para obtener una clave de puntuación "debajo" (que de otro modo se encontraría en el menú), y me encantaría tener esa misma capacidad para Ubuntu. No necesito repetir los personajes, así que no me perdería nada. ¿Es posible? y si lo es, cómo? Gracias:)

    
pregunta Patrick 15.07.2016 - 13:16

3 respuestas

2

Actualmente no hay ninguna forma rápida y fácil de habilitar este tipo de funcionalidad en la versión de escritorio de Ubuntu.

Personalmente, soy un gran admirador de los atajos de teclado de redacción predeterminados ; Los encuentro más rápidos y mucho más intuitivos que la selección de pulsación larga de estilo móvil (♥). Dicho esto, si tiene tiempo y determinación, es posible que pueda utilizar la opción teclas lentas en la aplicación de acceso universal básica predeterminada para crear algo similar a la opción de dispositivo móvil.

Mientras reviso eso, XKB parece estar asociado con el control de teclas lentas. Puede usar XKB para configurar y mejorar los enlaces de teclado de Ubuntu, y hasta donde yo sé, esta sección tiene lo que necesitas Por lo tanto, no debería ser (relativamente) difícil tener una impresión de caracteres alternativa cuando una clave es mantenida por mucho tiempo.

Donde las cosas se complican es asignar múltiples caracteres especiales a una pulsación de tecla (ejemplo: mantenga presionada "a" y obtenga opciones para ä, à, á, â, etc.). ¿Cómo recorre las opciones? ¿Tiene los caracteres emergentes en una ventana de diálogo, luego usa el mouse, la pestaña o las teclas de flecha para seleccionar uno? Parece que consume mucho tiempo.

O puede asignar diferentes longitudes de retención a diferentes caracteres. 100ms de espera para à, 200ms de espera para á, 300ms para ... Pero recordar cuántos segundos son los que pueden ser difíciles para los personajes, sin mencionar asignarlos a todos individualmente, sería un dolor de cabeza. Además, cuando te metes en listas más largas de personajes, puedes estar sentado allí sosteniendo una tecla durante unos buenos 3-4 segundos. Parece incluso más lento.

En lugar de teclas lentas, puede probar la opción repetir teclas para que los múltiples toques de una tecla proporcionen un carácter especial: 3 toques de "a" para à, por ejemplo. Pero luego corre el riesgo de que aparezcan caracteres especiales no deseados cuando escribe algo como "bueno" o "misterioso" o "aaaaaaahhh!"

Es posible que hayas encontrado otro método de implementación más eficiente en el que no estoy pensando, en cuyo caso, ¡ve y modifica! Pero aún recomendaré combinaciones de teclas para componer mientras tanto. ☺

    
respondido por el Boxbot 27.10.2016 - 19:07
0

Estoy seguro de que esto es posible modificando la rutina de servicio de interrupción del teclado (ISR). Cada vez que se presiona una tecla, se envía una señal de interrupción a la CPU. La CPU entonces servirá esa interrupción ejecutando el teclado ISR.

Los ISR son programas de bajo nivel, generalmente codificados en lenguaje ensamblador, porque tratan directamente con el hardware y deben ser rápidos. Aquí hay más información sobre interrupciones de hardware en los procesadores Intel y cómo usarlos.

Los teclados tienen sus propios procesadores desde los días del IBM-PC original, y pueden generar caracteres muy rápidamente si se mantiene presionada alguna tecla.

Un par de definiciones podrían ser útiles aquí:

Retardo de repetición : el tiempo transcurrido entre presionar la tecla y cuando comienza a repetirse.

Velocidad de repetición : después de presionar una tecla, el teclado repetirá esa tecla. La velocidad a la que se repite es la velocidad de repetición. A veces se llama tasa de tipografía.

La rutina ISR del teclado debería modificarse para sustituir la función Repetir Retraso por una función de 'Carácter alternativo'. El momento de la pulsación y liberación de la tecla es la esencia de esto. Al medir la duración de la pulsación de tecla, el ISR (o controlador de interrupción) sabría transmitir el carácter normal del carácter alternativo (la clave "debajo")

En esencia, modificaría o volvería a escribir el controlador de dispositivo para el teclado.

Esta es solo una vista de alto nivel del enfoque que creo que sería necesario para lograr lo que desea.

    
respondido por el dbkeys 21.10.2016 - 07:10
0

Debido a que el touchpad funciona de forma similar a la pantalla táctil en Android, proporcionaría una mejor interfaz que el teclado. De hecho, podría implementarse un nuevo conjunto de rutinas para hacer zoom moviendo el índice y el pulgar juntos y alejándose al invertir la dirección podría implementarse.

El panel táctil ya puede sentir un dedo, dos dedos, incluso palmas moviéndose accidentalmente contra el panel táctil y, por lo tanto, se ignora. Las velocidades de aceleración y desaceleración son reconocidas. Ya está controlando el puntero del mouse para el texto que desea resaltar con una pulsación larga.

Los programadores deberían agregar un código adicional para medir la longitud de la pulsación y mostrar un menú contextual para select , copy , paste , etc. al igual que los teléfonos inteligentes de hoy en día. .

Creo que su pregunta es una gran idea que puede evolucionar software y teclados con paneles táctiles integrados a un nivel completamente nuevo. Debo señalar que algunos paneles táctiles incorporados en los teclados tienen una pantalla de color lcd que podría llevar su idea aún más lejos. es decir, el texto de la pantalla que se resalta se puede reflejar en el panel táctil lcd y hacer zoom para movimientos finos.

Apple, Google, Microsoft y Linus podrían estar entusiasmados con su idea. ¡Ciertamente despertó mi interés!

    
respondido por el WinEunuuchs2Unix 25.10.2016 - 01:55

Lea otras preguntas en las etiquetas