Zmień domyślny skrót TTY

8

Chciałbym zmienić domyślny skrót, aby przełączać się z powrotem na tty. Domyślnie jest to ctrl + alt + F #. Próbowałem utworzyć niestandardowy skrót przy użyciu ustawień klawiatury Ubuntu, ale działał tylko podczas korzystania z interfejsu graficznego, gdy przełączam się z powrotem na tty, to nie działa. Muszę więc wymyślić, jak zmienić domyślne wiązanie skrótu ctrl + alt + F #, aby jeden klawisz przełączał się między dwoma TTY.

era878
źródło
2
Czy na pewno nie jest to duplikat strony askubuntu.com/questions/77982/…
Jacob Tomlinson
Co rozumiesz przez „jeden klawisz przełączający się między dwoma TTY?”
ish
@jacob nieco, ale może nie do końca :)
Rinzwind
Ach tak, rozumiem, to wymaga jednego klucza, który się przełącza, a nie innego zestawu kluczy.
Jacob Tomlinson,

Odpowiedzi:

10

Możesz użyć, bindaby powiązać klucz z jakąś funkcją. Oto co zrobiłem:

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

Oto newScript.shplik, który zmienia tty i \eaoznacza, że ​​po każdym Alt+Anaciśnięciu skrypt wykonuje się.

Zawartość newScript.shto:

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

Zauważ, że jeśli chcesz przechowywać powiązania klawiszy na stałe, możesz je zapisać w pliku `~ / .inputrc '. Aby uzyskać więcej informacji, możesz odwiedzić ten link: http://www.techrepublic.com/article/find-and-bind-key-sequences-in-bash/5683375

Aktualizacja: możesz zapisać bindlinię w swoim ~/.bashrcpliku, abyś nie musiał robić tego ponownie.

Zielony
źródło
Pamiętaj, że to nie zadziała, jeśli nie jesteś zalogowany lub nie korzystasz z bash. Rozwiązanie wykorzystujące remap.inc (patrz moja odpowiedź poniżej) będzie działać bez względu na to, czy jesteś zalogowany, czy nie.
stycznia
7

Jest na to polecenie chvt.

chvtpolecenie oznacza CHange Virtual Terminal. Pobiera jedną opcję, która mówi o przełączeniu wirtualnego terminala.

Na przykład, jeśli jesteś zalogowany na pierwszym wirtualnym terminalu i chcesz przełączyć się na 7, gdzie xserver zwykle wyświetla GUI, a następnie uruchom chvtw następujący sposób:

chvt 7

Aby wrócić do 1. wirtualnego terminala, wpisz:

chvt 1

Wszystko, co musisz zrobić, to dodać to polecenie do 7 skrótów i możesz je przełączać.

Rinzwind
źródło
1
Jak byś to zrobił po naciśnięciu klawisza w, powiedzmy, tty1?
John S Gruber,
@john: bind it. green7 już to wyjaśnił.
Rinzwind,
5

EDYCJA: głupia ja! Wystarczy zajrzeć do pliku /etc/console-setup/remap.inc

W tym pliku znajdziesz wszystko, czego potrzebujesz. W każdym razie wyjaśnienia podano poniżej.

Niestety, „bind” będzie działał tylko z sesją powłoki.

Musisz zmienić odwzorowania konsoli. Możesz to zrobić za pomocą programu „loadkeys” (man loadkeys). Najpierw zrzuć bieżące odwzorowania, aby zobaczyć, jak powinien wyglądać format pliku:

dumpkeys > default_keys.txt

Pamiętaj, że musisz to zrobić z konsoli tekstowej, a nie X, więc najpierw naciśnij Ctrl-Alt-F1, aby przełączyć się na jedną!

Oto przykładowy wiersz z tego pliku:

alt keycode  59 = Console_1

Oznacza to, że klawisz, który generuje kod 59, naciśnięty przy użyciu modyfikatora „alt” (zdefiniowanego gdzie indziej w tym pliku) wygeneruje zdarzenie „Console_1” - przejście do wirtualnej konsoli 1.

Jak dowiedzieć się, który klucz generuje kod? Użyj do tego klucza programu. Uruchamiam program i naciskam „F1”:

komp $ showkey
keycode  59 press
keycode  59 release

Jedynym sposobem na wyjście z tego programu jest zamknięcie oczu i kontemplowanie natury Open Source przez dziesięć sekund. Lub po prostu powstrzymać się od dotykania klawiatury przez dziesięć sekund, to również działa. Użyj tej metody, aby dowiedzieć się, jakiej linii w pliku mapy klawiszy potrzebujesz zmienić mapowania klawiszy.

Powiedzmy, że chcesz przełączyć się na konsolę 1 za pomocą „ctrl 1”. Dowiesz się, że kod klucza dla 1 to 2. Zapisz następujący wiersz w pliku o nazwie „myownkeys.txt”:

control keycode 2 = Console_1

Przejdź do konsoli tekstowej (jeśli jeszcze tego nie zrobiłeś) i uruchom

sudo loadkeys myownkeys.txt

Presto, Ctrl-1 powinien przenieść cię teraz na konsolę 1. Dodaj więcej linii do plików, aby uzyskać skróty. Jeśli chcesz, aby był stały, możesz [EDYTOWAĆ] zmodyfikować plik /etc/console-setup/remap.inc

Nawiasem mówiąc, oprócz Console_n masz również „Decr_console” i „Incr_Console” - przełącz się odpowiednio na konsolę po lewej stronie i konsolę po prawej stronie. Domyślnie są one przypisane do klawiszy alt-left i alt-right.

styczeń
źródło