Capítulo 16. O sistema X Window

Sumário

16.1. Configurando manualmente o sistema X Window
16.2. Instalando e configurando fontes
16.3. Para obter mais informações

O sistema X Window (X11) é o padrão de fato para interfaces gráficas de usuário no UNIX. O X é baseado em rede, permitindo que aplicativos iniciados em um host sejam exibidos em outro host conectado em qualquer tipo de rede (LAN ou Internet). Este capítulo descreve a configuração e otimização do ambiente do Sistema X Window, e fornece informações de fundo sobre o uso das fontes no SUSE® Linux Enterprise Desktop.

16.1. Configurando manualmente o sistema X Window

Por padrão, o Sistema X Window é configurado com a interface do SaX2, descrita na Seção “Setting Up Graphics Card and Monitor” (Capítulo 5, Setting Up Hardware Components with YaST, ↑Guia de Implantação). Alternativamente, pode ser configurado manualmente, editando seus arquivos de configuração.

[Warning]configurações defeituosas do X podem danificar seu hardware

Tenha cuidado ao configurar o sistema X Window. Nunca inicie o sistema X Window antes que a configuração esteja concluída. Um sistema mal configurado pode causar danos irreparáveis ao seu hardware (isso se aplica particularmente a monitores de frequência fixa). Os autores deste manual e do SUSE Linux Enterprise Desktop não podem ser responsabilizados por nenhum dano resultante. Essas informações foram pesquisadas cuidadosamente, mas isso não garante que todos os métodos apresentados aqui estejam corretos e não danifiquem o seu hardware.

O comando sax2 cria o arquivo /etc/X11/xorg.conf. Esse é o arquivo de configuração principal do Sistema X Window. A seguir estão todas as configurações referentes ao monitor, ao mouse e à placa de vídeo.

[Important]usando o X -configure

Use o X -configure para definir sua configuração do X se tentativas anteriores com o SaX2 do SUSE Linux Enterprise Desktop tiverem falhado. Se sua configuração envolve drivers proprietários apenas binários, o X -configure não funcionará.

As seções a seguir descrevem a estrutura do arquivo de configuração /etc/X11/xorg.conf. Ela consiste em várias seções, cada uma delas referente a um determinado aspecto da configuração. Cada seção se inicia com a palavra-chave Section <designation> e termina com EndSection. A convenção a seguir se aplica a todas as seções:

Section "designation"
  entry 1
  entry 2
  entry n
EndSection 

Os tipos de seção disponíveis estão listados na Tabela 16.1, “Seções em /etc/X11/xorg.conf”.

Tabela 16.1. Seções em /etc/X11/xorg.conf

Tipo

Significado

Files

Os caminhos usados para as fontes e a tabela de cores RGB.

ServerFlags

Switches gerais para o comportamento do servidor.

Module

Uma lista de módulos que o servidor deve carregar

InputDevice

Dispositivos de entrada, como teclados e dispositivos de entrada especiais (touchpads, joysticks, etc.), são configurados nessa seção. Parâmetros importantes nessa seção são Driver e as opções que definem o Protocol e o Device. Você normalmente tem uma seção InputDevice por dispositivo conectado ao computador.

Monitor

O monitor usado. Elementos importantes dessa seção são o Identifier, mencionado posteriormente na definição de Screen, a taxa de atualização VertRefresh e os limites da frequência de sincronização (HorizSync e VertRefresh). As configurações são fornecidas em MHz, kHz e Hz. Normalmente, o servidor recusa qualquer linha modelo que não corresponda à especificação do monitor. Isso evita que frequências muito altas sejam enviadas ao monitor por acidente.

Modes

Os parâmetros de modeline para as resoluções de tela específicas. Esses parâmetros podem ser calculados pelo SaX2 com base nos valores fornecidos pelo usuário e, normalmente, não precisam ser mudados. Intervenha manualmente nesse ponto se, por exemplo, quiser conectar um monitor de frequência fixa. Há detalhes sobre o significado dos valores numéricos individuais nos arquivos HOWTO, em /usr/share/doc/howto/en/html/XFree86-Video-Timings-HOWTO (disponíveis no pacote howtoenh). Para calcular os modos VESA manualmente, você pode usar a ferramenta cvt. Por exemplo, para calcular uma modeline para um monitor de 1680x1050 a 60 Hz, use o comando cvt 1680 1050 60.

Device

Uma placa de vídeo específica. Ela é referenciada por seu nome descritivo. As opções disponíveis nessa seção dependem muito do driver usado. Por exemplo, se você usa o driver i810, encontre mais informações sobre as opções disponíveis na página de manual man 4 i810.

Screen

Combina um Monitor e um Device para compor todas as configurações necessárias para o X.Org. Na subseção Display, especifique o tamanho da tela virtual (Virtual), o ViewPort e os Modes usados com essa tela.

Note que alguns drivers exigem que todas as configurações usadas estejam presentes na seção Display em algum lugar. Por exemplo, se você usa um laptop e deseja usar um monitor externo que seja maior do que o LCD interno, pode ser necessário adicionar uma resolução maior do que a suportada pelo LCD interno ao final da linha Modes.

ServerLayout

O layout de uma configuração single-thread ou multithread. Essa seção junta os dispositivos de entrada InputDevice e os dispositivos de exibição Screen.

DRI

Fornece informações para a Infraestrutura de Renderização Direta (DRI).


Monitor, Device e Screen são explicados em mais detalhes. Mais informações sobre as outras seções podem ser encontradas nas páginas de manual de X.Org e xorg.conf.

Há várias seções Monitor e Device diferentes em xorg.conf. Mesmo várias seções Screen são possíveis. A seção ServerLayout determina qual dessas seções é usada.

16.1.1. Seção de tela

A seção de tela combina um monitor com uma seção de dispositivo e determina a resolução e a intensidade de cor usadas. Uma seção de tela pode ter a aparência do Exemplo 16.1, “Seção de tela do arquivo /etc/X11/xorg.conf”.

Exemplo 16.1. Seção de tela do arquivo /etc/X11/xorg.conf

Section "Screen"1
  DefaultDepth  162
  SubSection "Display"3
    Depth       164
    Modes       "1152x864" "1024x768" "800x600"5
    Virtual     1152x8646
  EndSubSection
  SubSection "Display"
    Depth       24
    Modes       "1280x1024"
  EndSubSection
  SubSection "Display"
    Depth       32
    Modes "640x480"
  EndSubSection
  SubSection "Display"
    Depth        8
    Modes       "1280x1024"
  EndSubSection
  Device        "Device[0]"
  Identifier    "Screen[0]"7
  Monitor       "Monitor[0]"
EndSection

1

Section determina o tipo de seção, neste caso, Screen.

2

DefaultDepth determina a profundidade de cores a ser usada por padrão, a menos que outra seja especificada explicitamente.

3

Para cada profundidade de cores, diferentes subseções Display são especificadas.

4

Depth determina a profundidade de cores a ser usada com esse conjunto de configurações de Display. Os valores possíveis são 8, 15, 16, 24 e 32, embora nem todos sejam suportados por todos os módulos do servidor X ou resoluções.

5

A seção Modes apresenta uma lista de possíveis resoluções de tela. O servidor X verifica essa lista da esquerda para a direita. Para cada resolução, o servidor X procura uma Modeline adequada na seção Modes. A Modeline depende da capacidade do monitor e da placa de vídeo. As configurações de Monitor determinam a Modeline resultante.

A primeira resolução encontrada é o Default mode. Com Ctrl+Alt++ (no teclado numérico), alterne para a resolução seguinte na lista à direita. Com Ctrl+Alt+ (no teclado numérico), alterne para a anterior. Isso permite a você variar a resolução enquanto o X está sendo executado.

6

A última linha da subseção Display com Depth 16 refere-se ao tamanho da tela virtual. O tamanho máximo possível de uma tela virtual depende da quantidade de memória instalada na placa de vídeo e da intensidade de cor desejada, não da resolução máxima do monitor. Se essa linha é omitida, a resolução virtual é apenas a resolução física. Como placas de vídeo modernas têm uma grande quantidade de memória de vídeo, você pode criar áreas de trabalho virtuais bem grandes. Porém, você talvez não possa mais usar a funcionalidade de 3D se preencher a maior parte da memória de vídeo com uma área de trabalho virtual. Por exemplo, se a placa tiver 16 MB de memória RAM de vídeo, a tela virtual poderá ter até 4096x4096 pixels de tamanho, com profundidade de cores de 8 bits. Porém, principalmente para placas aceleradas, não é recomendável usar toda a memória para a tela virtual, pois a memória da placa também é usada para vários caches de vídeo e fontes.

7

A linha Identifier (aqui Screen[0]) fornece a essa seção um nome definido com o qual ela pode ser referenciada com exclusividade na seguinte seção ServerLayout. As linhas Device e Monitor especificam a placa de vídeo e o monitor que pertencem a essa definição. Esses são links para as seções Device e Monitor com seus nomes correspondentes ou identificadores. Essas seções são abordadas em detalhes abaixo.

16.1.2. Seção do dispositivo

Uma seção de dispositivo descreve uma placa de vídeo específica. Você pode ter quantas entradas de dispositivo desejar em xorg.conf, desde que os nomes sejam diferenciados pela palavra-chave Identifier. Se você tiver mais de uma placa de vídeo instalada, as seções serão simplesmente numeradas em ordem. A primeira é chamada Device[0], a segunda Device[1] e assim por diante. O arquivo a seguir mostra um exemplo da seção Device de um computador com uma placa de vídeo PCI Matrox Millennium (conforme configurada pelo SaX2):

Section "Device"
  BoardName     "MGA2064W"
  BusID         "0:19:0"1
  Driver        "mga"2
  Identifier    "Device[0]"
  VendorName    "Matrox"
  Option        "sw_cursor"
EndSection

1

O BusID refere-se ao slot PCI ou AGP no qual a placa de vídeo está instalada. Isso corresponde ao ID exibido pelo comando lspci. O servidor X precisa de detalhes no formato decimal, mas o lspci os exibe no formato hexadecimal. O valor de BusID é detectado automaticamente pelo SaX2.

2

O valor de Driver é definido automaticamente pelo SaX2 e especifica qual o driver a ser usado para a sua placa de vídeo. Se a placa for Matrox Millennium, o módulo do driver será chamado mga. Em seguida, o servidor X pesquisa no ModulePath definido na seção Files no subdiretório drivers. Em uma instalação padrão, é o diretório /usr/lib/xorg/modules/drivers ou o /usr/lib64/xorg/modules/drivers para o diretório de sistemas operacionais de 64 bits. _drv.o será adicionado ao nome, por isso, no caso do driver mga, o arquivo de driver mga_drv.o será carregado.

O comportamento do servidor X ou do driver também pode ser influenciado por meio de opções adicionais. Um exemplo disso é a opção sw_cursor, definida na seção de dispositivo. Isso desativa o cursor do mouse do hardware e mostra o cursor do mouse usando o software. Dependendo do módulo do driver, há várias opções disponíveis (que podem ser encontradas nos arquivos de descrição dos módulos do driver no diretório /usr/share/doc/packages/nome_do_pacote ). Opções geralmente válidas também podem ser encontradas nas páginas de manual (man xorg.conf, man 4 <driver module> e man 4 chips).

Se a placa de vídeo tem vários conectores de vídeo, é possível configurar os diferentes dispositivos dessa placa como uma única tela. Use o SaX2 para configurar sua interface de vídeo dessa maneira.

16.1.3. Seção Monitor e Modes

Como as seções Device, as seções Monitor e Modes descrevem um monitor cada. O arquivo de configuração /etc/X11/xorg.conf pode conter quantas seções Monitor você desejar. Cada seção Monitor faz referência a uma seção Modes com a linha UseModes, se houver. Se não houver nenhuma seção Modes disponível para a seção Monitor, o servidor X calculará valores apropriados a partir dos valores de sincronização gerais. A seção de layout do servidor especifica qual seção Monitor é relevante.

Definições de monitor devem ser configuradas por usuários experientes. As modelines constituem uma parte importante das seções Monitor. Linhas modelo definem temporizações verticais para a respectiva resolução. As propriedades do monitor, especialmente as frequências permitidas, estão armazenadas na seção Monitor. Modos VESA padrão podem ser gerados com o utilitário cvt. Para obter mais informações, leia a página de manual do cvt man cvt.

[Warning]

A menos que você tenha conhecimento aprofundado sobre as funções do monitor e da placa de vídeo, não mude as modelines, pois isso pode danificar gravemente o monitor.

As pessoas que tentam desenvolver suas próprias descrições de monitor devem estar familiarizadas com a documentação em /usr/share/X11/doc. Instale o pacote xorg-x11-doc para encontrar PDFs e páginas em HTML.

A especificação manual de linhas modelo raramente é exigida atualmente. Se você está usando um monitor multisync moderno, as frequências permitidas e as resoluções ideais podem, como regra, ser lidas diretamente do monitor pelo servidor X via DDC, como descrito na seção de configuração do SaX2. Se isso não for possível por algum motivo, use um dos modos VESA incluídos no servidor X. Isso funcionará com a maioria das combinações de monitor e placa de vídeo.

16.2. Instalando e configurando fontes

A instalação de fontes adicionais no SUSE Linux Enterprise Desktop é muito fácil. Simplesmente copie as fontes para qualquer diretório localizado no caminho da fonte X11 (consulte a Seção 16.2.1, “Fontes centrais X11”). Para habilitar o uso das fontes, o diretório de instalação deve ser um subdiretório dos diretórios configurados em /etc/fonts/fonts.conf (consulte a Seção 16.2.2, “Xft”) ou inclusos neste arquivo com /etc/fonts/suse-font-dirs.conf.

O arquivo a seguir é um exemplo de /etc/fonts/fonts.conf. Esse é o arquivo de configuração padrão que deve ser apropriado para a maioria das configurações. Define também o diretório incluso /etc/fonts/conf.d. Nesse diretório, todos os arquivos ou links simbólicos que começam com um número de dois dígitos são carregados pelo fontconfig. Para obter uma explicação mais detalhada dessa funcionalidade, consulte /etc/fonts/conf.d/README.

<!-- Font directory list -->
<dir>/usr/share/fonts</dir>
<dir>/usr/X11R6/lib/X11/fonts</dir> 
<dir>/opt/kde3/share/fonts</dir>
<dir>/usr/local/share/fonts</dir>
<dir>~/.fonts</dir>

/etc/fonts/suse-font-dirs.conf é automaticamente gerado para acessar as fontes que acompanham os aplicativos (em grande parte de terceiros), como LibreOffice, Java ou Adobe Reader. Uma entrada típica seria semelhante ao seguinte:

<dir>/usr/lib/Adobe/Reader9/Resource/Font</dir>
<dir>/usr/lib/Adobe/Reader9/Resource/Font/PFM</dir>
 

Para instalar outras fontes em todo o sistema, copie manualmente os arquivos de fontes para o diretório adequado (como root); por exemplo, /usr/share/fonts/truetype. Alternativamente, a tarefa pode ser realizada com o instalador de fontes do KDE no Centro de Controle do KDE. O resultado é o mesmo.

Em vez de copiar as fontes reais, você também pode criar links simbólicos. Por exemplo, é recomendável fazer isso se você tiver fontes licenciadas em uma partição do Windows montada e desejar usá-las. Em seguida, execute SuSEconfig --module fonts .

SuSEconfig --module fonts executa o script /usr/sbin/fonts-config, que lida com a configuração das fontes. Para obter mais informações sobre esse script, consulte sua página de manual (man fonts-config ).

O procedimento é o mesmo para fontes de bitmap, fontes TrueType e OpenType, e fontes Type1 (PostScript). Todos esses tipos de fonte podem ser instalados em qualquer diretório.

O X.Org contém dois sistemas de fontes completamente diferentes: o antigo sistema de fontes centrais X11 e o recém-criado sistema Xft e fontconfig. As seções a seguir descrevem brevemente esses dois sistemas.

16.2.1. Fontes centrais X11

Atualmente, o sistema de fontes centrais X11 suporta não apenas fontes de bitmap, mas também fontes escaláveis, como fontes Type1, TrueType e OpenType. Fontes escaláveis só são suportadas sem suavização e renderização de subpixel, e o carregamento de fontes escaláveis grandes com glifos para muitos idiomas pode levar bastante tempo. As fontes Unicode também são suportadas, mas seu uso pode ser lento e exigir mais memória.

O sistema de fontes centrais X11 tem algumas fraquezas inerentes. Ele está desatualizado e não pode mais ser estendido de forma significativa. Embora ele possa ser mantido por motivos de compatibilidade retroativa, o sistema Xft e fontconfig mais moderno deve ser usado se for possível.

Para sua operação, o servidor X precisa saber quais fontes estão disponíveis e onde ele pode encontrá-las no sistema. Isso é tratado por uma variável FontPath, que contém o caminho para todos os diretórios de fontes de sistemas válidos. Em cada um desses diretórios, um arquivo chamado fonts.dir lista as fontes disponíveis nesse diretório. O FontPath é gerado pelo servidor X na inicialização. Ele procura um arquivo fonts.dir válido em cada uma das entradas FontPath no arquivo de configuração /etc/X11/xorg.conf. Essas entradas são encontradas na seção Files. Exiba o FontPath real com xset q. Esse caminho também pode ser modificado no tempo de execução com xset. Para adicionar outro caminho, use xset +fp <caminho>. Para remover um caminho indesejado, use xset -fp <caminho>.

Se o servidor X já estiver ativo, fontes recém-instaladas em diretórios montados poderão ser disponibilizadas com o comando xsetfp rehash. Esse comando é executado por SuSEconfig --module fonts. Como o comando xset precisa de acesso ao servidor X em execução, isso funciona apenas se SuSEconfig --module fonts for iniciado de um shell com acesso ao servidor X em execução. A maneira mais fácil de conseguir isso é adquirir permissões de root digitando su e a senha do root. su transfere as permissões de acesso do usuário que iniciou o servidor X para o shell do root. Para verificar se as fontes foram instaladas corretamente e estão disponíveis por meio do sistema de fontes centrais X11, use o comando xlsfonts para listar todas as fontes disponíveis.

Por padrão, o SUSE Linux Enterprise Desktop usa idiomas UTF-8. Dessa forma, fontes Unicode devem ser preferidas (nomes de fontes terminados com iso10646-1 na saída xlsfonts). Todas as fontes Unicode disponíveis podem ser relacionadas com xlsfonts | grep iso10646-1. Praticamente todas as fontes Unicode disponíveis no SUSE Linux Enterprise Desktop contêm pelo menos os glifos necessários para os idiomas europeus (anteriormente codificados como iso-8859-*).

16.2.2. Xft

Desde o início, os programadores do Xft verificaram se as fontes escaláveis com suavização eram bem suportadas. Se o Xft for usado, as fontes serão exibidas pelo aplicativo usando as fontes, não pelo servidor X como no sistema de fontes central X11. Dessa forma, o respectivo aplicativo tem acesso aos arquivos de fontes reais e controle total sobre como os glifos são exibidos. Isso constitui a base para a exibição correta do texto em vários idiomas. Acesso direto aos arquivos de fontes é bastante útil para embutir fontes para impressão para garantir que a impressão tenha a mesma aparência da saída da tela.

No SUSE Linux Enterprise Desktop, os dois ambientes de área de trabalho (KDE e GNOME), o Mozilla e muitos outros aplicativos já usam o Xft por padrão. O Xft já é usado por mais aplicativos do que o sistema de fontes central X11 antigo.

O Xft usa a biblioteca fontconfig para localizar fontes e influenciar a maneira como elas são exibidas. As propriedades do fontconfig são controladas pelo arquivo de configuração global /etc/fonts/fonts.conf. Configurações especiais devem ser adicionadas a /etc/fonts/local.conf e ao arquivo de configuração específico do usuário ~/.fonts.conf. Cada um desses arquivos de configuração fontconfig deve iniciar com

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>

e terminar com

</fontconfig>

Para adicionar diretórios para pesquisar fontes, acrescente linhas como as seguintes:

<dir>/usr/local/share/fonts/</dir>

Porém, isso geralmente não é necessário. Por padrão, o diretório específico do usuário ~/.fonts já está inserido em /etc/fonts/fonts.conf. Da mesma maneira, tudo o que você precisa fazer para instalar fontes adicionais é copiá-las para ~/.fonts.

Você também pode inserir regras que influenciam a aparência das fontes. Por exemplo, digite

<match target="font">
 <edit name="antialias" mode="assign">
  <bool>false</bool>
 </edit>
</match>

para desabilitar a suavização de todas as fontes ou

<match target="font">
 <test name="family">
  <string>Luxi Mono</string>
  <string>Luxi Sans</string>
 </test>
 <edit name="antialias" mode="assign">
 <bool>false</bool>
 </edit>
</match>

para desabilitar a suavização de fontes específicas.

Por padrão, a maioria dos aplicativos usa os nomes de fontes sans-serif (ou o equivalente sans), serif ou monospace. Essas não são fontes reais, mas somente aliás que são resolvidos para uma fonte adequada, dependendo da configuração de idioma.

Usuários podem facilmente adicionar regras para ~/.fonts.conf a fim de resolver esses aliás para suas fontes favoritas:

<alias>
 <family>sans-serif</family>
 <prefer>
  <family>FreeSans</family>
 </prefer>
</alias>
<alias>
 <family>serif</family>
 <prefer>
  <family>FreeSerif</family>
 </prefer>
</alias>
<alias>
 <family>monospace</family>
 <prefer>
  <family>FreeMono</family>
 </prefer>
</alias>

Como quase todos os aplicativos usam esses aliás por padrão, isso afeta praticamente todo o sistema. Dessa forma, você pode facilmente usar suas fontes favoritas praticamente em qualquer local, sem precisar modificar as configurações de fontes nos aplicativos individuais.

Use o comando fc-list para encontrar as fontes instaladas e disponíveis para uso. Por exemplo, o comando fc-list retorna uma lista de todas as fontes. Para descobrir quais das fontes escaláveis disponíveis (:scalable=true) contêm todos os glifos exigidos para hebraico (:lang=he), os nomes de fontes (family), o estilo (style), o peso (weight) e o nome dos arquivos que contêm as fontes, digite o seguinte comando:

fc-list ":lang=he:scalable=true" family style weight

A saída do comando pode ter a seguinte aparência:

Lucida Sans:style=Demibold:weight=200
DejaVu Sans:style=Bold Oblique:weight=200
Lucida Sans Typewriter:style=Bold:weight=200
DejaVu Sans:style=Oblique:weight=80
Lucida Sans Typewriter:style=Regular:weight=80
DejaVu Sans:style=Book:weight=80
DejaVu Sans:style=Bold:weight=200
Lucida Sans:style=Regular:weight=80

Parâmetros importantes podem ser consultados com fc-list:

Tabela 16.2. Parâmetros de fc-list

Parâmetro

Significado e valores possíveis

family

Nome da família da fonte, por exemplo, FreeSans.

foundry

Nome do fabricante da fonte, por exemplo, urw.

style

O estilo da fonte, como Medium, Regular, Bold, Italic ou Heavy.

lang

O idioma que a fonte suporta, por exemplo, de para alemão, ja para japonês, zh-TW para chinês tradicional ou zh-CN para chinês simplificado.

weight

O peso da fonte, como 80 para normal ou 200 para negrito.

slant

A inclinação, geralmente 0 para nenhum e 100 para itálico.

SETUP.ISS

O nome do arquivo que contém a fonte.

outline

true para fontes de bordas ou false para outras fontes.

scalable

true para fontes escaláveis ou false para outras fontes.

bitmap

true para fontes de bitmap ou false para outras fontes.

pixelsize

Tamanho de fonte em pixels. Em conexão com a fc-list, essa opção só faz sentido para fontes de bitmap.


16.3. Para obter mais informações

Instale os pacotes xorg-x11-doc e howtoenh para obter informações mais aprofundadas sobre o X11. Mais informações sobre o desenvolvimento do X11 podem ser encontradas na home page do projeto, em http://www.x.org.

Muitos dos drivers fornecidos com o pacote xorg-x11-driver-video são descritos em detalhes em uma página de manual. Por exemplo, se você usar o driver nv, encontre mais informações sobre ele em man 4 nv.

Informações sobre drivers de terceiros devem estar disponíveis em /usr/share/doc/packages/<nome_do_pacote>. Por exemplo, a documentação de x11-video-nvidiaG01 está disponível em /usr/share/doc/packages/x11-video-nvidiaG01 após a instalação do pacote.


SUSE Linux Enterprise Desktop Guia de Administração 11 SP3