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

5603
Joey

Ich bin es gewohnt, US International als Tastaturlayout zu verwenden. Allerdings scheint die Implementierung zwischen Windows und Linux sehr unterschiedlich zu sein (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. Einfache Eingabe von Zeichen mit diakritischen Zeichen. Wenn Sie unter Windows eine tote Taste und dann eine Taste drücken, der kein Paar zugeordnet ist, wird das Zeichen der toten Taste (wenn mit Leerzeichen gepaart) und das Zeichen der zweiten Taste angezeigt. Beispiel: Drücken von ", aergibt "ä", aber Drücken von ', sergibt "s", da es keine Paarung für 'und gibt s.

Nun gibt es eine Sprache namens Englisch, in der häufig genau diese beiden Zeichen verwendet werden. Da sie unter Windows funktioniert, tippen sie sie wie gewohnt ein. Was mich zu meinem Problem bringt:

Unter Linux (und GTK unter Windows) gibt es ein Pairing für 'und s(unter vielen anderen), was dazu führt ś(was wiederum dazu führt, dass ich häufig „itś“ tippe). So Eingabe von „es“ erfordert mich zu geben ',         , sam Ende.

Es gibt ein paar andere Kombinationen, an die ich nicht gewöhnt bin. Unter diesen ist, dass für nicht existierende Paare einfach nichts das Ergebnis ist. Wenn Sie "Ich" eingeben, wird "Ich" angezeigt. Wenn Sie einen dieser Tasten zweimal drücken, führt dies zu einem Nicht-Abstands-Diakritikum, das meine Angewohnheit verliert, Zeichenketten zu schreiben, indem Sie zuerst beide Anführungszeichen eingeben (was jetzt zu einem Abstandslos-Akzent oder Makron führt).

Um es kurz zu machen: Keines der mitgelieferten US International Layouts scheint so zu funktionieren wie in Windows. Gibt es eines, das identisch funktioniert? Oder eine Möglichkeit, es so zu konfigurieren? Es mag zwar schön sein, eine s mit akuten Akzenten oder Nicht-Abstandsdiakritiken einzugeben, aber das ist für mich nicht gerade üblich.

10
Für alle, die sich fragen, warum ich US International benutze, anstatt etwas anderes: Ich komme aus Deutschland und muss manchmal Dinge wie ä, ö, ü, ß eingeben. Die meisten Programmiersprachengestalter entwerfen jedoch ihre Sprachen für genau ein Layout, sodass die Benutzer auf Tastenkombinationen zurückgreifen müssen, um Zeichen wie geschweifte Klammern oder einen umgekehrten Schrägstrich einzugeben. Joey vor 13 Jahren 1

3 Antworten auf die Frage

7
Gilles

Eine Möglichkeit besteht darin, zu vermeiden, tote Schlüssel zu verwenden und stattdessen Buchstaben mit Akzent mit einem Compose-Schlüssel einzugeben. Geben Sie beispielsweise Compose " azum Eingeben ein ä. Sie müssen eine Tastaturlayoutoption auswählen, die eine ComposeTaste enthält. Eine gängige Wahl ist der Schlüssel links von der rechten CtrlTaste (den ich denke, Windows ruft Menu). Der Vorteil von Composeist, dass Sie viele fantastische Zeichen eingeben können, ohne Ihr Hauptlayout zu ändern. Der Nachteil ist, dass für einen Buchstaben mit Akzent drei statt zwei Pressen erforderlich sind.

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

Include "/usr/share/X11/locale/en_US.UTF-8/Compose"  <dead_acute> <Leerzeichen>: "'" 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 Zusatzwort auf der rechten Seite ist das Keysym (dh der Name des Schlüssels), der 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 einem anderen Ort platziert. In dieser Datei finden Sie weitere Syntaxbeispiele. <Multi_key>ist ein anderer Name für den ComposeSchlüssel.

Auf der linken Seite 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-devauf Ubuntu).

Ja, das ist eine Menge Tippen, aber Sie sollten in der Lage sein, einen Großteil davon zu automatisieren, indem Sie keysymdef.heinige Blöcke kopieren und ein paar clevere Massenersetzungen durchführen. Was hilft, ist, dass Sie den hexadezimalen Code auf der rechten Seite wiederverwenden können, um dank der "\ x dd " -Syntax die rechte Zeichenfolge zu bilden : turn eg

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

in

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

Schließlich können Sie ein Tastaturlayout mit unbelegten Tasten und einer ComposeTaste einrichten . Da Sie Deutscher sind, können Sie nur "als toten Schlüssel eingerichtet werden. Wenn Sie diese Route wählen, besteht die einfachste Möglichkeit darin, über die grafische Benutzeroberfläche eine Tastatur ohne toten Schlüssel und eine .XmodmapDatei für den toten Schlüssel einzurichten, die etwas enthält

keysym Apostroph = Apostroph dead_quotedbl 
Ok, ich schaue nach (nicht auf die andere Maschine). Die Verwendung von Compose ist keine Option, da ich das Muskelgedächtnis erneut lernen müsste und Linux sowieso nicht mein Hauptsystem ist. Und gehe nicht davon aus, dass ich, nur weil ich Deutsche bin, nie mehr als Umlaute brauchen wird ;-). Es gibt ziemlich viele Wörter, die aus anderen Sprachen importiert wurden und ebenfalls einen ernsten oder akuten Akzent verwenden. Joey vor 13 Jahren 1
Es ist wahrscheinlich besser, mit den Kombinationen, mit denen Sie Probleme haben, überschreiben und der Tabelle hinzufügen, wenn Sie neue Dinge finden, die Sie stören, dh ` : "s" ` RolKau vor 13 Jahren 0
Möglicherweise müssen Sie auch 'GTK_IM_MODULE = xim' festlegen, um die in `~ / .XCompose` definierten Compose-Sequenzen zu verwenden, nicht die GTK-eingebauten (!). RolKau vor 13 Jahren 0
3
Tamh

Ich bin mir 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 Skripts, die ich geschrieben habe, um das Problem mit dem nativen US Intl-Tastaturlayout von Linux zu lösen, genau wie das OP dies geschrieben hat. Ich verwende es hauptsächlich, weil meine Muttersprache Spanisch ist, und ich benutze immer noch viele englische Foren, Texte, Chats usw. (wie diese Seite).

Hinweis: Dies ist tatsächlich (nicht völlig gleich) dem Verhalten von Windows XP US - Internationalem Tastaturlayout.

Sie können dies unter http://tamh.info/de/win-us-intl-4-linux/ nachlesen. Ich bin dabei, es besser zu machen, indem ich unter anderem weitere XCompose-Einträge für mehrere andere Grenzfälle hinzufügt.

Der Link funktioniert nicht. tink vor 5 Jahren 0
3
yms

Derzeit gibt es ein Github-Repo, das eine .deb-Datei enthält, die dieses Problem löst:

Windows ™ US International XCompose für Linux

Es basiert auf einer benutzerdefinierten .XCompose-Datei, wie andere Antworten vorgeschlagen haben.