AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / unix / Perguntas / 479673
Accepted
étale-cohomology
étale-cohomology
Asked: 2018-11-04 16:56:21 +0800 CST2018-11-04 16:56:21 +0800 CST 2018-11-04 16:56:21 +0800 CST

Alterando o layout/mapeamento do teclado no console (tty) e no X de uma maneira agnóstica do X/console?

  • 772

Consegui alterar o layout/mapeamento do teclado quando o X Window System está sendo executado usando ~/.Xmodmap(e suponho que você também possa fazer isso diretamente pelo protocolo X , por exemplo, usando libxcb como um wrapper em torno de chamadas de protocolo X).

Consegui fazer o mesmo (um pouco) no console/tty (ou seja, quando o X não está em execução) usando loadkeys.

Existe uma maneira de personalizar o layout do teclado de forma semelhante, mas a partir de uma única fonte , de tal forma que afete tanto o X quanto o console, ou seja. de uma forma que é "agnóstico X-and-console"?

(A única maneira que consigo pensar é escrevendo um "driver de teclado" que fale com a interface de entrada do kernel, evdev, e envie a entrada que você deseja (através de uinput?), ou algo assim, mas não sei se isso faz sentido , ou se houver uma maneira mais fácil.)

keyboard-layout keyboard
  • 1 1 respostas
  • 3645 Views

1 respostas

  • Voted
  1. Best Answer
    JdeBP
    2018-11-05T03:31:02+08:002018-11-05T03:31:02+08:00

    Sim, existe uma maneira, e é realmente assim que o pacote de configuração do console do Debian faz isso.

    • Os layouts de teclado são especificados em termos XKB (modelo, layout, variante e opções) pelo administrador em um arquivo chamado keyboard, geralmente /etc/default/keyboard. Esta é a fonte única. Pode ser editado com um editor de texto.
    • O setxkbmapprograma recebe essas mesmas configurações de XKB e configura um servidor X11 de acordo.
      • O script do mantenedor pós-instalação do pacote de configuração do teclado é executado setxkbmapdiretamente, com as /etc/default/keyboardconfigurações, se ele se encontrar com uma tela X11. Assim dpkg-reconfigure keyboard-configuration, a execução de um emulador de terminal GUI X11 afetará o layout do teclado X11.
    • O setupconscript pega essas configurações de XKB, as passa pelo ckbcomputilitário para gerar um mapa de teclado e carrega esse mapa de teclado nos terminais virtuais do kernel com loadkeys/ kbdcontrol.
      • Este script é executado na inicialização do sistema por um serviço.
      • Também pode ser executado manualmente em outro momento.

    Outros sistemas operacionais systemd funcionam de maneira diferente, mas também possuem uma única fonte.

    • O layout, a variante e as opções do XKB são armazenados em arquivos /etc/X11/xorg.conf.d/00-keyboard.conf. Esta é a fonte única.
      • Este arquivo é lido diretamente pelo servidor X11 na inicialização e define o mapa de teclado X11 diretamente.
      • Este arquivo é analisado por systemd-localedna inicialização. O arquivo não pode ser editado de forma útil com um editor de texto enquanto systemd-localedestiver em execução, porque o serviço irá sobrescrevê-lo alegremente com suas próprias informações na memória.
      • Para alterar as informações do XKB, executa-se o localectl, que conversa com outro servidor que, por sua vez, conversa com o systemd-localed.
    • systemd-localedconverte as configurações de XKB em um nome de mapa de teclado de terminal virtual usando os mapeamentos em /usr/share/systemd/kbd-model-map, nos quais ele grava /etc/vconsole.conf. Ao contrário do sistema Debian, ele não gera mapas dinamicamente a partir das informações do XKB, mas seleciona apenas mapas estáticos pré-fornecidos listados no arquivo de mapas.
    • systemd-vconsole-setupé executado no bootstrap, lê /etc/vconsole.confe carrega o mapa do teclado nos terminais virtuais do kernel executando loadkeys.

    Leitura adicional

    • keyboard. Manual do Usuário de configuração do console . Debian.
    • ckbcomp. Manual do Usuário de configuração do console . Debian.
    • Andrew T. Young (2011). Configuração do teclado .
    • Onde o Xkb está obtendo sua configuração?
    • https://unix.stackexchange.com/a/326804/5132
    • 18

relate perguntas

  • A tecla shift de recuperação ainda atua como tecla shift

  • Não é possível digitar trema usando o teclado

  • Lendo /dev/input/ do teclado PS/2

  • Empilhe til e barra sobre a letra

  • Torne as configurações do teclado Apple persistentes em ../hid_apple/parameters/

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    ssh Não é possível negociar: "nenhuma cifra correspondente encontrada", está rejeitando o cbc

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    Como descarregar o módulo do kernel 'nvidia-drm'?

    • 13 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Wong Jia Hau ssh-add retorna com: "Erro ao conectar ao agente: nenhum arquivo ou diretório" 2018-08-24 23:28:13 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST
  • Martin Hope
    Bagas Sanjaya Por que o Linux usa LF como caractere de nova linha? 2017-12-20 05:48:21 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve