1 votos

¿Cómo hacer que una llave actúe como agudo y apóstrofe? Problema de las llaves muertas

Hola querido entusiasta de Android/linux, primera pregunta sobre el stackoverflow, hasta ahora sólo he tenido mucha ayuda leyendo stackexchange.* en modo pasivo, ¡gracias por todo eso!

Quiero hacer un keycharmap/keylayout para mi teclado bluetooth en mi teléfono Android. Quiero que se comporte como un teclado dvorack-us-internacional. Así que hice toda la investigación en la web necesaria, pero todavía me falta una cosa. En mi PC la tecla de apóstrofe se comporta como una tecla aguda, si la presiono una vez y luego presiono una vocal, escribe la vocal con la aguda (mi idioma nativo es el español así que me he vuelto dependiente de esta "característica"), así que quiero este comportamiento en Android.

En mi PC:

APOSTROPHE A = á
APOSTROPHE O = ó
APOSTROPHE Shift+A = Á
APOSTROPHE APOSTROPHE = ´ (lonely acute)
APOSTROPHE SPACE = '
Shift+APOSTROPHE A = ä
Shift+APOSTROPHE Shift+A = Ä
Shift+APOSTROPHE Shift+APOSTROPHE = ¨ (umlaut)
Shift+APOSTROPHE SPACE = "

Así que hice un keycharmap que tiene esto:

key APOSTROPHE {
    label:                              '\''
    base:                               '\u0301'
    shift:                              '\u0308'
}

(Como se especifica en https://source.Android.com/devices/tech/input/key-character-map-files.html#behaviors )

Pero lo que tengo fue este comportamiento:

APOSTROPHE APOSTROPHE = ´ (lonely acute)
APOSTROPHE SPACE = ´ (lonely acute)
Shift+APOSTROPHE Shift+APOSTROPHE = ¨ (umlaut)
Shift+APOSTROPHE SPACE = ¨ (umlaut)

Como pueden ver Me estoy perdiendo la cita y la doble cita y me gustaría mucho tenerlos.

Así que intenté algo diferente:

key APOSTROPHE {
    label:                              '\''
    base:                               '\u030D'
    shift:                              '\u030E'
}

(Mirando a las fuentes de Android http://omapzoom.org/?p=platform/frameworks/base.git;a=blob;f=core/java/Android/view/KeyCharacterMap.java;h=55dd6bb64fe65ba29c5f71ed9257ed9dbe7a3790;hb=HEAD y en el unicode "combinando caracteres" en wikipedia)

Pero tampoco conseguí lo que quería. Vi que el carácter \u030E era empezar con el código fuente, pero tenía que intentarlo. Así que la pregunta es:

¿Cómo consigo el comportamiento que quiero en Android? No se puede hacer sin modificar las fuentes de Android? ¿Tengo que usar modificadores clave (ALT o CTRL) y seguir con eso?

(Estoy utilizando el cianogenmod 11-20140708 basado en el kitkat 4.4.4 en un nexo LG 4 (mako))

¡Gracias!

0 votos

Pero esto no es una pregunta relacionada con el desarrollo o la publicación de aplicaciones, se trata de una pregunta acerca de cómo utilizar un diseño de teclado bluetooth diferente. Tiene un pequeño hack pero sigue siendo desde el punto de vista de un usuario. :(

1voto

MrEvil Puntos 1046

Ok, esta no es la respuesta, es una especie de "solución" que no me gusta. Funciona, pero me hace memorizar otro combo de teclas.

# In the keycharmap I puted this:

# this is the default for this key
key GRAVE {
    label:                              '`'
    base:                               '`'
    shift:                              '~'
    alt:                                '\u0300'
    alt+shift:                          '\u0303'
}

key APOSTROPHE {
    label:                              '\''
    base:                               '\''
    shift:                              '"'
    alt:                                '\u0301'
    alt+shift:                          '\u0308'
}

Y con esa configuración obtengo estos resultados:

Alt+APOSTROPHE A = á
Alt+APOSTROPHE O = ó
Alt+APOSTROPHE Shift+A = Á
Alt+APOSTROPHE Alt+APOSTROPHE = ´ (lonely acute)
APOSTROPHE = '
Alt+Shift+APOSTROPHE A = ä
Alt+Shift+APOSTROPHE Shift+A = Ä
Alt+Shift+APOSTROPHE Alt+Shift+APOSTROPHE = ¨ (umlaut)
Shift+APOSTROPHE = "

Usar Alt+Shift no es natural y me gustaría obtener el mismo comportamiento que tengo en mi PC, pero por ahora esto funciona.

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X