.Xresources ou .Xdefaults?

51

Estes dois arquivos parecem ter a mesma função. Qual é a diferença entre os dois, se houver algum?

    
por freedrull 10.02.2011 / 06:20

1 resposta

60

~/.Xdefaults é o método mais antigo de armazenar recursos do X. Este arquivo é lido novamente toda vez que um programa Xlib é iniciado. Se o X11 é usado pela rede, o arquivo deve estar presente no mesmo sistema de arquivos que os programas.

~/.Xresources é mais recente. Ele é carregado com xrdb na propriedade RESOURCE_MANAGER da janela raiz do X11. Sempre que qualquer programa procurar um recurso, ele será lido diretamente em RESOURCE_MANAGER .

Se esta propriedade não existir, o Xlib retorna ao método antigo de ler .Xdefaults em cada inicialização do programa. Observe que a maioria das distribuições carregará ~/.Xresources automaticamente se estiver presente, fazendo com que .Xdefaults seja ignorado, mesmo que você nunca tenha executado xrdb manualmente.

A vantagem do novo método é que basta chamar xrdb uma vez e os recursos estarão disponíveis para qualquer programa em execução neste monitor, seja local ou remoto. (O nome ~/.Xresources é apenas uma convenção - você pode usar xrdb para carregar qualquer arquivo, mesmo .Xdefaults .)

Manual de programação do Xlib P.441:

Prior to X11R2, X resource settings were read from .Xdefaults file in users home directory and optionally on whatever machine the X client was running on, so multiple files was hard to maintain.

Later on, xrdb program was made to store users resource settings from in .Xresources into the XA_RESOURCE_MANAGER property of the root window on the current X server, so all clients connected to the same server has access to them. If the user hasn't called xrdb to set the property, then .Xdefaults is read.

Wikipedia :

[...] the X resources are stored in two standard locations, depending on whether they apply to all screens or to a particular one:

  • the RESOURCE_MANAGER property of the root window of screen 0
  • the SCREEN_RESOURCES property of the root window of an arbitrary screen

Não termina exatamente nisso.

  • Há também a variável $XENVIRONMENT , cujo valor padrão é ~/.Xdefaults-hostname , se não for definido. Isso é usado da mesma maneira que .Xdefaults , mas é sempre lido, independentemente de RESOURCE_MANAGER estar presente. Você pode usar .Xdefaults-hostname arquivos para manter algumas configurações específicas da máquina ao usar xrdb para as globais.
Ambos os itens # 4 e # 5 listados abaixo parecem ser usados apenas por programas Xlib puros - não GTK 3 ou outros kits de ferramentas.

  • A quarta localização é o diretório apontado pela variável de ambiente $XAPPLRESDIR . (Estranhamente, se a variável não estiver definida, $HOME é usado como o padrão.) Quando um programa é iniciado, ele verifica se existe algum dos seguintes arquivos (o nome do arquivo é o mesmo que o nome da classe do programa): / p>

    • $XAPPLRESDIR/$LC_CTYPE/XTerm
    • $XAPPLRESDIR/language/XTerm
    • $XAPPLRESDIR/XTerm

    ( language é derivado de $LC_CTYPE removendo todos, exceto o primeiro componente; por exemplo, en_US.utf-8en .)

  • O local quinto é o diretório "padrão de aplicativos" em todo o sistema. Novamente, os diretórios de padrões de aplicativos são verificados na inicialização do programa, se tiverem um arquivo com o nome do programa. Por exemplo, o XTerm (no Arch Linux) usa:

    • /etc/X11/$LC_CTYPE/app-defaults/XTerm
    • /etc/X11/language/app-defaults/XTerm
    • /etc/X11/app-defaults/XTerm
    • /usr/share/X11/$LC_CTYPE/app-defaults/XTerm
    • /usr/share/X11/language/app-defaults/XTerm
    • /usr/share/X11/app-defaults/XTerm

    Os arquivos de padrões de aplicativos geralmente são instalados em /usr/share junto com o próprio programa; as substituições do administrador iriam para /etc .

Tudo mencionado acima está documentado em grande detalhe na documentação do kit de ferramentas X.org - artigo X Toolkit Intrinsics - Interface de Linguagem C , seção Carregando o banco de dados de recursos .

Infelizmente, não encontrei nenhum guia do usuário recente que descreva os recursos do X, principalmente porque eles são irrelevantes no ano de 2012. Mas, para informações históricas (leia-se: horrivelmente desatualizadas), você pode ler Guia do usuário do X Window System para X11 R3 e R4 do X Window System seção 9: Definindo Recursos (começando com a página 181).

    
por 10.02.2011 / 06:42

Tags