Super Key Notation für Stty

780
StudioMatrix Webmaster

Versuch, die Strg- und die Supertaste auf einer Ubuntu-Box zu vertauschen.

Es ist gelungen, Super und Ctrl mit xmodmap zu vertauschen. Jetzt muss ich nur das stty intr ändern, um Super_L + C zu sein

Ich kann nicht für mein Leben die Notation für den Superschlüssel finden. (Zum Beispiel ^ ist der Steuerschlüssel)

Weiß jemand, was die Notation für super mit stty ist? Ich möchte gerne tippen können

stty intr Super_L + C 

Zum Beispiel.

Oder eine andere, noch bessere Möglichkeit, Super + C zum Interrupt zu machen

1

1 Antwort auf die Frage

1
grawity

Dafür gibt es keine Notation.

Im Allgemeinen werden von stty (und den Betriebssystemkomponenten, die diese Einstellungen verwenden) keine Schlüssel als solche angezeigt. Die Terminal-App übersetzt diese Schlüssel in eine Bytefolge, und die tty-Ebene sieht nur die übersetzten Bytes, und mit stty können Sie ein bestimmtes Byte auswählen wodurch die tty-Schicht das Interrupt-Signal auslöst.

Mit anderen Worten, der Parameter intr ist ein einzelner Byte-Wert, der einem Symbol entspricht, das Sie tatsächlich eingeben können . (In den frühen Unix-Systemen wurde intr auf das #Zeichen gesetzt.)

Wenn Sie also intr auf setzen ^C, ist dies nur die Abkürzung für Byte 0x03 (vergleiche: der Buchstabe Cist 0x43 in ASCII). Grundsätzlich setzen sowohl Shift als auch Ctrl einige Bits des 'Basis'-Bytes. Es gibt jedoch keine solche Entsprechung für Super.

Infolgedessen ignorieren die meisten Terminals lediglich Super und senden den Basisbrief unverändert. einige könnten ANSI „escape“ Sequenzen (ähnlich denen, die Sie unter den Pfeiltasten oder Funktionstasten erhalten) senden, aber man konnte nicht die mit stty sowieso verwenden, weil es erfordert noch ein einziges Byte. Sie können die Interrupt-Taste nicht an eine Multibyte-Sequenz binden. Es würde nur das erste Byte abholen.

Das einzige, was Sie tun können, ist, die Terminal-App irgendwie zu hacken, um ein 0x03-Byte zu senden, wenn sie den Super + C-Tastendruck erhält. Einige Terminalemulatoren unterstützen dies über generische "Tastenkombinationen", andere benötigen möglicherweise Quellcodepatches.

Ah macht vollkommen Sinn. Danke, Kumpel StudioMatrix Webmaster vor 7 Jahren 0