1 votes

Comment faire en sorte qu'une touche fasse office d'aiguë et d'apostrophe ? problème de touches mortes

Bonjour cher amateur d'Android/linux, première question sur stackoverflow, jusqu'à présent j'ai eu beaucoup d'aide en lisant simplement stackexchange.* en mode passif, merci pour tout ça !

Je veux créer un schéma de touches pour mon clavier Bluetooth dans mon téléphone Android. Je veux qu'il se comporte comme un clavier dvorack-us-international. J'ai donc fait toutes les recherches nécessaires sur le web mais il me manque encore une chose. Dans mon PC, la touche apostrophe se comporte comme une touche aiguë, si j'appuie une fois dessus et ensuite sur une voyelle, il écrit la voyelle avec l'aiguë (ma langue maternelle est l'espagnol donc je suis devenu dépendant de cette "fonctionnalité"), donc je veux ce comportement dans Android.

Dans mon 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 = "

J'ai donc créé une carte clé qui a ceci :

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

(Comme spécifié dans https://source.Android.com/devices/tech/input/key-character-map-files.html#behaviors )

Mais ce que j'ai eu, c'est ce comportement :

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

Comme vous pouvez le constater Il me manque le guillemet et le double guillemet et j'aimerais vraiment les avoir.

Alors, j'ai essayé quelque chose de différent :

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

(En regardant les sources Android http://omapzoom.org/?p=platform/frameworks/base.git;a=blob;f=core/java/Android/view/KeyCharacterMap.java;h=55dd6bb64fe65ba29c5f71ed9257ed9dbe7a3790;hb=HEAD et à unicode "caractère de combinaison" dans wikipedia)

Mais je n'ai pas eu ce que je voulais non plus. J'ai vu que le personnage ' \u030E Le code source n'a pas été commenté, mais je devais essayer. Donc la question est :

Comment obtenir le comportement que je souhaite dans Android ? Est-ce possible sans modifier les sources d'Android ? Dois-je utiliser des modificateurs de touches (ALT ou CTRL) et m'en tenir à cela ?

(J'utilise cyanogenmod 11-20140708 basé sur kitkat 4.4.4 sur un LG nexus 4 (mako))

Merci !

1voto

MrEvil Points 1046

Ok, ce n'est pas la réponse, c'est une sorte de "solution de rechange" que je n'aime pas. Ca marche mais ça me fait mémoriser une autre super combinaison de touches.

# 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'
}

Et avec ces paramètres, j'obtiens ce résultat :

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 = "

L'utilisation de Alt+Shift n'est pas naturelle et j'aimerais obtenir le même comportement que sur mon PC, mais pour l'instant, cela fonctionne.

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X