Mantenga presionadas las teclas para modificar

23

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

Patricio
fuente
Es tarde, pero ¿puede dar más detalles sobre la funcionalidad que le gustaría implementar para Ubuntu?
Harshit
1
@Harshit, claro: con el teclado de Google, en Android, es posible seleccionar la capacidad de mantener presionadas las teclas en el teclado suave para escribir la puntuación, sin tener que ir a un menú separado. Idealmente, esto se implementaría como una opción dentro de Ubuntu mediante la cual mantenga presionada, digamos, la tecla '2' para los tipos de 100 ms a '@', mantenga presionada '-' tipos '_', y así sucesivamente.
Patrick

Respuestas:

3

Actualmente no existe una 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 predeterminados ; Los encuentro más rápidos y mucho más intuitivos que la selección de pulsación larga estilo móvil (♥). Dicho esto, si tiene el tiempo y la determinación, es posible que pueda aprovechar la opción de teclas lentas en la aplicación de acceso universal central predeterminada para crear algo similar a la opción móvil.

Jugando con eso yo mismo, XKB parece estar asociado con el control de teclas lentas. Puede usar XKB para configurar y mejorar los enlaces de teclado de Ubuntu, y por lo que puedo decir, esta sección tiene lo que necesita. Por lo tanto, no debería ser tan (relativamente) difícil tener un carácter alternativo impreso cuando se mantiene presionada una tecla.

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 se desplaza por las opciones? ¿Tiene los caracteres emergentes en una ventana de diálogo y luego usa el mouse, la pestaña o las teclas de flecha para seleccionar uno? Parece que lleva mucho tiempo.

O puede asignar diferentes longitudes de espera a diferentes caracteres. 100 ms para à, 200ms para á, 300ms para â ... Pero recordar cuántos segundos son para los que los personajes podrían ser difíciles, sin mencionar que asignarlos individualmente sería un dolor de cabeza. Además, cuando ingresas a listas más largas de personajes, podrías estar sentado allí sosteniendo una tecla durante unos buenos 3-4 segundos. Parece aún más lento.

En lugar de teclas lentas, puede probar la opción de teclas de repetición para que varias pulsaciones de una tecla proporcionen un carácter especial: 3 pulsaciones de "a" para à, por ejemplo. Pero entonces corre el riesgo de que aparezcan caracteres especiales no deseados cuando escribe algo como "bueno", "misterioso" o "aaaaaaahhh".

Es posible que haya encontrado algún otro método de implementación más eficiente que no estoy pensando, en cuyo caso, ¡adelante y modifíquelo! Pero mientras tanto recomiendo componer combinaciones de teclas. ☺

Boxbot
fuente
1
Echando un vistazo a su enlace, puede ser posible configurar cada tecla como una tecla modificadora para una puntuación, con un retraso, ¡que es exactamente lo que estoy buscando! Tendré que intentar jugar con esto, más adelante.
Patrick
0

Estoy seguro de que esto es posible modificando la rutina del 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 las interrupciones de hardware en los procesadores Intel y cómo usarlas.

Los teclados han tenido sus propios procesadores desde los días de la PC original de IBM, y pueden generar caracteres muy rápidamente si se mantiene presionada cualquier tecla.

Un par de definiciones pueden ser útiles aquí:

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

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

La rutina ISR del teclado tendría que modificarse para sustituir la función Retardo de repetición por una función de 'Carácter alternativo'. El momento de presionar y soltar la tecla es la esencia de esto. Al medir la duración de la pulsación de la tecla, el ISR (o el controlador de interrupciones) sabría transmitir el carácter normal del carácter alternativo (la tecla "debajo" de él)

Esencialmente, estaría modificando o reescribiendo el controlador del 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.

dbkeys
fuente
0

Debido a que el panel táctil funciona de manera similar a la pantalla táctil en Android, proporcionaría una mejor interfaz que el teclado. De hecho, se podría implementar un nuevo conjunto de rutinas para hacer zoom moviendo el pulgar y el índice juntos y alejar el zoom invirtiendo la dirección.

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

Debe ser un pedazo de pastel para los programadores agregar un poco más de código a medida toque longitud prensa y que aparezca un menú sensible al contexto para select, copy, paste, etc, como los teléfonos inteligentes hacen hoy en día.

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

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

WinEunuuchs2Unix
fuente
¿Siento sarcasmo o es genuino?
Amit Gold
Pienso que es una idea genial. Trayendo algunas de las ventajas del teléfono inteligente de vuelta a casa al escritorio.
WinEunuuchs2Unix