Modifica scorciatoia TTY predefinita


8

Vorrei cambiare la scorciatoia predefinita per passare avanti e indietro al tty. Di default è ctrl + alt + F #. Ho provato a creare una scorciatoia personalizzata usando le impostazioni della tastiera di Ubuntu ma ha funzionato solo usando l'interfaccia grafica quando torno a tty non funziona. Quindi ho bisogno di capire come cambiare l'associazione predefinita della scorciatoia ctrl + alt + F # per fare in modo che un singolo tasto passi avanti e indietro tra due TTY.


2
Sei sicuro che questo non sia un duplicato di askubuntu.com/questions/77982/…
Jacob Tomlinson,

Cosa intendi con "tasto singolo per alternare tra due TTY?"
Ish

@jacob in qualche modo ma forse non esattamente :)
Rinzwind

Ah sì, vedo, questo richiede un singolo tasto che attiva o disattiva un diverso set di tasti.
Jacob Tomlinson,

Risposte:


10

È possibile utilizzare bindper associare un tasto ad alcune funzioni. Ecco cosa ho fatto:

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

Ecco newScript.shil file che cambia tty e \easignifica che ogni volta che Alt+Aviene premuto, lo script viene eseguito.

I contenuti di newScript.shsono:

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

Si noti che se si desidera memorizzare permanentemente i collegamenti dei tasti, è possibile memorizzarli nel file `~ / .inputrc '. Per ulteriori informazioni, è possibile visitare questo link: http://www.techrepublic.com/article/find-and-bind-key-sequences-in-bash/5683375

Aggiornamento: è possibile memorizzare la bindriga nel ~/.bashrcfile in modo da non doverlo ripetere.


Nota che questo non funzionerà se non sei loggato o se non stai eseguendo bash. La soluzione che utilizza remap.inc (vedi la mia risposta di seguito) funzionerà indipendentemente dal fatto che tu abbia effettuato l'accesso o meno.
Gennaio

7

C'è un comando per quello chvt.

chvtcomando sta per CHange Virtual Terminal. Prende un'opzione che è un numero che indica al terminale virtuale di passare.

Ad esempio, se si è effettuato l'accesso al primo terminale virtuale e si desidera passare al 7 ° dove xserver visualizza di solito la GUI, quindi eseguire chvtcome segue:

chvt 7

E per tornare al 1 ° terminale virtuale, digitare:

chvt 1

Quindi tutto ciò che devi fare è aggiungere quel comando a 7 scorciatoie e puoi passare.


1
Come lo faresti quando premi il tasto mentre sei, diciamo, in tty1?
John S Gruber,

@john: legalo. green7 lo ha già spiegato.
Rinzwind,

5

EDIT: sciocco me! Basta guardare nel file /etc/console-setup/remap.inc

Troverai tutto ciò di cui hai bisogno in quel file. In ogni caso, le spiegazioni sono riportate di seguito.

Sfortunatamente, "bind" funzionerà solo con una sessione di shell.

Quello che devi fare è cambiare i mapping della console. Puoi farlo usando il programma "loadkeys" (man loadkeys). Per prima cosa, scarica le mappature correnti per vedere come dovrebbe essere il formato del file:

dumpkeys > default_keys.txt

Nota che devi farlo da una console di testo e non da X, quindi premi prima Ctrl-Alt-F1 per passare a uno!

Ecco una riga di esempio da quel file:

alt keycode  59 = Console_1

Ciò significa che il tasto che genera il codice 59, premuto con il modificatore "alt" (definito altrove in quel file) genererà un evento "Console_1" - passando alla console virtuale 1.

Come scoprire quale chiave genera quale codice? Utilizzare il programma showkey per questo. Avvio il programma e premo "F1":

komp $ showkey
keycode  59 press
keycode  59 release

L'unico modo per uscire da questo programma è chiudere gli occhi e contemplare la natura dell'Open Source per dieci secondi. O semplicemente astenersi dal toccare la tastiera per dieci secondi, anche quello funziona. Utilizzare questo metodo per scoprire quale riga nel file keymap è necessario modificare i mapping dei tasti.

Supponiamo che tu voglia passare alla console 1 usando "ctrl 1". Scoprirai che il codice chiave per 1 è 2. Salvare la seguente riga in un file chiamato "myownkeys.txt":

control keycode 2 = Console_1

Passa a una console di testo (se non l'hai ancora fatto) ed esegui

sudo loadkeys myownkeys.txt

Presto, Ctrl-1 dovrebbe spostarti ora alla console 1. Aggiungi più righe ai tuoi file per le tue scorciatoie. Se vuoi renderlo permanente, puoi [EDIT] modificare il file /etc/console-setup/remap.inc

A proposito, oltre a Console_n hai anche "Decr_console" e "Incr_Console" - passa rispettivamente alla console a sinistra e alla console a destra. Di default sono legati ad alt-sinistra e alt-destra.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.