Reinicializando / desativando CTRL + ALT + F # Comutação de terminal / console virtual

21

Eu tenho um aplicativo que liga CTRL+ ALT+ F7, mas minha máquina linux parece capturar o pressionamento de tecla.

Existe uma maneira de reativar / desativar essa chave? Uma recompilação do kernel é uma resposta aceitável.

As distribuições em questão são o Fedora 16 e o ​​Ubuntu 11.10.

Jes
fonte
Não tenho nenhum conselho específico, mas acho que, como CTRL + ALT + Fn está vinculado apenas ao sistema X-Windows, que o kernel não estará relacionado a ele de forma alguma e que você provavelmente terá mais sorte tentando ajustar a configuração do X11.
N
@njsg Você pode usar as mesmas teclas para alternar do X11 para o vt e voltar (também entre os vt) - para que eles sejam vinculados da mesma forma em um vt.
Volker Siegel

Respostas:

10

Coloque isso no seu /etc/X11/xorg.confarquivo para desativar a troca de VT com Ctrl+ Alt+ Fn:

Section "ServerFlags"
    Option "DontVTSwitch" "on"
EndSection

Você também precisará do seguinte para fazer com que os eventos sejam transmitidos aos clientes conectados à exibição:

Section "InputClass"
    Identifier "keyboard defaults"
    MatchIsKeyboard "on"
    Option "XKbOptions" "srvrkeys:none"
EndSection

(Esse último bit não foi testado, consulte sua fonte .)

Sam Morris
fonte
Isso não encaminha a combinação para a janela, o X ainda a captura.
Jes
2
Após alguns meses de execução do Windows, finalmente testei isso no Lubuntu 12.04, onde a janela do IntelliJ IDEA ainda não capta o pressionamento de tecla.
Jes
2
Usar as duas configurações foi necessário para mim e funcionou para mim. (em centos). ctrl-alt-f7 agora está mostrando os usos em linha no intellij :).
Rob Dawson
3
Se você estiver usando o Intellij e quiser usar CTL+ALT+F7"Mostrar uso", no Lubuntu 15.04, o atalho padrão é o acutally CTL+ALT+7. Você precisaria alterá-lo novamente para CTL+ALT+F7se desejar manter a consistência com outros sistemas operacionais.
Xiao Peng - ZenUML.com
1
Apenas para confirmar isso também funciona no FreeBSD 11.
GSL
15

A seguinte chamada do setxkbmapcomando X11 desativa a alternância de console / terminal virtual Ctrl-Alt-Fn:

setxkbmap -option srvrkeys:none

Para retornar ao comportamento anterior das teclas ctrl-alt-Fn e também remover todas as outras opções, como caps:ctrl_modifier:

setxkbmap -option ''

Para imprimir as configurações atuais, invoque setxkbmap -print.

Para chamar por usuário, coloque o comando no arquivo ~ / .xinitrc.

Para chamar quando uma Xsession é iniciada, crie um arquivo em

/etc/X11/Xsession.d

tal como

/etc/X11/Xsession.d/65srvrkeys-none

contendo o setxkbmapcomando acima e torne-o executável com sudo chmod +x /etc/X11/Xsession.d/65srvrkeys-none.

Para mais tipo de informação man setxkbmapem seu shell pronta ou consulte a página do homem Xorg setxkbmap .

Testei isso com o KDE no Ubuntu 14.04 LTS (Trusty). Essas configurações também estão disponíveis em Configurações do sistema> Dispositivos de entrada> Teclado> Avançado. Se você alterar srvrkeysas configurações da GUI, ele aparecerá imediatamente setxkbmape vice-versa.

Prefiro modificar o sistema X window através das interfaces de linha de comando X11. Se isso não funcionar, eu tento o ambiente da área de trabalho. Como último recurso, eu modificaria os arquivos de configuração do sistema. As implementações e os formatos de arquivo mudam, mas as interfaces de linha de comando vivem quase sempre na tradição Unix / Linux.

RobertL
fonte
Obrigado, @RobertL. Minha esperança era alta, mas não, isso não parece ter efeito nas minhas instalações Debian jessie e Ubuntu 14.04. Ctrl-Alt-F7 e Ctrl-Alt-F8 ainda alternam entre e para um terminal virtual. Também não tenho essa entrada de menu Configurações do Sistema> Dispositivos de Entrada> ... Talvez isso seja uma coisa do KDE? Estou usando o GNOME ou qualquer que seja o padrão do Ubuntu.
MLDs
Eu tentei de várias maneiras e essa foi a única que funciona no Lubuntu 16.04, funciona quando estou logado. Você sabe como fazê-lo funcionar na tela greeter do lxdm? (no ubuntu com lightdm funciona).
precisa saber é o seguinte
1
Funciona no Linux Mint 18. Obrigado.
Hoang Tran
1
Funciona para mim no Debian 8 (Jessie). NOTA: Apenas testei a linha de comando setxkbmap -option srvrkeys:none. Coloquei a entrada em um arquivo /etc/X11/Xsession.d/65srvrkeys-none. E, embora ainda não tenha desconectado e logado, presumo que funcionará bem.
MikeyE
1
Funcionou bem para mim no Debian Buster; como @MikeyE Ainda não terminei a sessão (e provavelmente não o farei daqui a algumas semanas / meses ;-) mas a setxkbmapabordagem fez o truque. Muito apreciado!
Por Lundberg
1

Você pode desativar isso acessando Configurações do sistema -> layout do teclado -> opção. em diversas opções de compatibilidade, marque "teclas especiais Ctrl+ Alt+ <key>manipuladas no servidor".

Eu verifiquei isso e o Ubuntu não pega nenhuma combinação de Ctrl+ Alt+ .... mas ainda assim a idéia não pega Ctrl+ Alt+ F7e o problema ainda sai !!!.

rezamda
fonte
Você está certo que o Ubuntu não entende, mas eu suspeito que o servidor X sim.
Jes
3
Yay! Descobriu que, por padrão no Ubuntu, o IDEA lida com Ctrl + Alt + 7 em vez de F7 !
# O-
0

No Ubuntu 18.04, você precisa criar o seguinte arquivo:

/usr/share/X11/xorg.conf.d/65-setxkbmap

com este conteúdo:

Section "ServerFlags"
    Option "DontVTSwitch" "on"
EndSection

Section "InputClass"
    Identifier "keyboard defaults"
    MatchIsKeyboard "on"
    Option "XKbOptions" "srvrkeys:none"
EndSection

depois reinicie o seu sistema.

vort2020
fonte
Exceto pelo nome do arquivo, isso foi sugerido na resposta aceita.
RalfFriedl