A questão é, se existe uma maneira de simplificar a estrutura da configuração do xkb relacionada aos layouts de teclado?
Conforme explicado em mais detalhes abaixo, há cinco locais independentes nos quais uma referência a uma variante de layout de teclado é armazenada ( evdev.xml
, evdev.lst
, base.xml
, base.lst
e dentro da respectiva descrição de layout arquivos em /usr/share/X11/symbols/
). Seria muito mais simples se houvesse apenas o número necessário (não é útil armazenar as mesmas informações em .lst e .xml, pois todas as adições ou exclusões de layouts de teclado precisam ser feitas várias vezes em 5 locais )
É claro que também torna toda a configuração menos clara para os usuários (já que é confuso ter que definir a mesma configuração de maneira redundante desnecessária em vários lugares). Talvez haja uma maneira de simplificar isso? Se houvesse essa seria a resposta desejada para essa pergunta. Dado que existem muitas distribuições diferentes, eu espero que nem todas tenham essa configuração de xkb.
É assim que a configuração do xkb aparece na minha caixa GNU / Linux (Ubuntu 12.04LTS).
A fim de adicionar um novo teclado layouts para ser usado no meu um grande número respeitável de muitos arquivos deve ser modificado.
/usr/share/X11/xkb/rules/evdev
/usr/share/X11/xkb/rules/evdev.xml
/usr/share/X11/xkb/rules/evdev.lst
/usr/share/X11/xkb/rules/base
/usr/share/X11/xkb/rules/base.xml
/usr/share/X11/xkb/rules/base.lst
Parece-me que essencialmente base
versão dos arquivos são cópias dos arquivos evdev
, seria interessante saber se eles poderiam ser feitos links simbólicos como esses arquivos
/usr/share/X11/xkb/rules/xorg
/usr/share/X11/xkb/rules/xorg.lst
/usr/share/X11/xkb/rules/xorg.xml
Realizando este pequenos testes:
1.
user@box:/$ cat /usr/share/X11/xkb/rules/evdev.lst | grep Greek
gr Greek
simple gr: Greek (simple)
extended gr: Greek (extended)
nodeadkeys gr: Greek (eliminate dead keys)
polytonic gr: Greek (polytonic)
2.
user@box:/$ cat /usr/share/X11/xkb/rules/evdev.xml | grep Greek
<description>Greek</description>
<description>Greek (simple)</description>
<description>Greek (extended)</description>
<description>Greek (eliminate dead keys)</description>
<description>Greek (polytonic)</description>
ofencito@freak:/usr/share/X11/xkb/rules$
mostra que ambos os arquivos contêm virtualmente os mesmos dados (o que faz com que a mesma iformation seja armazenada em 4 locais separados - mesmo desconsiderando os links simbólicos mencionados anteriormente).
Por fim, os layouts de teclado são armazenados em uma estrutura de sistema de arquivos em /usr/share/X11/xkb/symbols
, que faz referências armazenadas novamente a
o layout de idioma e variante nos arquivos nomeados de acordo. Para manter nosso exemplo grego, existe um arquivo /usr/share/X11/xkb/symbols/gr
. Olhando para este rendimento:
user@box:/$ cat /usr/share/X11/xkb/symbols/gr | grep xkb_symbols
xkb_symbols "basic" {
name[Group1] = "Greek";
xkb_symbols "simple" {
name[Group1] = "Greek (simple)";
xkb_symbols "bare" {
xkb_symbols "extended" {
name[Group1] = "Greek (extended)";
xkb_symbols "polytonic" {
name[Group1] = "Greek (polytonic)";
xkb_symbols "nodeadkeys" {
name[Group1] = "Greek (eliminate dead keys)";
Neste ponto, a mesma informação foi armazenada em 5 locais.
Existe uma maneira de simplificar essa "bagunça"?
Já que estou mais familiarizado apenas com o Ubuntu, é claro que outras distribuições podem ter encontrado menos formas de confusão para lidar com o layout do teclado?