Cambiar acceso directo TTY predeterminado

8

Me gustaría cambiar el acceso directo predeterminado para cambiar de ida y vuelta a tty. Por defecto es ctrl + alt + F #. Intenté hacer un acceso directo personalizado usando la configuración del teclado de Ubuntu, pero solo funcionó mientras usaba la interfaz gráfica cuando vuelvo a tty, no funciona. Por lo tanto, necesito descubrir cómo cambiar el enlace predeterminado del atajo ctrl + alt + F # para hacer que una sola tecla cambie entre dos TTY.

era878
fuente
2
¿Estás seguro de que esto no es un duplicado de askubuntu.com/questions/77982/…
Jacob Tomlinson
¿Qué quiere decir con "alternar una sola tecla de un lado a otro entre dos TTY?"
ish
@jacob un poco, pero tal vez no exactamente :)
Rinzwind
Ah sí, ya veo, esto está solicitando una sola tecla que alterna en lugar de un conjunto diferente de teclas.
Jacob Tomlinson

Respuestas:

10

Puede usar bindpara vincular una tecla a alguna función. Aquí esta lo que hice:

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

Aquí newScript.shestá el archivo que cambia el tty y \easignifica que cada vez que Alt+Ase presiona, el script se ejecuta.

Los contenidos de newScript.shson:

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

Tenga en cuenta que si desea almacenar las asociaciones de teclas de forma permanente, puede almacenarlas en su archivo `~ / .inputrc '. Para obtener más información, puede visitar este enlace: http://www.techrepublic.com/article/find-and-bind-key-sequences-in-bash/5683375

Actualización: puede almacenar la bindlínea en su ~/.bashrcarchivo para no tener que volver a hacerlo.

verde
fuente
Tenga en cuenta que esto no funcionará si no ha iniciado sesión o si no está ejecutando bash. La solución que usa remap.inc (vea mi respuesta a continuación) funcionará si está conectado o no.
Enero
7

Hay un comando para eso chvt.

chvtEl comando significa CHange Virtual Terminal. Se necesita una opción, que es un número que le indica al terminal virtual al que debe cambiar.

Por ejemplo, si ha iniciado sesión en la primera terminal virtual y desea cambiar a la 7ª, donde el servidor x generalmente muestra la GUI, ejecute chvtlo siguiente:

chvt 7

Y para volver a la primera terminal virtual, escriba:

chvt 1

Entonces, todo lo que necesita hacer es agregar ese comando a 7 accesos directos y puede cambiar.

Rinzwind
fuente
1
¿Cómo haría eso cuando presiona la tecla mientras está en, digamos, tty1?
John S Gruber
@ John: atarlo. green7 ya lo explicó.
Rinzwind
5

EDITAR: tonto de mí! Simplemente mire el archivo /etc/console-setup/remap.inc

Encontrará todo lo que necesita en ese archivo. En cualquier caso, las explicaciones se dan a continuación.

Desafortunadamente, "bind" solo funcionará con una sesión de shell.

Lo que debe hacer es cambiar las asignaciones de la consola. Puede hacerlo utilizando el programa "loadkeys" (man loadkeys). Primero, volcar las asignaciones actuales para ver cómo debería verse el formato del archivo:

dumpkeys > default_keys.txt

Tenga en cuenta que debe hacerlo desde una consola de texto y no desde X, así que presione Ctrl-Alt-F1 primero para cambiar a una.

Aquí hay una línea de ejemplo de ese archivo:

alt keycode  59 = Console_1

Eso significa que la tecla que genera el código 59, presionada con el modificador "alt" (definido en otro lugar en ese archivo) generará un evento "Console_1" - cambiando a la consola virtual 1.

¿Cómo averiguar qué clave genera qué código? Use el programa showkey para eso. Comienzo el programa y presiono "F1":

komp $ showkey
keycode  59 press
keycode  59 release

La única forma de salir de este programa es cerrar los ojos y contemplar la naturaleza de Open Source durante diez segundos. O simplemente abstenerse de tocar el teclado durante diez segundos, eso también funciona. Use este método para averiguar qué línea del archivo de mapa de teclas necesitaría para cambiar las asignaciones de teclas.

Digamos que quieres cambiar a la consola 1 usando "ctrl 1". Descubrirá que el código clave para 1 es 2. Guarde la siguiente línea en un archivo llamado "myownkeys.txt":

control keycode 2 = Console_1

Cambie a una consola de texto (si aún no lo ha hecho) y ejecute

sudo loadkeys myownkeys.txt

Presto, Ctrl-1 debería moverlo ahora a la consola 1. Agregue más líneas a sus archivos para sus accesos directos. Si desea que sea permanente, puede [EDITAR] modificar el archivo /etc/console-setup/remap.inc

Por cierto, aparte de Console_n también tienes "Decr_console" e "Incr_Console": cambia a la consola a la izquierda y a la consola a la derecha, respectivamente. Por defecto están vinculados a alt-left y alt-right.

enero
fuente