Capítulo 7. O Sistema X Window

Índice

7.1. Pacotes chave
7.2. Definir o ambiente de trabalho
7.2.1. Menu Debian
7.2.2. Menu Freedesktop.org
7.2.3. Menu Debian a partir do menu Freedesktop.org
7.3. A relação servidor/cliente
7.4. O servidor X
7.4.1. A (re)configuração do servidor X
7.4.2. Os métodos de ligação do servidor X
7.5. Iniciando o X Window System
7.5.1. Iniciar uma sessão X com o gdm3
7.5.2. Personalizar a sessão X (método clássico)
7.5.3. Personalizar a sessão X (método novo)
7.5.4. Ligar um cliente X remoto via SSH
7.5.5. Terminal X seguro via Internet
7.6. Fonts (tipos de letra) para o X Window
7.6.1. Fonts (tipos de letra) básicas
7.6.2. Fonts (tipos de letra) adicionais
7.6.3. fonts CJK
7.7. Aplicações do X
7.7.1. Aplicações de escritório do X
7.7.2. aplicações utilitárias do X
7.8. As trivialidades do X
7.8.1. Mapas de teclas e mapas de botões do apontador (rato) no X
7.8.2. Clientes X Clássicos
7.8.3. O emulador de terminal X - xterm
7.8.4. Correr clientes X como root

O Sistema X Window no sistema Debian é baseado na fonte do X.Org.

Existem alguns (meta)pacotes disponibilizados para facilitar a instalação.


Para as bases do X, veja X(7), o manual do utilizador LDP XWindow.

Um ambiente de trabalho é geralmente uma combinação de um gestor de janelas X, um gestor de ficheiros e um conjunto de programas utilitários compatíveis.

Você pode configurar um ambiente de trabalho completo como o GNOME, KDE, Xfce, ou LXDE, a partir do aptitude sob o menu de tarefas.

[Dica] Dica

O menu de tarefas pode estar fora de sincronismo com o estado de transição de pacotes mais recente sob os ambientes Debian unstable/testing. Em tal situação, você precisa de des-seleccionar alguns (meta)pacotes listados sob o menu tarefas do aptitude(8) para evitar conflitos de pacotes. Quando des-seleccionar (meta)pacotes, você tem de seleccionar manualmente certos pacotes que disponibilizam as suas dependências para evitar que eles sejam apagados automaticamente.

Alternativamente você pode configurar um ambiente simples manualmente apenas com um gestor de janelas X como o Fluxbox.

Veja Window Managers for X para o guia do gestor do X window e do ambiente de trabalho.

O sistema de menu Debian disponibiliza uma interface geral para ambos programas orientados a texto e X com o update-menus(1) do pacote menu. Cada pacote instala os seus dados de menu no directório "/usr/share/menu/". Veja "/usr/share/menu/README".

O X Window System é activado como uma combinação de programas servidor e cliente. Aqui o significado das palavras servidor e cliente com respeito às palavras local e remoto requer atenção.


Os servidores X modernos têm a Extensão de Memória Partilhada MIT e comunicam com os seus clientes X locais usando a memória partilhada local. Isto faz uma passagem directa à rede transparente de canal de comunicação inter-processos do Xlib e ganha performance para grandes imagens.

Veja xorg(1) para informação do servidor X.

Existem várias maneiras de fazer um "servidor X" (lado do monitor) aceitar ligações de um "cliente X" (lado da aplicação).


[Atenção] Atenção

Não use ligação TCP/IP remota sobre redes inseguras para ligação X a menos que tenha uma boa razão como o uso de encriptação. Uma ligação socket TCP/IP remota sem encriptação é inclinada a ataques de escuta e está desactivada por predefinição no sistema Debian. Use "ssh -X".

[Atenção] Atenção

Também não use ligação XDMCP sobre rede insegura. Envia os dados via UDP/IP sem encriptação e é inclinado a ataques de escuta.

[Dica] Dica

LTSP significa Linux Terminal Server Project.

O X Window System é geralmente iniciado como uma sessão X a qual é a combinação de um servidor X e clientes X ligados. Para o sistema de ambiente de trabalho normal, ambos são executados numa estação de trabalho.

A sessão X é iniciada com o seguinte.

  • comando startx iniciado a partir da linha de comandos

  • Um dos programas daemon de gestor de ecrã X *dm arrancado a partir do fim do script de arranque no directório "/etc/rc?.d/" ("?" correspondendo ao runlevel)

[Dica] Dica

O script de arranque para os daemons de gestão de ecrã verifica o conteúdo do ficheiro "/etc/X11/default-display-manager" mesmo antes de executar os próprios. Isto assegura que se tem apenas um programa daemon de gestor de ecrã X activado.

[Dica] Dica

Veja Secção 8.3.5, “O locale específico apenas sob X Window” para as variáveis de ambiente iniciais do gestor de écran X.

Essencialmente, todos estes programas executam o script "/etc/X11/Xsession". Então o script "/etc/X11/Xsession" executa run-parts(8) como acção para executar os scripts no directório "/etc/X11/Xsession.d/". Isto é essencialmente uma execução de um primeiro programa o qual é encontrado na seguinte ordem com o comando embutido exec.

  1. O script especificado como o argumento de /etc/X11/Xsession" pelo gestor de display X, se estiver definido.

  2. O script "~/.xsession" ou "~/.Xsession", se estiver definido.

  3. O comando "/usr/bin/x-session-manager", se estiver definido.

  4. O comando "/usr/bin/x-window-manager". se estiver definido.

  5. O comando "/usr/bin/x-terminal-emulator", se estiver definido.

Este processo é afectado pelo conteúdo de "/etc/X11/Xsession.options". Os programas exactos para os quais estes comandos "/usr/bin/x-*" apontam são determinados pelo sistema de alternativas Debian e modificados pelo "update-alternatives --config x-session-manager", etc.

O gdm3(1) permite-lhe seleccionar o tipo de sessão (ou ambiente de trabalho: Secção 7.2, “Definir o ambiente de trabalho”), e linguagem (ou locale: Secção 8.3, “O locale”) da sessão X a partir do seu menu. Mantêm o valor predefinido seleccionado em "~/.dmrc" como se segue.

[Desktop]
Session=default
Language=pt_PT.UTF-8

O Fontconfig 2.0 foi criado para disponibilizar uma biblioteca independente da distribuição para configurar e personalizar o acesso a tipos de letra em 2002. Debian após squeeze usa Fontconfig 2.0 para a sua configuração de tipos de letra.

Os suportes de font no X Window System podem ser resumidos como se segue.


Você pode verificar informação de configuração de fonts pelo seguinte.

  • "xset q" para caminho das fonts do núcleo do X11

  • "fc-match" para a font predefinida do fontconfig

  • "fc-list" para fonts disponíveis do fontconfig

[Dica] Dica

"O Pinguim e o Unicode" é uma boa visão geral do X Window System moderno. Outra documentação em http://unifont.org/ deverá disponibilizar boas informações sobre tipos de letra Unicode, software capaz de Unicode, internacionalização, e problemas da utilização de Unicode em sistemas operativos free/libre/open source (FLOSS).

Existem 2 tipos principais de fonts de computador.

  • Fonts bitmap (boas para rasterização de baixa resolução)

  • Fonts contorno/stroke (boas para rasterização de alta resolução)

Enquanto que o dimensionar de fonts de mapas de bits causa imagem distorcida, o dimensionar de fonts de contorno/curso produz imagem suave.

As fontes de mapa de bits no sistema Debian são geralmente disponibilizadas por ficheiros de fonts bitmap pcf do X11 comprimidos com a sua extensão de ficheiro ".pcf.gz".

As fonts de contorno no sistema Debian são disponibilizadas pelo seguinte.

  • Ficheiros de font Type 1 PostScript tendo a sua extensão de ficheiro ".pfb" (ficheiro de font binário) e ".afm" (ficheiro de font métrica).

  • Ficheiros font TrueType (ou OpenType) geralmente tendo a sua extensão de ficheiro ".ttf".

[Dica] Dica

OpenType é destinado a substituir ambas TrueType e PostScript Type 1.

Tabela 7.5. Tabela de fonts PostScript Type 1 correspondentes

pacote font popcon tamanho font sans-serif font serif font monospace fonte da font
PostScript N/D N/D Helvetica Times Courier Adobe
gsfonts V:215, I:723 4632 Nimbus Sans L Nimbus Roman No9 L Nimbus Mono L URW (tamanho compatível com Adobe)
gsfonts-x11 I:205 68 Nimbus Sans L Nimbus Roman No9 L Nimbus Mono L Suporte a X font com fonts PostScript Type 1.
t1-cyrillic I:28 4834 Free Helvetian Free Times Free Courier URW extenso (tamanho compatível com Adobe)
lmodern V:16, I:162 32873 LMSans* LMRoman* LMTypewriter* fonts PostScript e OpenType escaláveis baseadas em Computer Modern (do TeX)

Tabela 7.6. Tabela de fonts correspondentes a TrueType

pacote font popcon tamanho font sans-serif font serif font monospace fonte da font
ttf-mscorefonts-installer V:2, I:101 124 Arial Times New Roman Courier New Microsoft (tamanho compatível com Adobe) (Isto instala dados não-livres)
fonts-liberation I:466 2122 Liberation Sans Liberation Serif Liberation Mono Liberation Fonts project (tamanho compatível com Microsoft)
fonts-freefont-ttf V:167, I:321 10720 FreeSans FreeSerif FreeMono GNU freefont ((tamanho compatível com Microsoft)
fonts-dejavu I:91 54 DejaVu Sans DejaVu Serif DejaVu Sans Mono DejaVu, Bitstream Vera com cobertura Unicode
fonts-dejavu-core V:57, I:101 2882 DejaVu Sans DejaVu Serif DejaVu Sans Mono DejaVu, Bitstream Vera com cobertura Unicode (sans, sans-negrito, serif. serif-negrito, mono, mono-negrito)
fonts-dejavu-extra I:93 6430 N/D N/D N/D DejaVu, Bitstream Vera com cobertura Unicode (oblíquo, itálico, negrito-oblíquo, negrito-itálico, condensado)
ttf-unifont I:29 13155 N/D N/D unifont GNU Unifont, com todo o código de caracteres imprimíveis em Unicode 5.1 Basic Multilingual Plane (BMP)

[Dica] Dica

as fonts DejaVu são baseadas e um super conjunto da fonts Bitstream Vera.

Aqui estão alguns pontos chave que focam em fonts de caracteres CJK.


O nome de font como "VL PGothic" com o "P" é um font proporcional a qual corresponde à largura fixa da fonte "VL Gothic".

Por exemplo, a tabela de código Shift_JIS compreende 7070 caracteres. Eles podem ser agrupados como o seguinte.

  • caracteres de um byte JIS X 0201 (191 caracteres, a.k.a. caracteres de meia-largura)

  • caracteres de duplo byte JIS X 0208 (6879 caracteres, a.k.a. caracteres de largura-completa)

Os caracteres de duplo-byte ocupam o dobro da largura nos terminais de consola que usam fonts CJK de largura fixa. De modo a lidar com esta situação, pode ser implantado o Hanzi Bitmap Font (HBF) File com extensão de ficheiro ".hbf" para fonts que contêm caracteres de único-byte e duplo-byte.

De modo a poupar espaço para ficheiros de tipos de letra TrueType, pode ser usado o ficheiro de colecção de tipos de letra TrueType com a extensão de ficheiro ".ttc".

De modo a cobrir o código complicado do espaço dos caracteres, é usada uma font Type 1 PostScript com chave CID com ficheiros CMap que arrancam eles próprios com "%!PS-Adobe-3.0 Resource-CMap". Isto é raramente usado para o mostrador X normal mas é usado para renderização de PDF, etc. (veja Secção 7.7.2, “aplicações utilitárias do X”).

[Dica] Dica

Os múltiplos glifos são esperados para alguns pontos de código do Unicode devido à unificação do Han. Um dos mais chatos são "U+3001 IDEOGRAPHIC COMMA" e "U+3002 IDEOGRAPHIC FULL STOP" nos quais as posições dos caracteres diferem entre países CJK. Configurar a prioridade das fonts centrais Japonesas sobre as Chinesas usado o "~/.fonts.conf" deverá trazer alguma paz aos Japoneses.

Aqui está uma lista de aplicações utilitárias básicas que me chamaram a atenção.


[Cuidado] Cuidado

O pacote poppler-data (anteriormente não-livre), veja Secção 11.4.1, “Ghostscript”) precisa de ser instalado para o evince e okular para mostrar documentos PDF CJK usando dados Cmap (Secção 7.6.3, “fonts CJK”).

[Nota] Nota

Instalar softwares como o scribus (KDE) no ambiente de trabalho GNOME é aceitável porque a funcionalidade correspondente não está disponível no ambiente GNOME. Mas instalar demasiados pacotes com funcionalidades duplicadas desorganiza o seu menu.