Ändern Sie die Standard-TTY-Verknüpfung

8

Ich möchte die Standardverknüpfung ändern, um zum tty hin und her zu wechseln. Standardmäßig ist es Strg + Alt + F #. Ich habe versucht, eine benutzerdefinierte Verknüpfung mit den Tastatureinstellungen von Ubuntu zu erstellen, aber es hat nur unter Verwendung der grafischen Oberfläche funktioniert, wenn ich zurück zu tty wechsle, funktioniert es nicht. Ich muss also herausfinden, wie die Standardbindung der Tastenkombination Strg + Alt + F # geändert werden kann, damit eine einzelne Taste zwischen zwei TTYs hin und her wechselt.

Ära 878
quelle
2
Sind Sie sicher, dass dies kein Duplikat von askubuntu.com/questions/77982/…
Jacob Tomlinson
Was meinst du mit "Einzelschlüssel zwischen zwei TTYs hin und her wechseln"?
ish
@ Jacob etwas, aber vielleicht nicht genau :)
Rinzwind
Ah ja, ich verstehe, dies erfordert einen einzelnen Schlüssel, der umschaltet, anstatt einen anderen Schlüsselsatz.
Jacob Tomlinson

Antworten:

10

Sie können bindeinen Schlüssel an eine Funktion binden. Folgendes habe ich getan:

bind '"\ea": ". ~/newScript.sh\n" '

Hier newScript.shist die Datei, die die tty ändert und \eabedeutet, dass Alt+Adas Skript ausgeführt wird , wenn gedrückt wird.

Der Inhalt von newScript.shsind:

#! /bin/bash
ttyNum="$(tty)"
ttyNum=$(echo ${ttyNum##*y})
ttyNum=$(( (ttyNum +1) % 7))
chvt $ttyNum

Beachten Sie, dass Sie die Tastenkombinationen, wenn Sie sie dauerhaft speichern möchten, in Ihrer Datei "~ / .inputrc" speichern können. Weitere Informationen finden Sie unter folgendem Link: http://www.techrepublic.com/article/find-and-bind-key-sequences-in-bash/5683375

Update: Sie können die bindZeile in Ihrer ~/.bashrcDatei speichern, damit Sie sie nicht erneut ausführen müssen.

Grün
quelle
Beachten Sie, dass dies nicht funktioniert, wenn Sie nicht angemeldet sind oder wenn Sie bash nicht ausführen. Die Lösung mit remap.inc (siehe meine Antwort unten) funktioniert unabhängig davon, ob Sie angemeldet sind oder nicht.
Januar
7

Dafür gibt es einen Befehl chvt.

chvtBefehl steht für CHange Virtual Terminal. Es ist eine Option erforderlich, bei der es sich um eine Nummer handelt, die angibt, zu welchem ​​virtuellen Terminal gewechselt werden soll.

Wenn Sie beispielsweise am ersten virtuellen Terminal angemeldet sind und zum siebten wechseln möchten, auf dem der xserver normalerweise die GUI anzeigt, führen Sie chvtFolgendes aus:

chvt 7

Geben Sie Folgendes ein, um zum ersten virtuellen Terminal zurückzukehren:

chvt 1

Alles, was Sie tun müssen, ist, diesen Befehl zu 7 Verknüpfungen hinzuzufügen, und Sie können wechseln.

Rinzwind
quelle
1
Wie würden Sie das tun, wenn Sie die Taste drücken, während Sie sich beispielsweise in tty1 befinden?
John S Gruber
@ John: binde es. green7 hat das schon erklärt.
Rinzwind
5

EDIT: dumm mich! Schauen Sie einfach in die Datei /etc/console-setup/remap.inc

In dieser Datei finden Sie alles, was Sie brauchen. In jedem Fall werden unten Erklärungen gegeben.

Leider funktioniert "Binden" nur mit einer Shell-Sitzung.

Sie müssen lediglich die Konsolenzuordnungen ändern. Sie können dies mit dem Programm "loadkeys" (man loadkeys) tun. Speichern Sie zunächst die aktuellen Zuordnungen, um zu sehen, wie das Format der Datei aussehen soll:

dumpkeys > default_keys.txt

Beachten Sie, dass Sie dies über eine Textkonsole und nicht über X tun müssen. Drücken Sie also zuerst Strg-Alt-F1, um zu einer zu wechseln!

Hier ist eine Beispielzeile aus dieser Datei:

alt keycode  59 = Console_1

Das bedeutet, dass die Taste, die den Code 59 generiert und mit dem Modifikator "alt" (an einer anderen Stelle in dieser Datei definiert) gedrückt wird, ein "Console_1" -Ereignis generiert und zur virtuellen Konsole 1 wechselt.

Wie finde ich heraus, welcher Schlüssel welchen Code generiert? Verwenden Sie dazu den Programm-Showkey. Ich starte das Programm und drücke "F1":

komp $ showkey
keycode  59 press
keycode  59 release

Die einzige Möglichkeit, dieses Programm zu beenden, besteht darin, die Augen zu schließen und zehn Sekunden lang über die Natur von Open Source nachzudenken. Oder einfach nur zehn Sekunden lang nicht auf die Tastatur zu drücken, das funktioniert auch. Verwenden Sie diese Methode, um herauszufinden, in welcher Zeile der Keymap-Datei Sie die Tastenzuordnungen ändern müssen.

Angenommen, Sie möchten mit "Strg 1" zur Konsole 1 wechseln. Sie werden feststellen, dass der Schlüsselcode für 1 2 ist. Speichern Sie die folgende Zeile in einer Datei mit dem Namen "myownkeys.txt":

control keycode 2 = Console_1

Wechseln Sie zu einer Textkonsole (falls Sie dies noch nicht getan haben) und führen Sie sie aus

sudo loadkeys myownkeys.txt

Presto, Strg-1 sollte Sie jetzt zur Konsole 1 bewegen. Fügen Sie Ihren Dateien weitere Zeilen für Ihre Verknüpfungen hinzu. Wenn Sie es dauerhaft machen möchten, können Sie die Datei /etc/console-setup/remap.inc [EDIT] ändern

Übrigens haben Sie neben Console_n auch "Decr_console" und "Incr_Console" - wechseln Sie zur Konsole links und zur Konsole rechts. Standardmäßig sind sie an Alt-Links und Alt-Rechts gebunden.

Januar
quelle