Modifier le raccourci TTY par défaut

8

Je voudrais changer le raccourci par défaut pour basculer d'avant en arrière sur le tty. Par défaut, c'est ctrl + alt + F #. J'ai essayé de créer un raccourci personnalisé en utilisant les paramètres du clavier d'Ubuntu, mais cela n'a fonctionné qu'en utilisant l'interface graphique lorsque je reviens à tty, cela ne fonctionne pas. J'ai donc besoin de comprendre comment modifier la liaison par défaut du raccourci ctrl + alt + F # pour faire basculer une seule touche entre deux ATS.

era878
la source
2
Êtes-vous sûr que ce n'est pas un doublon de askubuntu.com/questions/77982/…
Jacob Tomlinson
Que voulez-vous dire par "une seule touche pour basculer entre deux ATS?"
ish
@jacob un peu mais peut-être pas exactement :)
Rinzwind
Ah oui je vois, cela demande une seule clé qui bascule plutôt qu'un ensemble différent de clés.
Jacob Tomlinson

Réponses:

10

Vous pouvez utiliser bindpour lier une clé à une fonction. Voici ce que j'ai fait:

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

Voici newScript.shle fichier qui change le tty et \easignifie qu'à chaque fois que l' Alt+Aon appuie sur, le script s'exécute.

Les contenus de newScript.shsont:

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

Notez que si vous souhaitez stocker les raccourcis clavier de manière permanente, vous pouvez les stocker dans votre fichier `~ / .inputrc '. Pour plus d'informations, vous pouvez visiter ce lien: http://www.techrepublic.com/article/find-and-bind-key-sequences-in-bash/5683375

Mise à jour: vous pouvez stocker la bindligne dans votre ~/.bashrcfichier afin de ne pas avoir à recommencer.

vert
la source
Notez que cela ne fonctionnera pas si vous n'êtes pas connecté ou si vous n'exécutez pas bash. La solution utilisant remap.inc (voir ma réponse ci-dessous) fonctionnera que vous soyez connecté ou non.
Janvier
7

Il y a une commande pour ça chvt.

chvtcommande signifie CHange Virtual Terminal. Il prend une option qui est un nombre qui lui indique le terminal virtuel vers lequel basculer.

Par exemple, si vous êtes connecté au premier terminal virtuel et que vous souhaitez basculer vers le 7ème où xserver affiche généralement l'interface graphique, exécutez-la chvtcomme suit:

chvt 7

Et pour revenir au 1er terminal virtuel, tapez:

chvt 1

Donc, tout ce que vous devez faire est d'ajouter cette commande à 7 raccourcis et vous pouvez basculer.

Rinzwind
la source
1
Comment feriez-vous cela lorsque vous appuyez sur la touche pendant, disons, tty1?
John S Gruber
@john: liez-le. green7 l'a déjà expliqué.
Rinzwind
5

EDIT: idiot moi! Regardez simplement le fichier /etc/console-setup/remap.inc

Vous trouverez tout ce dont vous avez besoin dans ce fichier. Dans tous les cas, des explications sont données ci-dessous.

Malheureusement, "bind" ne fonctionnera qu'avec une session shell.

Ce que vous devez faire est de modifier les mappages de console. Vous pouvez le faire en utilisant le programme "loadkeys" (man loadkeys). Tout d'abord, videz les mappages actuels pour voir à quoi devrait ressembler le format du fichier:

dumpkeys > default_keys.txt

Notez que vous devez le faire à partir d'une console de texte et non pas de X, alors appuyez d'abord sur Ctrl-Alt-F1 pour passer à un!

Voici un exemple de ligne de ce fichier:

alt keycode  59 = Console_1

Cela signifie que la touche qui génère le code 59, appuyée avec le modificateur "alt" (défini ailleurs dans ce fichier) générera un événement "Console_1" - basculant vers la console virtuelle 1.

Comment savoir quelle clé génère quel code? Utilisez le programme showkey pour cela. Je lance le programme et appuie sur "F1":

komp $ showkey
keycode  59 press
keycode  59 release

La seule façon de quitter ce programme est de fermer les yeux et de contempler la nature de l'Open Source pendant dix secondes. Ou tout simplement de ne pas toucher le clavier pendant dix secondes, cela fonctionne aussi. Utilisez cette méthode pour déterminer la ligne du fichier de mappage de clés dont vous auriez besoin pour modifier les mappages de clés.

Dites, vous voulez passer à la console 1 en utilisant "ctrl 1". Vous découvrirez que le code clé pour 1 est 2. Enregistrez la ligne suivante dans un fichier appelé "myownkeys.txt":

control keycode 2 = Console_1

Basculez vers une console texte (si vous ne l'avez pas encore fait) et exécutez

sudo loadkeys myownkeys.txt

Presto, Ctrl-1 devrait vous déplacer maintenant vers la console 1. Ajoutez plus de lignes à vos fichiers pour vos raccourcis. Si vous souhaitez le rendre permanent, vous pouvez [EDIT] modifier le fichier /etc/console-setup/remap.inc

Soit dit en passant, à part Console_n, vous avez également "Decr_console" et "Incr_Console" - basculez respectivement vers la console à gauche et la console à droite. Par défaut, ils sont liés à alt-gauche et alt-droite.

janvier
la source