Como desativar a alternância Alt-Arrow de consoles virtuais?

37

O seguinte acontece em diferentes Linuces:

Quando estou em um console virtual, mantenha Altpressionado ou pressione ou , o ciclo ttys virtual. Isso é realmente irritante, pois estou usando casca de peixe, que também usa essa combinação de teclas. Eu poderia remapear os atalhos do peixe, mas não quero. Em vez disso, quero desativar a função linux ou remapear.

Como posso desativar ou alterar o combo tty-cycling-key-combo?

Max Ried
fonte
2
Uma resposta que pode ajudá-lo: superuser.com/questions/290115/...
Didi Kohen

Respostas:

14

Você pode usar o loadkeyscomando para remapear as chaves no console do Linux. As linhas a seguir definem as ligações de teclas para alternar entre os consoles (no teclado de um PC):

alt keycode 105 = Decr_Console
alt keycode 106 = Incr_Console

Carregue seu próprio arquivo de mapa de teclas que substitui essas ligações por uma sequência de escape que o fish reconheça. Para fazer com que uma chave envie uma sequência de escape, é necessário vinculá-la a um nome de chave do formulário e definir uma sequência de caracteres para .FNUMBERFNUMBER

alt keycode 105 = F105
alt keycode 106 = F106
string F105 = "\033\033[D"
string F105 = "\033\033[C"

Distribuições diferentes (e às vezes pacotes diferentes para suporte ao console) armazenam o mapa de teclas no momento da inicialização do sistema em diferentes locais abaixo /etc. Procure um arquivo chamado *.kmapou *.kmap.gzou *.mapou *.map.gzsob /etcou consultar o manual da sua distribuição. Algumas distribuições armazenam o nome do mapa de teclas /etce colocam o mapa de teclas real em outro lugar; procure uma configuração relacionada ao mapa de teclas em /etc/sysconfigou outro diretório de configuração.

Você pode escrever seu próprio mapa de teclas e usá-lo include "/path/to/foo.map"para fazer referência ao mapa de teclas do sistema ou organizar para carregar seu próprio mapa de teclas contendo apenas as configurações que deseja alterar durante o processo de inicialização.

Gilles 'SO- parar de ser mau'
fonte
Tem certeza da .kmapextensão? Não consegui encontrar nenhum arquivo no Fedora 20, mas por outro lado encontrei /lib/kbd/keymaps/legacy/i386/qwerty/us.map.gz.
Cristian Ciupitu
@CristianCiupitu Meu mal, eu deveria ter mencionado outras maneiras de fazer isso. Eu acho que no Fedora existe uma configuração em algum lugar /etc/sysconfigque determina o nome do arquivo keymap a ser carregado na inicialização.
Gilles 'SO- stop be evil'
Devo obter minha configuração dumpkeys, salvá-la, alterá-la e alterá-la /etc/sysconfig? Isso tornará persistente?
Max Ried
@Gilles, talvez as páginas de manual do systemd-vconsole-setup.service e do [vconsole.conf] ( freedesktop.org/software/systemd/man/vconsole.conf.html ) possam esclarecer isso.
Cristian Ciupitu
@ MaxRied Eu recomendo manter os dois separados, será mais fácil de manter. Altere a referência /etc/sysconfigpara um arquivo que contém uma includediretiva para o mapa de teclas padrão.
Gilles 'SO- stop be evil'
44

Aqui está uma correção única:

sudo sh -c 'dumpkeys |grep -v cr_Console |loadkeys'
Tobu
fonte
Eu sugeriria adicionar isso como um comando em 'aplicativos de inicialização'.
Samy Bencherif
20

Refatorei a resposta de Tobu para mudar apenas o absolutamente necessário:

sudo sh -c 'dumpkeys -k|grep -v Incr_Console|grep -v Decr_Console|grep -v Last_Console|loadkeys'

NB: Como dito, essa é uma correção única e provavelmente desaparecerá após uma reinicialização.

Gunar Gessner
fonte
1
Duas correções: 1. Despejar apenas as ligações de teclas, para evitar um erro de sintaxe nas teclas de carregamento; 2. Também se livrar do Last_Console (Alt + Tab): sudo sh -c 'dumpkeys | grep -v Incr_Console | grep -v Decr_Console | loadkeys' Muito obrigado por isso!
Reuben Thomas
Além do meu comentário anterior, descobri que a luz do Caps Lock ainda estava acendendo e apagando (mesmo que o Caps Lock ainda estivesse mapeado para Control no meu sistema). Para corrigir isso, filtrar a linha que contém Caps_Lock não funciona, pois é o único mapeamento para o código-chave relevante, portanto, não é substituído quando a lista filtrada de mapeamentos é recarregada. No final, a solução mais simples foi despejar um mapa de chaves "conhecido" e carregá-lo explicitamente.
Reuben Thomas
14

Às vezes, tive o problema com o Ubuntu 18.04:

sudo kbd_mode -s

Fiz o trabalho. (pelo menos temporariamente)

Você pode encontrar um longo relatório de erro aqui na barra de ativação .

Bobina
fonte
Como é que isso funciona? Estou hesitante em experimentar porque a página de manual diz "Aviso: alterar o modo do teclado, que não seja entre ASCII e Unicode, provavelmente tornará seu teclado inutilizável".
Nshiff 9/09/18
1
Olá, eu adicionei um link.
bobina
Obrigado! Isso funcionou. Tentei clicar em "Sim, isso me afeta" em bugs.launchpad.net/ubuntu/+source/console-setup/+bug/520546, mas continuo recebendo um erro de tempo limite. Alguma idéia de como consertar isso?
6005
Deve ser temporariamente, suponho, ou você deve preencher um relatório de erro para o próprio sistema de relatório de erros! : p
COil