Alterar atalho TTY padrão

8

Eu gostaria de mudar o atalho padrão para alternar para o tty. Por padrão, é ctrl + alt + F #. Eu tentei fazer um atalho personalizado usando as configurações de teclado do Ubuntu, mas ele só funcionou ao usar a interface gráfica quando eu voltar para a tty não funciona. Então eu preciso descobrir como alterar a ligação padrão do atalho ctrl + alt + F # para fazer uma única tecla alternar entre dois TTYs.

    
por era878 06.06.2012 / 08:50

3 respostas

9

Você pode usar bind para ligar uma chave a alguma função. Aqui está o que eu fiz:

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

Aqui newScript.sh é o arquivo que altera o tty e \ea significa que sempre que Alt+A é pressionado, o script é executado.

O conteúdo de newScript.sh é:

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

Observe que, se você quiser armazenar as associações de teclas permanentemente, poderá armazená-las em seu arquivo '~ / .inputrc'. Para obter mais informações, acesse este link: link

Atualização: você pode armazenar a linha bind no seu arquivo ~/.bashrc para não precisar fazer novamente.

    
por green 15.08.2012 / 13:43
7

Existe um comando para esse chvt .

O comando

chvt significa Terminal Virtual do CHange. É necessária uma opção, que é um número que informa ao terminal virtual para alternar para.

Por exemplo, se você estiver logado no primeiro terminal virtual e quiser mudar para o sétimo, onde o xserver geralmente exibe a GUI, execute chvt da seguinte forma:

chvt 7

E para retornar ao primeiro terminal virtual, digite:

chvt 1

Então, tudo o que você precisa fazer é adicionar esse comando a 7 atalhos e alternar.

    
por Rinzwind 15.08.2012 / 13:16
5

EDIT: bobagem comigo! Basta olhar para o arquivo /etc/console-setup/remap.inc

Você encontrará tudo o que precisa nesse arquivo. Em qualquer caso, as explicações são dadas abaixo.

Infelizmente, "bind" só funcionará com uma sessão de shell.

O que você precisa fazer é alterar os mapeamentos do console. Você pode fazer isso usando o programa "loadkeys" (man loadkeys). Primeiro, copie os mapeamentos atuais para ver como deve ser o formato do arquivo:

dumpkeys > default_keys.txt

Note que você precisa fazer isso a partir de um console de texto e não do X, então pressione Ctrl-Alt-F1 primeiro para mudar para um!

Aqui está uma linha de exemplo desse arquivo:

alt keycode  59 = Console_1

Isso significa que a chave que gera o código 59, pressionada com o modificador "alt" (definido em outro lugar nesse arquivo) gerará um evento "Console_1" - alternando para o console virtual 1.

Como descobrir qual chave gera qual código? Use o programa showkey para isso. Eu começo o programa e aperta "F1":

komp $ showkey
keycode  59 press
keycode  59 release

A única maneira de sair deste programa é fechar os olhos e contemplar a natureza do código aberto por dez segundos. Ou apenas para evitar tocar no teclado por dez segundos, isso também funciona. Use este método para descobrir qual linha no arquivo de mapa de chaves você precisaria alterar os mapeamentos de teclas.

Digamos que você queira mudar para o console 1 usando "ctrl 1". Você descobrirá que o código-chave para 1 é 2. Salve a seguinte linha em um arquivo chamado "myownkeys.txt":

control keycode 2 = Console_1

Mude para uma consola de texto (se ainda não o fez) e execute

sudo loadkeys myownkeys.txt

Presto, Ctrl-1 deve movê-lo agora para o console 1. Adicione mais linhas aos seus arquivos para os seus atalhos. Se você quiser torná-lo permanente, você pode [EDITAR] modificar o arquivo /etc/console-setup/remap.inc

A propósito, além do Console_n, você também tem "Decr_console" e "Incr_Console" - alterna para o console à esquerda e console à direita, respectivamente. Por padrão, eles estão ligados a alt-left e alt-right.

    
por January 17.08.2012 / 13:46