Teclados

Portal/IDB/icon-wiki-portal.png

Portal de teclados do wiki do Debian. Este portal cobre todos os aspectos sobre configuração de teclados no Debian.

Consulte também "A entrada do teclado" em debian-reference.

Configurações básicas de teclado (Kernel e X)

Para configurar o teclado para kernel Linux e X, você tem que instalar keyboard-configuration. O pacote console-setup também é necessário.

As configurações do teclado são armazenadas no arquivo /etc/default/keyboard fornecido pelo pacote keyboard-configuration. Outros pacotes o usam para configurar o kernel Linux e o sistema X Window para realizar experiências consistentes de teclado no console Linux e no sistema X Window.

Você pode mudar suas configurações do teclado usando:

 # dpkg-reconfigure keyboard-configuration
 # service keyboard-setup restart
  1. Menu para Modelo de teclado (qual teclado *é*) é apresentado. Se não tem certeza, escolha:

    • "Genérico de 104 teclas PC" para teclado tipo US com a "tecla Windows"
    • "Genérico de 105 teclas PC" para teclado tipo ISO com "tecla Windows" (e teclado tipo JIS com "tecla Windows")
    • "Genérico de 104 teclas PC" ou "Genérico de 105 teclas PC" podem ser escolhidos como acima para teclados menores em PCs laptop/notebook.
  2. Menu para País de origem do teclado é apresentado. Se não tem certeza, escolha:

    • "Inglês (US)" for "QWERTY"-keyboard
    • "Alemão" para teclado "QWERTZ"
    • "Francês" para teclado "AZERTY"
    • "Japonês" para teclado "QWERTY" com teclas extras destinadas ao japonês
  3. Menu para Layout de teclado (o que as teclas devem *fazer*) é apresentado. Se não tem certeza, escolha:

    • "Inglês (US)" para layout comum (inglês)
    • "Inglês (internacional, com teclas "mortas" ?AltGr)" para ter acesso a caracteres acentuados, etc.

    • "Padrão" para layout comum (alemão, francês)
    • "Japonês" para layout comum (japonês)
    • "Dvorak" etc., se quiser.

Para aplicar as novas configurações, deve ser o suficiente reiniciar o serviço keyboard-setup. Caso contrário, tente reiniciar o kernel através do sistema de entrada pelo udev:

 # udevadm trigger --subsystem-match=input --action=change

ou reinicie o sistema operacional inteiro.

O kernel Linux e o Sistema de Janelas X processam entradas de teclado de forma independente. O pacote keyboard-configuration cuida das configurações deles.

Para o Sistema de Janelas X, as entradas de teclado são processadas utilizando a Extensão de Teclado X ("X keyboard Extension" - XKB). Os dados de teclado resultantes são passados para as aplicações X através da conexão X com o protocolo método de entrada X ("X Input method" - XIM).

Configuração moderna de teclado (IM)

O mecanismo simples de entrada de teclado realizado pela configuração acima não suporta alguns idiomas corretamente, como chinês e japonês.

A instalação do pacote de framework de método de entrada ("input method" - IM), como ibus (ou fcitx5), juntamente com pacotes associados, permite suportar todos os idiomas.

Para o moderno sistema GUI, as entradas de teclado são processadas por IM usando motores IM. Para aplicações GTK e QT, os dados de teclado resultantes são passados para eles através de comunicação D-Bus. Para aplicações X, os dados de teclado resultantes são passados para eles através da conexão X com o protocolo Método de entrada X ("X input method" - XIM). Se o sistema GUI for Wayland, xwayland facilita a conexão X para aplicações X.

(Por favor, não se confunda entre IM e XIM).

Para o sistema GNOME (o ambiente de área de trabalho padrão do Debian), o pacote ibus é automaticamente instalado e ativado. A entrada do teclado precisa ser configurada a partir de sua GUI Configurações -> Teclado para configurações básicas. Para configurações mais complicadas, tais como trocar CapsLock e Ctrl, você precisa instalar gnome-tweak e usá-lo.

Para sistemas não GNOME, o comando de configuração GUI independente ibus-setup pode configurar o framework IM para ibus. Sob esses ambientes de área de trabalho, a entrada de menu de seu utilitário de configuração de teclado ou a entrada de menu pop-up oferecido ao clicar no ícone de bandeja associado pode iniciar o ibus-setup para você.

Para o KDE, a configuração de ibus está em Configurações de sistema -> Hardware -> Dispositivos de entrada/teclado. Um ícone de bandeja está disponível como kimpanel no pacote plasma-widgets-addons.

Veja I18n/ibus e I18n/Fcitx5 para saber mais.

Estratégia de configuração de teclado multilíngue

Existem 2 estratégias para a configuração de teclado multilíngue. Misturar essas 2 estratégias para a entrada de teclado criará um sistema impossível de gerenciar. Por favor, não misture-os.

Estratégia antiga

As pessoas que desejam configurar um único ambiente de entrada de teclado para várias línguas (europeias) de forma antiga, sem o framework IM, devem considerar a seguinte estratégia de configuração.

Esta seção é oferecida como compatibilidade retroativa.

Estratégia moderna

As pessoas que desejam configurar vários ambientes de entrada de teclado com alternância dinâmica entre vários idiomas, de uma forma moderna, devem considerar a seguinte estratégia de configuração.

Por favor, note que o framework IM como ibus fornece sua funcionalidade interna equivalente à Extensão de Teclado X ("X keyboard Extension" - XKB) para inserir muitos caracteres Unicode para idiomas europeus sem pacotes de motores adicionais, e sua configuração está disponível no programa GNOME Tweaks em Teclado & Mouse -> Opções adicionais de layout. Veja abaixo para o método não GUI para fazer isso.

Esta seção é oferecida para orientações futuras.

Veja "IM e XIM" para os cuidados requeridos para usar IM corretamente.

Dicas de configuração de teclado

Configuração manual do teclado

Você pode editar /etc/default/keyboard manualmente em vez de executar dpkg-reconfigure keyboard-configuration.

Aqui está um exemplo:

# KEYBOARD CONFIGURATION FILE
# Consulte as páginas de manual keyboard(5) e xkeyboard-config(7).

XKBMODEL="pc105"
XKBLAYOUT="us,de,fr,ua,ru"
XKBVARIANT=""
XKBOPTIONS="grp:alt_shift_toggle"

BACKSPACE="guess"

Sob o ambiente X, esta configuração de layout de teclado em /etc/default/keyboard pode ser substituída executando algo como "setxkbmap us,ru -option grp:ctrl_shift_toggle" no arquivo de configuração de inicialização X ~/.xsessionrc . Por favor, note que isso é eficaz apenas para o ambiente X e o ambiente GUI moderno pode não ser executado sob o ambiente X.

Veja também:

Como configurar o layout do teclado no initramfs

A seção apropriada do /etc/initramfs-tools/initramfs.conf precisa ser mudada para ter o layout localizado do teclado no início da máquina:

#
# KEYMAP: [ y | n ]
#
# Load a keymap during the initramfs stage.
#

KEYMAP=y

Aplique as mudanças:

# update-initramfs -u

Como habilitar o teclado USB no initramfs

O initramfs-tools deve incluir o módulo usbhid e suas dependências para suportar o teclado USB na inicialização da máquina. De qualquer forma, o arquivo de configuração /etc/initramfs-tools/conf.d/driver-policy deve incluir a maioria dos módulos, ou estes devem ser especificados em outro arquivo:

#
# MODULES: [ most | netboot | dep | list ]
#
# most - Add most filesystem and all harddrive drivers.
#
# dep - Try and guess which modules to load.
#
# netboot - Add the base modules, network modules, but skip block devices.
#
# list - Only include modules from the 'additional modules' list
#

MODULES=most

Se a configuração acima não incluir a maioria dos módulos, os módulos necessários devem ser especificados no arquivo /etc/initramfs-tools/modules:

# USB keyboard at boot
usbcore
uhci_hcd
ehci_hcd
usbhid

Aplique as mudanças:

 # update-initramfs -u

Como ativar dinamicamente as configurações do console Linux

Para ativar as configurações alteradas em /etc/default/keyboard sem reiniciar, execute setupcon(1).

 $ sudo setupcon -k -f

Como ativar dinamicamente as configurações X Window (estratégia antiga)

Se o framework IM não estiver ativo, você pode alternar o layout do teclado do sistema de janelas X a partir do terminal, ou seja:

 $ setxkbmap de
 $ setxkbmap fr
 $ setxkbmap us

De interesse especial para hardware de teclado com layout US pode ser a variante altgr-intl (isso fornece um mapeamento simples de AltGr para muitos umlauts e símbolos especiais):

 $ setxkbmap -rules evdev -model evdev -layout us -variant altgr-intl

ou

 $ setxkbmap -model pc105 -layout us -variant altgr-intl

Para configurar uma tecla simples para alternar entre vários layouts de teclado configurados, consulte a opção XkbOptions na seção InputClass em algum lugar dentro da coleção de arquivos de configuração xorg [SOLVED] Setxkbmap .xinitrc).

Como gerenciar dinamicamente as configurações de fonte de entrada da linha de comando (estratégia moderna

Configurações de fonte de entrada podem ser dinamicamente gerenciadas usando os comandos gsettings, dconf ou dconf-editor. Aqui, o comando gsettings é um envoltório independente de plataforma do comando Linux dconf e dconf-editor é um programa GUI.

As atuais configuração atual da fonte de entrada e a fonte de entrada XKB podem ser obtidas da linha de comando. Por exemplo:

 $ gsettings get org.gnome.desktop.input-sources sources
[('xkb', 'us'), ('ibus', 'anthy'), ('ibus', 'mozc-jp')]
 $ gsettings get org.gnome.desktop.input-sources xkb-options
['lv3:ralt_switch', 'compose:rwin']

ou

 $ dconf read /org/gnome/desktop/input-sources/sources
[('xkb', 'us'), ('ibus', 'anthy'), ('ibus', 'mozc-jp')]
 $ dconf read /org/gnome/desktop/input-sources/xkb-options
['lv3:ralt_switch', 'compose:rwin']

Podem ser atualizadas para certos valores. Por exemplo:

 $ gsettings set org.gnome.desktop.input-sources sources "[('xkb', 'us'), ('ibus', 'anthy'), ('ibus', 'mozc-jp')]"
 $ gsettings set org.gnome.desktop.input-sources xkb-options "['lv3:ralt_switch', 'compose:rwin']"

ou

 $ dconf write /org/gnome/desktop/input-sources/sources "[('xkb', 'us'), ('ibus', 'anthy'), ('ibus', 'mozc-jp')]"
 $ dconf write /org/gnome/desktop/input-sources/xkb-options "['lv3:ralt_switch', 'compose:rwin']"

Podem ser resetadas ao usar gsettings reset ... ou dconf reset ....

Como criar um atalho de teclado personalizado para selecionar uma fonte de entrada particular

Para o GNOME, você pode criar um atalho de teclado personalizado para selecionar uma fonte de entrada específica atribuindo o comando a Configurações -> Teclado -> Atalhos de teclado (em vez de usar o alternador Super-SPACE). Ou seja, como explicado em outro lugar, o seguinte comando selecionará a primeira fonte de entrada:

gdbus call --session --dest org.gnome.Shell --object-path /org/gnome/Shell --method org.gnome.Shell.Eval  "imports.ui.status.keyboard.getInputSourceManager().inputSources[1].activate()"

Configuração de teclado para backspace/delete e tipo terminal

Uma boa revisão da complicada situação sobre configuração do teclado para backspace/delete e tipo terminal está disponível em /usr/share/doc/xterm/README.Debian.

O mapeamento de teclas padrão do Debian para xterm é DEC VT 220, como comportamento do terminal consistente com o console virtual Linux. Isso libera CTRL-H da ação do backspace e nos permite usar CTRL-H para outras finalidades em programas como o Vim.

Como usar o terminal kitty com IM

O emulador terminal baseado em GPU kitty não usa X, GTK, nem a biblioteca QT, mas usa a biblioteca Wayland. Para ativar o IM para inserir alguns caracteres para chinês ou japonês, você precisa seguir /usr/share/doc/kitty/README.Debian.

Visão geral da entrada de teclado

Aqui está uma visão geral da situação de entrada de teclado no Debian.

Para evitar confusões, serão apresentadas ambas a situação histórica mais simples quanto a situação atual mais complicada.

Situação histórica de entrada de teclado

Antes da introdução do suporte a Wayland no Debian, a situação sobre a entrada de teclado pode ser resumida da seguinte forma:

Situação atual sobre a entrada de teclado (em 2022)

A introdução do suporte ao Wayland no Debian mudou a situação sobre a entrada de teclado. (Outras mudanças como a introdução do systemd e GTK4 também aconteceram).

Como o suporte ao Wayland] é uma atividade em curso, consulte a página wiki do Wayland para a última situação e detalhes.

A situação atual (maio de 2022) do Debian 10 buster/estável (stable) e Debian 11/bookworm/teste (testing) sobtttte teclado pode ser resumida da seguinte forma:

Solução de problemas

Alterando a configuração do IM

Para evitar problemas causados pelo caching de biblioteca e outros, você deve reiniciar o sistema quando fizer alterações na configuração de framework do método de entrada ("input method" - IM). (Reiniciar a sessão do ambiente de área de trabalho pode ser suficiente para a maioria dos casos, mas reiniciar é mais seguro).

IM e XIM

Aqui estão dicas sobre framework de método de entrada ("input method" - IM) e sobre problemas de protocolo XIM.

Caso de framework IM ativado

Quando o framework IM como o ibus está instalado e ativado, aplicações X puras (clientes X que foram projetados para obter entradas de teclado do servidor X através da conexão X com o protocolo XIM), como xterm e rxvt-unicode, não falam diretamente com o servidor X para entradas de teclado. O framework IM, como o ibus, lida com entradas de teclado reais e passa dados processados para clientes X usando o protocolo XIM de seu daemon, como o ibus-daemon em vez disso.

Infelizmente, a combinação de clientes ibus e clientes X é defeituosa para algumas sequências de teclado (raras) ao inserir caracteres não ASCII. Houve bugs persistentes em torno desta combinação como discutido em Red Hat Bugzilla – Bug 2013610 e outros lugares.

Vamos ficar numa zona segura tanto quanto possível.

Programas GTK e QT adequadamente configurados com im-config não usam protocolo XIM para se comunicar com ibus-daemon e são imunes a esses bugs irritantes desta combinação.

Para emuladores terminais, use qualquer moderno que use via GTK ou QT:

Para emacs, considere usar emacs-nox em emuladores de terminais modernos ou emacs-gtk. (Isto é, evite emacs-lucid se o ibus estiver ativado. Os bugs do emacs-gtk parecem ter sido resolvidos).

Para programas como gitk, por favor considere evitar a digitação de sequências problemáticas de caracteres não ASCII.

Caso de framework IM desabilitado

Se você não precisa de funcionalidades modernas do framework IM, como o ibus, pode fazer com que os clientes X falem diretamente com o servidor X configurado com a Extensão de teclado X ("X keyboard Extension" - XKB), desabilitando o ibus desta forma:

 $ im-config -n none

Esta solução pode não funcionar em alguns ambientes de área de trabalho se substituirem im-config. Notavelmente, o GNOME pode cair nesse caso.

Teclado japonês de 109 teclas

Para o teclado de PC japonês, você seleciona o modelo de teclado para ser "Generic 105-key PC" e a variedade de teclado por país para ser "Japanese"/"日本語". Você terá então:

XKBMODEL="pc105"
XKBLAYOUT="ja"

(Não se preocupe se o nome do país e idioma estiverem estranhos).

A questão está na variante de layout de teclado.

Você provavelmente tem um teclado de PC japonês moderno fabricado após 2000 que tem marcas mais recentes do tipo OADG 109A nas teclas. Mesmo para tal caso, é provavelmente uma boa ideia selecionar o layout simples "Japonês" / "日本語". Você deve considerar:

XKBVARIANT=""

Isto é por causa do benefício prático do acesso mais fácil a "{~". As diferenças sutis dessas variantes são:

Quanto à razão de porquê o teclado de 105 teclas e não o teclado de 109 teclas, 4 teclas extras usadas apenas para entrada japonesa não parecem ser contabilizadas desde que não afetam os mapeamentos de teclas.

Quanto à história sobre OADG 109 para OADG 109A, por favor consulte JISキーボード.

GNOME muito antigo (atualmente não é um problema em @2022)

O layout do teclado foi alterado em Configurações -> Região e Idioma -> Fonte de entrada. Para versões mais antigas do que a Stretch (inicialmente lançada em @2018), esses layouts incluem idiomas minoritários e dialetos, bem como configurações muito específicas, e foram escondidas por padrão na GUI do Stretch (durante seu teste?).

Pode-se defini-lo via linha de comando usando dconf/gsettings ao adicionar as teclas em /org/gnome/desktop/input-sources/sources.

A única maneira de torná-los visíveis é habilitar a configuração correspondente no gconf:

$ gsettings set org.gnome.desktop.input-sources show-all-sources true

Para mais informações sobre essa questão, consulte https://bugzilla.gnome.org/show_bug.cgi?id=682240.


Veja também