Determinando as atribuições de códigos de tecla para o X.org em um PC

2

Em algum momento do final de 2008 até o início de 2009, alguns valores de códigos de tecla (aparentemente, para as teclas que não estavam em um teclado XT) em um teclado de PC padrão quando rodando o X.org no Linux mudaram. Eu não sei se isso foi devido a uma mudança no kernel ou a uma alteração no X. O Debian lenny e o Ubuntu 8.04 usaram a atribuição antiga; O Debian squeeze e o Ubuntu 10.04 usaram a nova tarefa.

Portanto, eu tenho dois arquivos xmodmaprc , um com os códigos de tecla antigos e um com os novos códigos de tecla. Como faço para determinar qual deles carregar dos meus .xinitrc e .xsession ?

Eu quero que meus arquivos de inicialização sejam portáveis sem problemas, então eu quero me livrar da minha atual dependência do nome da máquina (!). E eu não quero introduzir uma dependência nas versões de distribuição do Linux (e, de qualquer forma, isso seria informação sobre o cliente, mas são informações sobre o servidor que eu preciso). Eu já tenho informações sobre o servidor neste ponto do meu script (todos os símbolos listados em xrdb(1) estão disponíveis como variáveis de ambiente); espero que minha pergunta reduza a "Que parâmetros eu comparo a quais valores?".

Observe que, como quero que meus arquivos de inicialização funcionem em máquinas que não são administradas, as reatribuição de keysym sozinhas não ajudam. Por exemplo, quero atribuir meu modificador favorito às chaves Win , mas não posso prever qual keysym será atribuída quando eu fizer login. Entretanto, se houver um conceito XKB, posso usá-lo lugar de códigos de teclas (e é independente de qualquer customização de sysadmin, portanto, os keyyms não funcionam), estou disposto a mudar para o XKB.

    
por Gilles 15.03.2011 / 20:54

1 resposta

3

Você pode descobrir o código-chave de uma chave por meio do XKB, por exemplo

xkbcomp -a -dflts -xkb $DISPLAY - | sed -ne 's/^ *<LWIN> *= *\([0-9][0-9]*\).*//p'
    
por 15.03.2011 / 21:22