Teclados
Portal de teclados do wiki do Debian. Este portal cobre todos os aspectos sobre configuração de teclados no Debian.
Contents
-
Teclados
- Configurações básicas de teclado (Kernel e X)
- Configuração moderna de teclado (IM)
- Estratégia de configuração de teclado multilíngue
- Dicas de configuração de teclado
-
Como habilitar o teclado USB no initramfs
- Como ativar dinamicamente as configurações do console Linux
- Como ativar dinamicamente as configurações X Window (estratégia antiga)
- Como gerenciar dinamicamente as configurações de fonte de entrada da linha de comando (estratégia moderna
- Como criar um atalho de teclado personalizado para selecionar uma fonte de entrada particular (GNOME)
- Configuração de teclado para backspace/delete e tipo terminal
- Como usar o terminal kitty com IM
- Visão geral da entrada de teclado
- Solução de problemas
- Veja também
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
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.
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
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.
Se um pacote de framework IM está instalado, desative-o executando im-config -n none.
- Selecione o modelo de teclado correto. (US/ISO)
Selecione o layout de teclado desejável. Por exemplo, inglês (US International ?AltGr Unicode combinando, alternativo)
(opcional) Configure o comportamento do teclado usando Extensão de Teclado X ("keyboard Extension" - XKB).
Esta configuração pode ser feita através do código de inicialização X configurado pelo ambiente GUI ou por uma chamada xkbcomp em ~/.xsession.
As aplicações X comunicam-se com o servidor X para a entrada do teclado através de conexão X com o protocolo Método de Entrada X ("X Input Method" - XIM)
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.
Instale um pacote de framework de método de entrada ("input method" - IM) como ibus
(opcional) Instale um pacote de motor IM pertinente como ibus-anthy
Ative o layout de mecanismo/teclado de IM desejável adicionando-o no menu como Configurações -> Teclado -> Fontes de entrada, e configure-os.
Alterne entre layouts de motores/teclados IM pressionando GUI-SPACE.
Aplicações X comunicam-se com o servidor daemon IM como ibus-daemon identificado por XMODIFIERS para a entrada de teclado com o protocolo Método de Entrada X ("X Input Method" - XIM).
Aplicações GTK comunicam-se com o IM com ibus , com biblioteca definida em GTK_IM_MODULE para entrada de teclado através de comunicação D-Bus.
Aplicações QT comunicam-se com IM com ibus , com biblioteca definida em QT_IM_MODULE para entrada de teclado através de comunicação D-Bus.
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"
XKBMODEL é a variável do modelo do teclado (veja em /usr/share/X11/xkb/rules/base.lst (texto puro) ou em /usr/share/X11/xkb/rules/base.xml (XML) para uma lista completa);
- XKBLAYOUT é uma variável que contém a lista de layouts usados;
"grp:alt_shift_toggle" configura a combinação de teclas para intercâmbio de layouts (<Alt>+<Shift>).
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:
keyboard(5) - página de manual.
xkeyboard-config(7) - página de manual.
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)
setxkbmap é fornecido por x11-xkb-utils.
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 (GNOME)
Para o GNOME, você pode criar um atalho personalizado de teclado para selecionar diretamente uma fonte de entrada em vez de usar a alternância via Super-SPACE. Isto pode ser feito, instalando-se a extensão GNOME Atalhos para métodos de entrada e touchpad que está no site web da GNOME. Uma fonte com explicações está disponível no github.
Após o GNOME 43 (lançado no Debian/bookworm), a definição direta de um método de entrada do menu Atalhos Personalizados usando o comando gdbus requer a instalação e ativação da extensão Menu de Modo Não Seguro. Assim, a utilização da extensão GNOME mencionada acima é uma solução melhor.
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:
- O ambiente GUI era fornecido apenas pelo sistema X.
Para o console virtual Linux, sua entrada de teclado era tratada pelo kernel Linux. Veja keymaps(5).
Para o ambiente X sem IM, sua entrada de teclado era tratada pelo servidor X chamando o kernel em baixo nível e usando seu próprio keymap. Veja X(7) e xmodmap(1).
Isso foi bom o suficiente para se poder digitar muitos caracteres acentuados (não-ASCII) usando teclas mortas, a tecla AltGr, Compose_key.
Esta configuração pode ser feita pelo código de inicialização X configurado pelo ambiente GUI ou chamando xkbcomp em ~/.xsession.
Para o ambiente X com IM, sua entrada de teclado é tratada por IM. Veja I18n/ibus e I18n/Fcitx5.
O ambiente do sistema é configurado por um script "hook" fornecido por im-config que define variáveis de ambiente e executa o daemon como parte da inicialização de X.
XMODIFIERS tipicamente definido como @im=<input-method> para habilitar um IM particular.
- Daemon para IM servindo protocolo XIM é iniciado pelo script "hook".
GTK_IMMODULE (ou similar) tipicamente definido como <input-method> para habilitar um IM particular para aplicações usando GTK2/GTK3.
QT_IMMODULE (ou similar) tipicamente definido como <input-method> para permitir um IM particular para aplicações usando QT4/QT5.
Módulos de entrada necessários, como ibus-qt4 e libqt5gui5, precisam ser instalados.
- Isso nos permite digitar não apenas muitos caracteres acentuados, mas também caracteres chineses e japoneses.
As configurações de variáveis de ambiente diferentes do que as configurações padrão fornecidas pelo im-config não são recomendadas nem suportadas. Essas dicas aleatórias vistas na web são geralmente destinadas a serem gambiarras para quebras temporárias. Se ver algo como XMODIFIERS=@im=none, GTK_IM_MODULE=xim ou QT_IM_MODULE=xim para o ambiente de execução do seu programa, você está em apuros.
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:
- O ambiente GUI é fornecido pelo sistema X ou pelo sistema Wayland.
Para o console virtual Linux, sua entrada de teclado é tratada pelo kernel Linux. Veja keymaps(5).
Para o ambiente X sem IM, sua entrada de teclado é tratada pelo servidor X chamando o kernel em baixo nível e usando seu próprio mapeamento de teclas. Veja X(7) e xmodmap(1).
Isso é bom o suficiente para digitar muitos caracteres acentuados (não-ASCII) usando teclas mortas, a tecka AltGr, Compose_key.
Esta configuração pode ser feita pelo código de inicialização X configurado pelo ambiente GUI ou chamando xkbcomp em ~/.xsession.
Para o ambiente Wayland, aplicações X puras ainda são suportadas pelo Xwayland, mas Xresources é ignorado intencionalmente. Isto significa que chamar xkbcomp em ~/.xsession é ignorado. Aplicações X usam XIM para obter a entrada de teclado.
- Para o ambiente Wayland, as aplicações não X precisam ser configuradas corretamente com IM e com a biblioteca gráfica.
Para qualquer ambiente com IM, sua entrada de teclado é tratada por IM. Veja I18n/ibus e I18n/Fcitx5.
O ambiente do sistema é configurado por um script "hook" fornecido pelo im-config que configura variáveis de ambiente e executa o daemon como parte da inicialização X e inicialização de área de trabalho. Alguns sistemas de área de trabalho, como o GNOME, substituem esta configuração pelo im-config.
XMODIFIERS tipicamente definido por @im=<input-method> para habilitar um IM particular.
- Daemon para IM servindo protocolo XIM é iniciado pelo script "hook".
GTK_IMMODULE (ou similar) tipicamente definido por <input-method> para habilitar um IM particular para aplicações usando GTK2/GTK3/GTK4.
QT_IMMODULE (ou similar) tipicamente definido por <input-method> para habilitar um IM particular para aplicações usando QT5.
Módulo de entrada necessário, como libqt5gui5, precisa ser instalado.
- Isso nos permite digitar não apenas muitos caracteres acentuados, mas também caracteres chineses e japoneses sob ambientes X e Wayland.
As configurações de variáveis de ambiente diferentes do que as configurações padrão fornecidas pelo im-config não são recomendadas nem suportadas. Essas dicas aleatórias vistas na web são geralmente destinadas a serem gambiarras para quebras temporárias. Se ver algo como XMODIFIERS=@im=none, GTK_IM_MODULE=xim ou QT_IM_MODULE=xim para o ambiente de execução do seu programa, você está em apuros.
Solução de problemas
Aqui está uma dica para teclado, método de entrada ("input method", IM) e problema de protocolo XIM.
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).
Caso de framework de método de entrada (IM) ativado (normal)
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:
gnome-console (comando kgx(1))
- ...
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
Se o zoom (um pacote deb produzido externamente com dependências não ótimas) é instalado em seu ambiente de área de trabalho não GNOME personalizado para o seu gosto via XKB, ele força a instalar im-config e ibus' em seu sistema contra sua vontade. Você não pode removê-los via simples remoção de pacotes. Se ainda quiser desativar o ibus e continuar usando XKB, o método acima é o melhor para desativar o ibus e continuar usando suas configurações XKB. Esta solução pode não funcionar em alguns ambientes de área de trabalho se substituirem
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: (Não se preocupe se o nome do país e idioma estiverem estranhos). A questão está na variante de layout de teclado. Selecionando "Japonês" / "日本語" definirá XKBVARIANT="" Selecionando "Japonês - Japonês (OADG 109A)" / "日本語 - 日本語 (OADG 109A)" definirá XKBVARIANT="OADG109A" 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: Isto é por causa do benefício prático do acesso mais fácil a "{~". As diferenças sutis dessas variantes são: Configuração XKBVARIANT="" produz "~" para "shift-0". (A tecla mais antiga OADG 109 de "shift-0" era marcada como "~") Configuração XKBVARIANT="OADG109A" produz "0" para "shift-0". (A tecla mais nova OADG 109A de "shift-0" não está marcada) Ambas as configurações produzem "~" para "shift-^". (A tecla mais antiga OADG 109 de "shift-^" não estava marcada. A tecla mais nova OADG 109A de "shift-^" está marcada como "~") 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キーボード.
O layout do teclado foi alterado em Pode-se defini-lo via linha de comando usando dconf/gsettings ao adicionar as teclas em A única maneira de torná-los visíveis é habilitar a configuração correspondente no gconf: Para mais informações sobre essa questão, consulte https://bugzilla.gnome.org/show_bug.cgi?id=682240.
Teclado japonês de 109 teclas
XKBMODEL="pc105"
XKBLAYOUT="ja"
XKBVARIANT=""
GNOME muito antigo (atualmente não é um problema em @2022)
$ gsettings set org.gnome.desktop.input-sources show-all-sources true
Veja também