Update für 2020

Update für 2020

Ich schreibe ein neues benutzerdefiniertes Tastaturlayout für Xorg, aber es gibt einen bestimmten Glyph, der in Unicode nicht existiert. Es ist jedoch einfach, ihn zu erstellen, indem man einen Standardbuchstaben plus ein kombinierendes diakritisches Zeichen verwendet.

Wenn ich beispielsweise den Buchstaben vmit einem Makron darunter haben möchte, U0073+U0331erzeugt die Sequenz das gewünschte Zeichen.

In meiner xkb-Layoutdefinition kann ich einen einzelnen Unicode-Punkt angeben ( altgr+dist hier an ḏ und altgr+shift+dḎ gebunden):

key <AC03>  { [         d,          D,        U1E0F,        U1E0E ] }; // d with macron below

Aber ich scheine nicht in der Lage zu sein, einen „kombinierten“ Unicode-Glyph für eine einzelne Taste anzugeben:

key <AB04>  { [         v,          V,  U0076+U0331,  U0056+U0331 ] }; // v with macron below

Ist es möglich, auf diese Weise eine systemweite XKB-Definition zu erstellen?

Antwort1

BEARBEITEN:

Versuche immer noch...

Tests zeigen, dass die Tastenbelegung NUR eine einzige Taste an jeder Position zulässt.

ABER, wenn Sie in der Keymap-Definition ein seltenes/nie verwendetes Keysym und anschließend ein globales Xmodmap verwenden, um dafür zu sorgen, dass DIESES Keysym die verschiedenen Unicode-Zeichen ausgibt, die Sie benötigen, dann funktioniert das.

In der Tastenbelegung:

key <AB04>  { [ v, V, XF86LaunchA, XF86LaunchB ] };

In einer globalen Xmodmap: (vielleicht aus /etc/profile.d geladen?)

keysym XF86LaunchA = U0056 U0331
keysym XF86LaunchB = U0076 U0331

Es gibt eine ganze Reihe ungenutzter/für spezielle Zwecke verwendeter Keysyms, ich habe LaunchA/B als Beispiel gewählt.

Antwort2

Andererseits können Sie einer bestimmten Taste das Unicode-Kombinationszeichen selbst zuordnen und es dann nach jedem beliebigen anderen Zeichen eingeben. Tatsächlich ist dies die Art und Weise, wie die Unicode-Kombinationszeichen funktionieren sollen.

In X11 gibt es tote Tasten, tote Tasten funktionieren andersherum: zuerst die tote Taste, dann der Basisbuchstabe. Es gibt ein <dead_belowmacron>, das Sie an eine Taste anhängen können.

Anschließend müssen Sie die Compose-Datei für Ihr Gebietsschema bearbeiten (ich wäre dankbar, wenn jemand wüsste, wie man Definitionen von einem benutzerdefinierten Speicherort an eine Compose-Datei anfügt) und Zeilen wie die folgenden hinzufügen:

# when the output is a single unicode char, you put also the corresponding
# X11 symbol name
# <symbol> <symbol> : "one-char-string" <symbol>
<dead_belowmacron> <d> : "ḏ" U1E0F
<dead_tilde> <n> : "ñ" <ntilde>
# when the output is a multicharacter string, you put just the string
# <symbol> <symbol> : "string"
<dead_belowmacron> <v> : "v̱"

die zu verwendende Compose-Datei wird durch das Gebietsschema in der Datei /usr/share/X11/locale/compose.dir definiert (Pfad kann variieren).

Antwort3

Update für 2020

Diese Frage wurde 2012 gestellt und die letzte Antwort (vor dieser) kam 2013. Seit langem ist die bessere Antwort, einfach von ximzu zu wechseln.uim. Es handelt sich mehr oder weniger um einen Drop-in-Ersatz, der Unicode und mehrsprachige Eingaben vollständig unterstützt. Neben vielen anderen Funktionen ermöglicht uim die Ausgabe von Multi-Code-Point-Zeichen, beispielsweise U0073+U0331als Ergebnis eines Tastendrucks oder einer Tottastenkombination.

verwandte Informationen