¿Cómo asignar combinaciones de teclas físicas a teclas en Motorola Photon Q XT897?

Tengo un XT897 rooteado (Motorola Photon Q) con Android 4.1.2, aunque esto debería aplicarse a cualquier teléfono con teclado físico. El teclado del teléfono carece de teclas como <, >, {, },, [, ], `, \, |y ~. Tiene un botón "sym" que a veces abre una pequeña ventana en la que puedo seleccionar qué símbolo no está en el teclado que me gustaría escribir.

La mayoría de las veces, no hace absolutamente nada. Conozco los archivos de diseño de teclas de Android , y ya he modificado los míos de modo que la inútil tecla Bloq Mayús sea una CTRLtecla en su lugar. Sin embargo, estos no permiten el mapeo de combinaciones de teclas a otras teclas individuales (por lo que puedo decir). Lo que me gustaría es algo como xmodmap, donde podría mapear SYM + Py ]hacer eso para todas las teclas.

¿Hay alguna manera de que pueda hacer esto? La página en los archivos de diseño de teclas menciona que asigna códigos de teclas de Linux a códigos de teclas de Android, tal vez pueda editar el archivo de asignación de teclas de Linux. ¿Dónde sería eso? ¿Eso funcionaría?

¿ Has oído hablar del teclado Hacker ? Es posible que esto no ayude si su objetivo es aprender a mapear y no su resultado final.
@Narayanan lo tengo y lo uso. Todavía prefiero un teclado físico. Mi objetivo es absolutamente el objetivo final de hacer que este teléfono escriba las teclas mencionadas anteriormente a través del teclado físico.

Respuestas (1)

Hay dos "capas" en la pulsación de tecla de hardware -> carácter para insertar en el cuadro de texto. La capa después de los archivos de diseño clave es Archivos de mapas de caracteres clave . Toman la clave (como "A") y dictan lo que debería resultar de varias combinaciones de teclas. Por ejemplo:

key A {
  label: "A" # What to 'name' the key
  base: "a" # pressing this key with no modifiers
  shift, capslock: "A" # if either shift or capslock is on, do a capital a instead
  ctrl, alt, meta: none # do nothing if any other combinations are pressed
}

Haga una copia de seguridad, luego edite el .kcmarchivo correspondiente al teclado de hardware. Necesitarás raíz.

Si su archivo tiene algún error de sintaxis, simplemente volverá a la asignación de teclado predeterminada, que es correcta en su mayoría, pero no del todo. La única forma de verificar los errores de sintaxis, además de colocar el archivo y reiniciar el dispositivo, es compilar la totalidad del código fuente de Android.