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 / 406688
Accepted
Jan Tojnar
Jan Tojnar
Asked: 2017-11-24 16:19:41 +0800 CST2017-11-24 16:19:41 +0800 CST 2017-11-24 16:19:41 +0800 CST

Qual é a diferença entre as regras base e evdev xkb?

  • 772

Acabei de mudar de xf86-input-evdev para xf86-input-libinput e quebrou meu layout de teclado - teclas de seta com alt direita, tecla de menu de contexto, tecla delete, teclado numérico enter, etc. libinput debug-eventsmostrou a chave correta, no entanto. Depois de verificar Xorg.conf, notei a seguinte linha:

Option "XkbRules" "base"

Após alterá-lo para evdev, o teclado funcionou corretamente.

Encontrei o “ Guia de configuração do XKB ” que menciona as várias regras, mas não entra em detalhes sobre suas diferenças.

Qual a diferença entre os dois layouts? Tudo bem usar as regras evdev mesmo com libinput?

xorg xkb
  • 1 1 respostas
  • 3485 Views

1 respostas

  • Voted
  1. Best Answer
    quixotic
    2017-12-29T03:06:06+08:002017-12-29T03:06:06+08:00

    tl;dr: No Linux, você deve usar as evdevregras. Como diz no guia XKB você linka:

    Em sistemas Linux, as regras evdev são mais comumente usadas, em outros sistemas as regras básicas são usadas.


    A diferença é em grande parte histórica. evdevé o subsistema de entrada do kernel Linux moderno e não existia quando o XKB foi escrito pela primeira vez. Se você examinar o código-fonte de xkeyboard-config , descobrirá que as regras evdeve basesão geradas a partir (principalmente) dos mesmos modelos. Compare os arquivos gerados no banco de dados XKB do sistema com diff, no entanto. Você verá muitas entradas onde as baseregras carregam inetsímbolos para modelos de teclado específicos, enquanto as evdevregras eliminam a maioria dessas entradas específicas do modelo e carregam um conjunto mais generalizado:

    /usr/share/X11/xkb/rules/base:
    [...]
    ! model         =       symbols
      a4techKB21    =       +inet(media_nav_common)
      asus_laptop   =       +inet(media_common)
      acer_tm_800   =       +inet(acer_laptop)
      benqx730      =       +inet(benqx)
      btc9116u      =       +inet(btc9019u)
      chromebook    =       +inet(chromebook)
      dellsk8125    =       +inet(dell)
    // and about 50 more lines
    // generated from xkeyboard-config/rules/base.m_s.part
    
    /usr/share/X11/xkb/rules/evdev
    [...]
    ! model         =       symbols
      $evdevkbds    =   +inet(evdev)+inet(%m)
      chromebook    =   +inet(evdev)+inet(chromebook)
      applealu_jis  =   +inet(evdev)+macintosh_vndr/jp(alujiskeys)
      *             =   +inet(evdev)
    // ...that's all.
    // generated from xkeyboard-config/rules/evdev.m_s.part
    

    Não, realmente, essa é toda a seção de modelo para símbolos das evdevregras, enquanto a baseversão tem 60 linhas ímpares. O evdev.m_s.partarquivo é o modelo de origem para essa seção das regras; é um mapeamento de modelo para símbolo (a !model = symbollinha no início dessa seção; daí o m_sno nome do arquivo). A única outra seção específica do evdev das regras vem do evdev.m_k.partarquivo, que é um mapeamento de modelo para códigos-chave (a !model = keycodesseção das regras), e as diferenças são semelhantes.

    Para mais detalhes, consulte os códigos de teclas e arquivos de símbolos referenciados por essas regras (especialmente /usr/share/X11/xkb/keycodes/evdeve /usr/share/X11/xkb/symbols/inet). Você pode estar interessado neste artigo sobre o formato de regras XKB .

    • 7

relate perguntas

Sidebar

Stats

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

    Matriz JSON para bash variáveis ​​usando jq

    • 4 respostas
  • Marko Smith

    A data pode formatar a hora atual para o fuso horário GMT? [duplicado]

    • 2 respostas
  • Marko Smith

    bash + lê variáveis ​​e valores do arquivo pelo script bash

    • 4 respostas
  • Marko Smith

    Como posso copiar um diretório e renomeá-lo no mesmo comando?

    • 4 respostas
  • Marko Smith

    conexão ssh. Conexão X11 rejeitada devido a autenticação incorreta

    • 3 respostas
  • Marko Smith

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

    • 7 respostas
  • Marko Smith

    comando systemctl não funciona no RHEL 6

    • 3 respostas
  • Marko Smith

    rsync porta 22 e 873 uso

    • 2 respostas
  • Marko Smith

    snap /dev/loop em 100% de utilização -- sem espaço livre

    • 1 respostas
  • Marko Smith

    chave de impressão jq e valor para todos no subobjeto

    • 2 respostas
  • Martin Hope
    EHerman Matriz JSON para bash variáveis ​​usando jq 2017-12-31 14:50:58 +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
    Drux A data pode formatar a hora atual para o fuso horário GMT? [duplicado] 2017-12-26 11:35:07 +0800 CST
  • Martin Hope
    AllisonC Como posso copiar um diretório e renomeá-lo no mesmo comando? 2017-12-22 05:28:06 +0800 CST
  • Martin Hope
    Steve Como as permissões de arquivo funcionam para o usuário "root"? 2017-12-22 02:46:01 +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
  • Martin Hope
    Cbhihe Altere o editor padrão para vim para _ sudo systemctl edit [unit-file] _ 2017-12-03 10:11:38 +0800 CST
  • Martin Hope
    showkey Como baixar o pacote não instalá-lo com o comando apt-get? 2017-12-03 02:15:02 +0800 CST
  • Martin Hope
    youxiao Por que os diretórios /home, /usr, /var, etc. têm o mesmo número de inode (2)? 2017-12-02 05:33:41 +0800 CST
  • Martin Hope
    user223600 gpg — o comando list-keys gera uid [ desconhecido ] depois de importar a chave privada para uma instalação limpa 2017-11-26 18:26:02 +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