Gibt es unter Linux ein Tastaturlayout von US International, das das Verhalten von Windows nachahmt?

12

Ich bin es gewohnt, US International als Tastaturlayout zu verwenden. Die Implementierung scheint sich jedoch zwischen Windows und Linux stark zu unterscheiden (Gnome in meinem Fall - kann durchaus ein GTK-Problem sein, da sich GTK unter Windows gleich verhält).

Das Layout verwendet Tottasten, zB für Tasten wie ', ", ^, & c. Ermöglicht die einfache Eingabe von Zeichen mit diakritischen Zeichen. Unter Windows führt das Drücken einer toten Taste und einer Taste, der kein Paar zugeordnet ist, zum Zeichen der toten Taste (wenn sie mit einem Leerzeichen gepaart ist) und zum Zeichen der zweiten Taste. Beispiel: Drücken ", aergibt "ä", Drücken ', sergibt jedoch "'s", da es keine Paarung für 'und gibt s.

Jetzt gibt es eine Sprache namens Englisch, in der genau diese beiden Zeichen häufig verwendet werden. Da es unter Windows funktioniert, um sie wie gewohnt einzugeben, ist es jetzt ein Muskelgedächtnis für mich. Was mich zu meinem Problem bringt:

Unter Linux (und GTK unter Windows), es ist eine Paarung für 'und s(unter vielen anderen), was zu ś(was wiederum zu mir führt häufig die Eingabe von „ITS“). So Eingabe von „es ist“ verlangt von mir zu geben ',         , sam Ende.

Es gibt ein paar andere Kombinationen, an die ich gewöhnt bin und die nicht funktionieren. Dazu gehört, dass für nicht existierende Paare einfach nichts das Ergebnis ist. Wenn Sie "Ich würde" eingeben, erhalten Sie "Ich". Wenn Sie eine dieser Tasten zweimal drücken, wird ein diakritisches Zeichen ohne Abstand angezeigt, das meine Gewohnheit, Zeichenfolgen einzugeben, bricht, indem Sie zuerst beide Anführungszeichen eingeben (was jetzt zu einem akuten Akzent oder Makron ohne Abstand führt).

Lange Rede, kurzer Sinn: Keines der mitgelieferten Layouts von US International scheint so zu funktionieren wie unter Windows - gibt es welche, die identisch funktionieren? Oder eine Möglichkeit, es so zu konfigurieren? Während es schön sein mag, ein s mit akutem Akzent oder diakritischen Zeichen ohne Abstand zu tippen, sind diese Bedürfnisse für mich nicht gerade üblich.

Joey
quelle
1
Für alle, die sich fragen, warum ich US International anstelle von etwas anderem verwende: Ich komme aus Deutschland und muss manchmal Dinge wie ä, ö, ü, ß eingeben. Die meisten Programmiersprachenentwickler entwerfen ihre Sprachen jedoch für genau ein Layout, sodass die Benutzer auf Tastenkombinationen zurückgreifen müssen, um Zeichen wie geschweifte Klammern oder einen Backslash einzugeben.
Joey

Antworten:

6

Eine Möglichkeit besteht darin, tote Schlüssel zu vermeiden und Buchstaben mit Akzent stattdessen mit einem Verfassen-Schlüssel einzugeben. Geben Sie beispielsweise ein, Compose " aum einzugeben ä. Sie müssen eine Tastaturlayoutoption auswählen, die eine ComposeTaste enthält. Eine häufige Wahl ist der Schlüssel links vom rechten CtrlSchlüssel (den Windows meiner Meinung nach aufruft Menu). Der Vorteil von Composeist, dass Sie viele ausgefallene Zeichen eingeben können, ohne Ihr Hauptlayout zu ändern. Der Nachteil ist, dass für einen Akzentbuchstaben drei statt zwei Druckvorgänge erforderlich sind.

Alternativ können Sie die Auswirkung von toten Schlüsseln konfigurieren, indem Sie eine Datei mit dem Namen .XCompose(Hinweis CApitalization) in Ihrem Home-Verzeichnis erstellen und die gewünschten Kombinationen auflisten. Etwas wie:

include "/usr/share/X11/locale/en_US.UTF-8/Compose"

<dead_acute> <space>: "'" Apostroph
<dead_acute> <exclam>: "'!"
<dead_acute> <quotedbl>: "'\" "
# usw...
<dead_acute> <a>: "á"
<dead_acute> <b>: "'b"
# usw...

Die Syntax ist ziemlich einfach: Die Tastenfolge links von :wird in die Zeichenfolge zwischen ""rechts von umgewandelt :. Das zusätzliche Wort rechts ist das Keysym (dh der Name des Schlüssels), das dieser Tastenfolge entspricht. es ist nicht besonders wichtig. Alles von a #bis zum Ende der Zeile wird ignoriert.

Ändern Sie die erste Zeile so, dass sie auf die Systemdatei verweist, wenn Ihre Distribution sie an einer anderen Stelle ablegt. In dieser Datei finden Sie weitere Syntaxbeispiele. <Multi_key>ist ein anderer Name für den ComposeSchlüssel.

Links sind die Namen zwischen <spitzen Klammern >Schlüsselsymbole. Die Liste der Keysyms finden Sie in /usr/include/X11/keysymdef.h(diese Datei befindet sich in einem Entwicklungspaket, z. B. x11proto-core-devunter Ubuntu).

Ja, das ist viel Tippen, aber Sie sollten in der Lage sein, einen Großteil davon zu automatisieren, indem Sie Teile kopieren keysymdef.hund ein paar clevere Massenersetzungen durchführen. Etwas, das hilft, ist, dass Sie den hexadezimalen Code auf der rechten Seite wiederverwenden können, um die rechte Zeichenfolge zu erstellen, dank der Syntax "\ x dd ": turn eg

#define XK_exclam 0x0021 / * U + 0021 EXCLAMATION MARK * /

in

<dead_acute> <exclam>: "'\ x21"

Schließlich können Sie ein Tastaturlayout mit toten Tasten und einer ComposeTaste einrichten . Als Deutscher könnten Sie sich nur "als toter Schlüssel einrichten . Wenn Sie diesen Weg gehen, ist es am einfachsten, über die GUI eine Tastatur ohne toten Schlüssel und eine .XmodmapDatei für den toten Schlüssel einzurichten , die so etwas wie enthält

keysym apostrophe = apostrophe dead_quotedbl
Gilles 'SO - hör auf böse zu sein'
quelle
1
Ok, ich werde mich darum kümmern (momentan nicht auf der anderen Maschine). Die Verwendung von Compose ist keine Option, da ich das Muskelgedächtnis neu lernen müsste und Linux sowieso nicht mein Hauptsystem ist. Und nimm nicht an, dass ich, nur weil ich Deutscher bin, nie etwas anderes als Umlaute brauche ;-). Es gibt ziemlich viele Wörter, die aus anderen Sprachen importiert wurden und ebenfalls einen ernsten oder akuten Akzent verwenden.
Joey
Es wäre wahrscheinlich besser, zunächst genau die Kombinationen zu überschreiben, mit denen Sie Probleme haben, und sie der Tabelle hinzuzufügen, wenn Sie neue Dinge finden, die Sie <dead_acute> <s> : "'s"
nerven
Möglicherweise müssen Sie auch festlegen GTK_IM_MODULE=xim, dass die in definierten Erstellungssequenzen verwendet werden sollen ~/.XCompose, und nicht die in GTK integrierten Funktionen (!).
RolKau
3

Mir ist bewusst, dass diese Frage für eine Weile "gelöst" wurde. Ich möchte jedoch meine Lösung vorstellen, die die Ergebnisse dieser Seite mit vielen Tests und Experimenten kombiniert.

Win US Intl für Linux ist eine Reihe von Skripten, die ich geschrieben habe, um das Problem zu lösen, dass Probleme mit dem nativen US Intl-Tastaturlayout von Linux auftreten, so wie es das OP geschrieben hat. Ich benutze es hauptsächlich, weil meine Muttersprache Spanisch ist und ich immer noch viele englische Foren, Texte, Chats usw. benutze (wie diese Seite).

Zu beachten: Dies ist tatsächlich ähnlich (nicht völlig gleich) wie das Verhalten von Windows XP US - Internationales Tastaturlayout.

Sie können zu http://tamh.info/en/win-us-intl-4-linux/ gehen , um es zu überprüfen. Ich bin dabei, es zu verbessern, indem ich unter anderem weitere XCompose-Einträge für mehrere andere Grenzfälle hinzufüge.

Tamh
quelle
2
Der Link funktioniert nicht.
Tink