Resposta curta
Para responder diretamente à pergunta:
Onde está o arquivo de configuração para as teclas de atalho do terminal?
No meu caso (Ubuntu 16.04 com bash), a resposta de Serge é útil. (Apesar de eu não ter certeza de que está completo em cobrir todas as ligações de teclas que podem entrar em conflito, é por isso que estou escrevendo esta resposta mais longa.) O Bash configura atalhos de teclado nesses arquivos:
- ligações de teclas padrão:
/etc/inputrc
- combinações de teclas personalizadas:
~/.inputrc
Resposta longa
Nesta seção, gostaria de ser um pouco mais abrangente. Enquanto o bash e readline afetam as associações de teclas, eles são outros processos envolvidos. Por exemplo, como ALT-2
é ligado a TTY # 2?
Visão geral
Como uma visão geral, aqui estão as partes envolvidas na minha máquina Ubuntu Server 16.04. Eu começo com systemd , o sistema init atual do Ubuntu.
-
systemd
começasystemd_logind
. -
systemd_logind
inicia o TTY1 comlogin
. -
login
começabash
. -
bash
usa a bibliotecareadline
. -
bash
runs~/.bashrc
, que finalmente iniciabyobu
-
byobu
, no meu sistema, usatmux
como um back-end
(Nota: systemd
é usado no Ubuntu 15.04 e 16.04. Upstart foi o sistema init para o Ubuntu 6.10 a 15.10, de acordo para link .)
Na prática, os seguintes componentes capturam alguns pressionamentos de tecla:
-
systemd-logind
(trapsALT-1
,ALT-2
etc). -
login
-
bash
usando a bibliotecareadline
-
tmux
-
byobu
- o TTY (TODO: não sei se isso faz parte de
systemd
oulogin
?)
systemd-logind
Para o Ubuntu 16.04, systemd-logind é onde o login do usuário é iniciado. De acordo com a página do manual do Ubuntu para systemd-logind .
systemd-logind é um serviço do sistema que gerencia logins de usuários. É responsável por:
- Acompanhar usuários e sessões, seus processos e seu estado ocioso
- Fornecendo acesso baseado em PolicyKit para usuários a operações como desligamento do sistema ou suspensão
- Implementando uma lógica de desligamento / inibição de sono para aplicativos
- Manuseio de chaves de hardware de energia / suspensão
- Gerenciamento de vários lugares
- Gerenciamento do switch de sessão
- Gerenciamento de acesso a dispositivos para usuários
- Geração automática de logins de texto (gettys) na ativação do console virtual e no gerenciamento de diretório de tempo de execução do usuário
Veja também a página man do logind.conf . Eu não vi nenhuma menção lá de atalhos no teclado.
Configuração de TTY / teclado
Links relacionados sobre configuração de TTY / teclado:
Ferramentas para layouts de TTY / teclado:
bash (com a biblioteca readline)
A referência de bash do gnu.org tem uma boa documentação sobre o bash e funções readline.
Esses arquivos de configuração afetam as ligações de chave:
- ligações de teclas padrão:
/etc/inputrc
- combinações de teclas personalizadas:
~/.inputrc
tmux
As associações de chaves do tmux são descritas aqui: link
Um arquivo de configuração específico do usuário deve estar localizado em ~ / .tmux.conf, enquanto um arquivo de configuração global deve estar localizado em /etc/tmux.conf.
byobu
O Byobu tem atalhos de teclado padrão que podem ser definidos pelo usuário em /usr/share/byobu/keybindings/
.
Trabalho em andamento
Nota: esta resposta é um trabalho em andamento. Pode haver erros. (Eu acho mais fácil afirmar o que parece ser verdade com base na minha leitura e raciocínio, e corrigi-lo se estiver errado.) Vou atualizar isso e remover este aviso quando estiver mais perto da conclusão.