Wie macht man eine Schlüsselhandlung als Akut und Apostroph? Problem mit toten Schlüsseln [geschlossen]

Hallo lieber Android-/Linux-Enthusiast, erste Frage zu Stackoverflow, bis jetzt habe ich viel Hilfe beim Lesen von stackexchange.* im passiven Modus bekommen, danke für all das!

Ich möchte ein Keycharmap/Keylayout für meine Bluetooth-Tastatur in meinem Android-Telefon erstellen. Ich möchte, dass es sich wie eine dvorack-us-international-Tastatur verhält. Also habe ich alle erforderlichen Web-Recherchen durchgeführt, aber eine Sache fehlt mir noch. In meinem PC verhält sich die Apostroph-Taste wie eine Akut-Taste, wenn ich sie einmal drücke und dann einen Vokal drücke, schreibt sie den Vokal mit Akut (meine Muttersprache ist Spanisch, also bin ich auf dieses "Feature" angewiesen), also Ich möchte dieses Verhalten in Android.

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

Also habe ich eine Keycharmap mit folgendem Inhalt erstellt:

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

(Wie in https://source.android.com/devices/tech/input/key-character-map-files.html#behaviors angegeben )

Aber was ich habe, war dieses Verhalten:

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

Wie Sie sehen können, fehlen mir das Anführungszeichen und das doppelte Anführungszeichen und ich hätte sie wirklich gerne.

Also ich habe mal was anderes probiert:

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

(Blick auf Android-Quellen http://omapzoom.org/?p=platform/frameworks/base.git;a=blob;f=core/java/android/view/KeyCharacterMap.java;h=55dd6bb64fe65ba29c5f71ed9257ed9dbe7a3790;hb=HEAD und bei Unicode "Combining Character" in Wikipedia)

Habe aber auch nicht bekommen was ich wollte. Ich habe gesehen, dass das Zeichen '\u030E' im Quellcode auskommentiert war, aber ich musste es versuchen. Die Frage ist also:

Wie bekomme ich das gewünschte Verhalten in Android? Geht das nicht, ohne die Android-Quellen zu ändern? muss ich Tastenmodifikatoren (ALT oder STRG) verwenden und dabei bleiben?

(Ich verwende Cyanogenmod 11-20140708 basierend auf Kitkat 4.4.4 auf einem LG Nexus 4 (Mako))

Danke!

Dies ist jedoch keine Frage zur Entwicklung oder Veröffentlichung von Anwendungen, sondern zur Verwendung eines anderen Bluetooth-Tastaturlayouts. Es hat einen kleinen Hack, aber es ist immer noch aus der Sicht eines Benutzers. :(

Antworten (1)

Ok, das ist nicht die Antwort, das ist eine Art "Workaround", die ich nicht mag. Es funktioniert, aber ich muss mir eine weitere Supertastenkombination merken.

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

Und mit diesen Einstellungen erhalte ich diese Ergebnisse:

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

Die Verwendung von Alt + Shift fühlt sich unnatürlich an und ich möchte das gleiche Verhalten wie auf meinem PC erhalten, aber im Moment funktioniert das.