Keyboard shortcuts (Português)

From ArchWiki
Status de tradução: Esse artigo é uma tradução de Keyboard shortcuts. Data da última tradução: 2020-07-09. Você pode ajudar a sincronizar a tradução, se houver alterações na versão em inglês.

Este artigo visa fornecer uma lista (não tão popular) dos atalhos de teclado padrão e também fornece informações sobre sua personalização.

Atalhos padrão

Kernel (SysRq)

Existem certos atalhos de baixo nível implementados no kernel por meio da tecla sysrq que podem ser usados para depuração e recuperação de um sistema instável ou travado. Sempre que possível, recomenda-se que estes atalhos sejam utilizados ao invés de fazer um desligamento forçado via hardware (segurando o botão de energia até desligar completamente o sistema).

Ativação

systemd possui a máscara de bits de permissões sysrq definida como 0x10 por padrão, que não permite reinicialização ou sinalização de processo, entre outras coisas. Para permitir o uso completo da tecla sysrq no seu sistema, adicione kernel.sysrq=1 à sua configuração de sysctl. Valores maiores que 1 podem ser usados para ativar seletivamente funções sysrq; veja a documentação do Linux Kernel para detalhes. Se desejar tê-la ativada já durante o inicialização, adicione a configuração apropriada para a configuração do sysctl. Se quiser ter certeza de que elas serão ativadas mesmo antes das partições serem montadas e no initrd, então adicione sysrq_always_enabled=1 nos parâmetros do kernel.

Observe que alterar a configuração por esses métodos fará com que as alterações persistam durante as reinicializações. Se você quiser tentar alterar as configurações do sysrq apenas para sua sessão atual, pode executar sysctl kernel.sysrq=1 ou echo "1" > /proc/sys/kernel/sysrq

Existem alguns riscos óbvios de segurança envolvidos na ativação completa da tecla sysrq. Além de forçar reinicializações e similares, ela pode ser usada para despejar o conteúdo dos registros da CPU, o que teoricamente poderia revelar informações confidenciais. Como usá-la requer acesso físico ao sistema (a menos que você saia do seu caminho), a maioria dos usuários de desktop provavelmente considerará o nível de risco aceitável. Dito isso, certifique-se de entender completamente as implicações da ativação e a dinâmica do contexto maior em que seu sistema está operando antes de ativar o sysrq completamente.

Reinicialização

Uma linguagem comum para decorá-las é, do inglês, "Reboot Even If System Utterly Broken" (ou simplesmente "REISUB"), que quer dizer, a grosso modo, "reinicie mesmo se o sistema estiver completamente quebrado". Outra maneira de se lembrar da sequência de teclas é pensar na palavra, "BUSIER" lida de trás para frente (também do inglês, que quer dizer algo como ocupado demais).

Nota: Esteja ciente de que o "REISUB" em si é apenas uma coisa mnemônica, não é nenhum tipo de recomendação geral da sequência de pressionamento de teclas para retomar o controle do sistema que não responde, você não deve pressionar cegamente nessa sequência a cada vez sem conhecer sua função real, conforme observado abaixo.
Atalho Descrição
Alt+SysRq+r Unraw Toma o controle do teclado do servidor X, e assume.
Alt+SysRq+e Terminate Envia o sinal SIGTERM a todos os processos, permitindo encerrá-los de maneira não arbitrária ou forçada.
Alt+SysRq+i Kill Envia o sinal SIGKILL para todos os processos, forçando-os a se encerrarem imediatamente.
Alt+SysRq+s Sync Grava os dados na unidade de disco rígido.
Alt+SysRq+u Unmount Desmonta e remonta todos os sistemas de arquivos em modo somente leitura.
Alt+SysRq+b Reboot Reinicia o sistema.

Matando um processo que esteja consumindo memória excessivamente

Alt+SysRq+f pode ser usado para chamar o matador OOM (out-of-memory) sem causar kernel panic se nada puder ser eliminado. O matador OOM usa um conjunto de heurísticas para escolher o processo relativamente não vital que está usando mais memória e matá-lo. Isso é muito útil para interromper um processo que bloqueia seu sistema, causando surtos excessivos, como um script de navegador descontrolado, e pode aliviar a necessidade de uma reinicialização em muitos casos. Observe que o matador OOM pode ter como alvo uma ampla variedade de processos, apesar de suas heurísticas bem-intencionadas e pode ser um pouco imprevisível, portanto, tenha cuidado ao chamá-lo casualmente.

Solução de problemas

  • Se estiver usando um gerenciador de exibição e após Alt+SysRq+e você for levado à tela de login (ou à sua área de trabalho caso o login automático estiver ativado), então provavelmente a diretiva Restart=always no arquivo service é a responsável. Se necessário, edite a unit, embora isto não deve evitar que a sequência "REISUB" funcione.
  • Caso todas as combinações acima funcionem, exceto Alt+SysRq+b, tente usar a tecla Alt do lado oposto do teclado.
  • Em laptops que usam a tecla Fn para diferenciar a função SysRq de PrtScrn, pode não ser necessário usar a tecla Fn (isto é, simplesmente pressionar Alt+PrtSc+letra pode ser o suficiente).
  • Em laptops Lenovo, SysRq é frequentemente configurada como Fn+S. Para usá-la, pressione e segure Alt, então pressione Fn+s, solte Fn e s e, ainda segurando Alt use a combinação de teclas acima.
  • Pode ser necessário pressionar Ctrl junto de Alt. Então, por exemplo, o atalho completo pode ser Ctrl+Alt+SysRq+b.

Veja Wikipedia:Magic SysRq key para mais detalhes.

Console virtual

Veja Console do Linux#Atalhos de teclado.

Xorg e Wayland

Teclas de atalho Descrição Notas
Ctrl+Alt+F1, F2, F3, ... Alterna para o n-ésimo console virtual Se não funcionar, tente Ctrl+Fn+Alt+F… com as demais teclas de função.
Shift+Insert
Mouse Button 2
Cola texto do PRIMARY buffer Por padrão, o Qt mapeia Shift+Insert para a área de transferência ao invés do buffer PRIMARY (veja exemplo [1]) enquanto Ctrl+Shift+Insert é mapeado para o buffer PRIMARY.

Personalização

Readline

Readline é uma biblioteca comumente usada para edição de linha; e é usada, por exemplo pelo Bash, FTP, e muitos outros (veja detalhes do pacote readline, na coluna "Required By" da tabela, para mais exemplos). É semelhante ao estilo de edição do Emacs e do vi, que podem ser personalizados com sequências de escape. Combinações padrão de teclas estão listadas em sua documentação.

Zsh

Zsh utiliza ZLE para ligar atalhos a widgets, scripts e comandos.

Xorg

Veja Xorg/Keyboard configuration#Frequently used XKB options alguns atalhos comuns, que são desativados por padrão.

Em um ambiente gráfico, podemos querer executar um comando quando certa combinação de teclas é pressionada (isto é, um comando ligado a uma keysym). Existem várias maneiras de se fazer isso:

  • A maneira mais prática é usando ferramentas de baixo nível , como uma daemon acpid. Nem todas as teclas são suportadas, mas uma configuração de maneira bastante uniforme é possível para teclas, conexão com fontes de energia e até mesmo ao plugar/desplugar um conector de fone de ouvido. Também é difícil executar programas dentro de uma sessão do X corretamente.
  • A maneira universal é usando utilitários do Xorg (por exemplo, xbindkeys) e eventualmente as ferramentas de seu gerenciador de janelas ou ambiente de desktop.
  • A maneira mais rápida é através de programas de terceiros que façam tudo via interface gráfica, tais como a Central de Controle do GNOME.

sxhkd

Uma simplória daemon hotkey para o X com uma poderosa e compacta sintaxe de configuração. Veja sxhkd para detalhes.

actkbd

Da site do actkbd:

actkbdAUR (disponível no AUR) é uma simples daemon que interliga ações a eventos de teclado. É capaz de reconhecer combinações de tecla com suporte a eventos do tipo pressionar, repetir e soltar. Atualmente suporta somente a interface linux-2.6 evdev. Utiliza um arquivo de configuração em forma de planilha de texto que contém todas as vinculações de tecla.

Um modelo de configuração, bem como guia, estão disponíveis aqui.

xbindkeys

xbindkeys permite mapeamento avançado de teclas para ações independentemente do ambiente de desktop (Desktop Environment).

Dica: Se você achar xbindkeys difícil de usar, experimente o gerenciador gráfico xbindkeys_config-gtk2AUR disponível no AUR.

Ambientes de desktop

Gerenciadores de janela

Associação de teclas para X-selection-paste

The factual accuracy of this article or section is disputed.

Reason: Shift+Insert cola o buffer PRIMARY. (Discuss in talk:keyboard shortcuts)

This article or section needs expansion.

Reason: Por que o atraso de 100ms? (Discuss in talk:keyboard shortcuts)

Usuários que preferem usar mais o teclado ao invés do mouse podem se beneficiar de um atalho de teclado para operação de colagem que até então é feita através do botão intermediário do mouse. Isto é especialmente útil em um ambiente baseado em utilização do teclado. Um exemplo de como seria este fluxo de trabalho vem a seguir:

  1. No Firefox, selecione (com o mouse) um texto que deseja pesquisar no google.
  2. Pressione Ctrl+k para abrir o campo de busca.
  3. Pressione F9 para colar o texto, ao invés de ter que mover o ponteiro do mouse para dentro do campo de busca e usar o botão intermediário do mouse para colá-lo.
Nota: Shift+Insert tem uma funcionalidade parecida, mas diferente. Veja #Xorg: Shift+Insert insere o buffer da área de transferência, e não o x-selection-buffer. Em algumas aplicações, ambos os buffers são espelhados.

O método sugerido aqui usa três pacotes::

  • xsel para dar acesso ao conteúdo do x-selection-buffer.
  • Xbindkeys para vincular pressionamento de teclas a uma ação.
  • xvkbdAUR para passar a string do buffer para a aplicação ao emular uma entrada de teclado.

Este exemplo vincula uma operação do x-selection-paste à tecla F9:

.xbindkeysrc
"xvkbd -no-jump-pointer -xsendevent -text "\D1`xsel`" 2>/dev/null"
    F9

O código "\D1" estabelece uma pause de 100 ms para inserir a seleção do buffer (veja a site do xvkbd).

Nota: Dependendo da configuração do seu X, pode ser necessário descartar o argumento -xsendevent ao xvkbd.

Os códigos para outras teclas diferentes de F9 podem ser determinados usando xbindkeys -k.

Referências (em inglês):

XMonad Window Manager

No gerenciador de janela xmonad existe uma função embutida para colar o conteúdo do x-selection-buffer. De modo a vincular esta função a um pressionamento de teclas, (aqui, a tecla Insert), a seguinte configuração pode ser usada:

xmonad.hs
import XMonad.Util.Paste
...
  -- X-selection-paste buffer
  , ((0,                     xK_Insert), pasteSelection) ]

Dicas e truques

Veja também