Emulation von Alt-ASCII-Codes in Linux

574
Andrea

Ich habe einen Alphasmart Neo, der eine Tastatur emuliert, wenn er an einen Computer zum Senden von Textdateien angeschlossen ist. Es funktioniert im Grunde wie eine sehr schnelle Schreibkraft. Wenn es auf ein Zeichen mit Akzent trifft, versucht es, die Windows-Alt-Tastenkombinationen zum Einfügen zu verwenden.

Zum Beispiel wird das éZeichen als Alt+ gesendet 0 2 3 3. Natürlich sendet dies nur unter Linux Unsinn, weil Sonderzeichen anders behandelt werden.

Ich kann nicht ändern, wie Dateien vom Gerät gesendet werden.

Ich habe mich gefragt, ob es eine Möglichkeit gibt, diese AltWindows-Tastatureingaben unter Linux vorübergehend zu emulieren, damit die Dateien korrekt gesendet werden.

2
Vielleicht hilfreich: https://unix.stackexchange.com/questions/117027/insert-a-character-that-isnt-present-on-my-keyboard-on-linux-mint Fabian vor 5 Jahren 0
So schrecklich das auch klingt, Sie müssen möglicherweise ein Programm verwenden, das die rohen Eingaben vom Tastaturgerät erhält und die Codes selbst verarbeitet. Ich kenne ein solches Programm nicht. Ignacio Vazquez-Abrams vor 5 Jahren 0
@Fabian danke, es scheint, dass die Linux-Konsole (Strg + Alt + F1) Alt-Codes zulässt und das Senden einer Datei dort funktioniert. Ich hoffte jedoch auf eine Möglichkeit, dies in der GUI nachzubilden. Andrea vor 5 Jahren 0
@ IgnacioVazquez-Abrams Das war es, worüber ich mir Sorgen machte. Ich hoffte auf einen einfacheren Weg, dies zu tun. Andrea vor 5 Jahren 0
Nachdem ich jetzt mehr darüber nachgedacht habe, könnte wahrscheinlich eine IBus-Engine geschrieben werden. Ignacio Vazquez-Abrams vor 5 Jahren 0
Mögliches Duplikat von [Wie schreibe ich Sonderzeichen in Linux?] (Https://superuser.com/questions/59418/how-to-type-special-characters-in-linux) phuclv vor 5 Jahren 0
[Linux-Alternative zu Alt + Numpad-Codes] (https://unix.stackexchange.com/q/254477/44425). Die Suche nach "alt code linux" gibt auch eine Antwort von wikipedia sofort https://en.wikipedia.org/wiki/Alt_code#Linux phuclv vor 5 Jahren 0

2 Antworten auf die Frage

0
Andrea

Es scheint also eine Problemumgehung zu geben. Die Linux-Konsole ( Ctrl+ Alt+ F1) ermöglicht Alt-Codes und das Senden einer Datei funktioniert dort.

Ich hatte jedoch gehofft, dies in der GUI nachzubilden. Dies scheint jedoch ziemlich schwierig zu sein, es sei denn, eine Programmierung auf niedriger Ebene ist aktiviert. Ich werde diese Antwort einige Stunden nicht akzeptieren, falls jemand eine andere Lösung hat.

Hinweis: Laut [this] (https://superuser.com/help/self-answer) sind "Wenige" mindestens etwa 48. :) Kamil Maciorowski vor 5 Jahren 0
@ KamilMaciorowski ok Entschuldigung mein Fehler Andrea vor 5 Jahren 0
Weder ein Fehler noch etwas, über das man sich entschuldigen muss. Ich möchte Sie nur wissen lassen, dass die Website diese Antwort für einige Tage nicht akzeptieren wird. Kamil Maciorowski vor 5 Jahren 0
0
Austin Hemmelgarn

Nicht genau das, wonach Sie fragen, aber ähnlich genug, dass es wahrscheinlich immer noch funktionieren wird:

Viele (aber nicht alle) IME-Frameworks (einschließlich ibus und fctix) unter Linux unterstützen eine Bibliothek namens m17n, um IMEs bereitzustellen. Die m17n-Bibliothek bietet eine Reihe einfach zu bedienender IMEs (einschließlich trivialer Tastatur-Remappings für verschiedene Sprachen). Eine davon, die einfach als "Unicode" bezeichnet wird, tut fast genauso wie Alt-Codes. Die einzigen zwei Unterschiede sind:

  • Altcodes hängen von der Codepage Ihres Systems für ältere Anwendungen ab. Der IME des m17n 'Unicode' verwendet hexadezimale Unicode-Codepunkte, die zu 100% konsistent sind, unabhängig davon, wie das System konfiguriert ist.
  • Bei Alt-Codes müssen Sie die Alt-Taste gedrückt halten und die Ziffern mit dem Ziffernblock eingeben. Der IME des m17n 'Unicode' verwendet Strg-U als Triggersequenz. Sie können den Code auf beliebige Weise eingeben (vorausgesetzt, er entspricht dem erforderlichen Hex-Code).

Für Ihr Beispiel eines lateinischen Kleinbuchstabens 'e' mit einem akuten Akzent wäre die genaue Reihenfolge für m17m 'Unicode' IME also Ctrl-U 0 0 e 9. Numerisch ist die Hexadezimalzahl 00e9 tatsächlich identisch mit dem 0233-Dezimalwert, der für den entsprechenden Alt-Code mit CP1252 verwendet wird. Dies ist der Fall für die meisten der ersten 256 Zeichen in Unicode, da sie meistens in der Reihenfolge und Position mit dem CP1252 übereinstimmen. Diese Äquivalenz gilt jedoch nicht für höhere Zahlen.

Andere von m17n bereitgestellte IME, die für Sie möglicherweise von Interesse sind, sind 'Latin-Post' und 'Latin-Pre', mit denen Sie nach oder vor einem Buchstaben bestimmte Zeichen hinzufügen können, um diakritische Zeichen oder Sonderbuchstaben zu erstellen e'bzw. 'e) und "RFC 1345", die RFC 1345- Mnemonik verwendet, um die überwiegende Mehrheit der häufig verwendeten Zeichen aus dem Unicode-BMP einzugeben (und dieselbe e'Methode wie die "Latin-Post" -Methode verwenden würde).