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 sob o ambiente de trabalho GNOME
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 gdm
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. The X trivia
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

The X Window System on the Debian system is based on the source from X.Org. As of July 2009, they are X11R7.1(etch), X11R7.3(lenny), X11R7.3(squeeze) and X11R7.4(sid).

7.1. Pacotes chave

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

Tabela 7.1. Lista de (meta)pacotes chave para o X Window

(meta)pacote popcon tamanho descrição
xorg * I:43 80 bibliotecas do X, um servidor X, um conjunto de fonts e um grupo de clientes X básicos e utilitários (meta-pacote)
xserver-xorg * V:30, I:51 228 conjuntos completos do servidor X e sua configuração
xbase-clients * V:3, I:47 132 colecção variada de clientes X
x11-common * V:41, I:92 568 infraestrutura do sistema de ficheiros para o Sistema X Window
xorg-docs * I:6 1956 documentação variada para a suite de software X.Org
menu * V:28, I:52 2060 gera um menu Debian a partir de todas as aplicações com item de menu
gksu * V:23, I:46 540 frontend Gtk+ para o su(1) ou sudo(8)
menu-xdg * I:47 76 converte a estrutura do menu Debian para a estrutura de menu xdg do freedesktop.org
xdg-utils * V:16, I:46 300 utilitários para integrar o ambiente de trabalho disponibilizado pelo freedesktop.org
gnome-desktop-environment * I:29 44 ambiente de trabalho GNOME standard (meta-pacote)
kde-standard * I:3 36 núcleo do ambiente de trabalho KDE (metapacote)
xfce4 * I:4 40 Xfce ambiente de trabalho leve (meta-pacote)
lxde-core * I:2 36 LXDE ambiente de trabalho leve (meta-pacote)
fluxbox * V:0.9, I:2 4424 Fluxbox: pacote para um gestor de janelas X altamente configurável e de baixos recursos.

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

7.2. Definir o ambiente de trabalho

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.

You can setup a full desktop environment such as GNOME, KDE, Xfce, or LXDE, from the aptitude under the task menu.

[Dica] Dica

Task menu may be out of sync with the latest package transition state under Debian unstable/testing environment. In such situation, you need to deselect some (meta)packages listed under aptitude(8) task menu to avoid package conflicts. When deselecting (meta)packages, you must select certain packages providing their dependencies manually to avoid them deleted automatically.

You may alternatively setup a simple environment manually just with a X window manager such as Fluxbox.

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

7.2.1. Menu Debian

Debian menu system provides a general interface for both text- and X-oriented programs with update-menus(1) from the menu package. Each package installs its menu data in the "/usr/share/menu/" directory. See "/usr/share/menu/README".

7.2.2. Menu Freedesktop.org

Each package which is compliant to Freedesktop.org's xdg menu system installs its menu data provided by "*.desktop" under "/usr/share/applications/". Modern desktop environments which are compliant to Freedesktop.org standard use these data to generate their menu using the xdg-utils package. See "/usr/share/doc/xdg-utils/README".

7.2.3. Menu Debian sob o ambiente de trabalho GNOME

In order to obtain access to the traditional Debian menu under GNOME desktop environment, you must install the menu-xdg package, click "System" → "Preference" → "Main Menu", and check the box for "Debian".

[Dica] Dica

Você pode precisar de fazer semelhante para outros ambientes de desktop modernos que são compatíveis com o standard Freedesktop.org.

7.3. A relação servidor/cliente

The X Window System is activated as a combination of the server and client programs. The meaning for the words server and client with respect to the words local and remote requires attention here.

Tabela 7.2. Lista de terminologia de servidor/cliente

tipo descrição
Servidor X um programa que corre numa máquina local ligado ao mostrador e dispositivos de entrada do utilizador.
cliente X um programa que corre numa máquina remota que processa dados e fala com o servidor X.
aplicação servidor um programa que corre numa máquina remota que processa dados e fala com os clientes.
aplicação cliente um programa que corre numa máquina local ligado ao mostrador e dispositivos de entrada do utilizador.

7.4. O servidor X

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

7.4.1. A (re)configuração do servidor X

[Nota] Nota

X server (post-lenny) is rewritten to use more information from standardized OS services such as HAL and D-bus, for its configuration than that from "/etc/X11/xorg.conf". So contents in "/etc/X11/xorg.conf" are getting less. You may need to work around transitional problems of X server.

O seguinte (re)configura um servidor X ao gerar um novo ficheiro "/etc/X11/xorg.conf" usando o dexconf(1).

# dpkg-reconfigure --priority=low x11-common
# dpkg-reconfigure --priority=low xserver-xorg

Se editou manualmente este ficheiro "/etc/X11/xorg.conf" mas deseja que ele seja actualizado automaticamente outra vez, corra o seguinte comando.

# sudo dpkg-reconfigure -phigh xserver-xorg

Please check your X configuration with respect to the specification of your monitor carefully. For the large high resolution CRT monitor, it is a good idea to set the refresh rate as high as your monitor can handle (85 Hz is great, 75 Hz is OK) to reduce flicker. For the LCD monitor, slower standard refresh rate (60Hz) is usually fine due to its slow response.

[Nota] Nota

Tenha cuidado para não usar uma taxa de refrescamento muito alta que possa causar falha fatal do hardware do seu monitor.

7.4.2. Os métodos de ligaçã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).

Tabela 7.3. Lista de métodos de ligação ao servidor X

método pacote popcon tamanho utilizador encriptação uso pertinente
comando xhost xbase-clients * V:3, I:47 132 não verificado não obsoleto
comando xauth xbase-clients * V:3, I:47 132 verificado não ligação local via pipe
comando ssh -X openssh-client * V:52, I:99 2104 verificado sim ligação de rede remota
gestor de display do GNOME gdm * V:22, I:33 16548 verificado no(XDMCP) ligação local via pipe
gestor de display do KDE kdm * V:8, I:11 5510 verificado no(XDMCP) ligação local via pipe
gestor de display do X xdm * V:0.7, I:1.8 780 verificado no(XDMCP) ligação local via pipe
gestor de display do WindowMaker wdm * V:24, I:84 1992 verificado no(XDMCP) ligação local via pipe
gestor de display do LTSP ldm * V:0.02, I:0.09 392 verificado sim ligação de rede SSH remota (cliente ténue)

[Atenção] Atenção

Do not use remote TCP/IP connection over unsecured network for X connection unless you have very good reason such as use of encryption. A remote TCP/IP socket connection without encryption is prone to the eavesdropping attack and is disabled by default on the Debian system. Use "ssh -X".

[Atenção] Atenção

Do not use XDMCP connection over unsecured network either. It sends data via UDP/IP without encryption and is prone to the eavesdropping attack.

[Dica] Dica

You can dare to enable remote TCP/IP connection by setting "DisallowTCP=false" in "/etc/gdm/gdm.conf" to override "/usr/share/gdm/defaults.conf" and by removing "-nolisten" from lines found by "find /etc/X11 -type f -print0 | xargs -0 grep nolisten", if you are in the fully secured environment.

[Dica] Dica

LTSP significa Linux Terminal Server Project.

7.5. Iniciando o X Window System

The X Window System is usually started as an X session which is the combination of an X server and connecting X clients. For the normal desktop system, both of them are executed on a workstation.

A sessão X é iniciada com o seguinte.

  • comando startx iniciado a partir da linha de comandos
  • One of the X display manager daemon programs *dm started from the end of the start up script in "/etc/rc?.d/" ("?" corresponding to the runlevel) directory
[Dica] Dica

The start up script for the display manager daemons checks the content of the "/etc/X11/default-display-manager" file before actually executing themselves. This ensures to have only one X display manager daemon program activated.

[Dica] Dica

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

Essentially, all these programs execute the "/etc/X11/Xsession" script. Then the "/etc/X11/Xsession" script performs run-parts(8) like action to execute scripts in the "/etc/X11/Xsession.d/" directory. This is essentially an execution of a first program which is found in the following order with the exec builtin command.

  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.

This process is affected by the content of "/etc/X11/Xsession.options". The exact programs to which these "/usr/bin/x-*" commands point, are determined by the Debian alternative system and changed by "update-alternatives --config x-session-manager", etc.

7.5.1. Iniciar uma sessão X com o gdm

gdm(1) lets you select the session type (or desktop environment: Secção 7.2, “Definir o ambiente de trabalho”), and language (or locale: Secção 8.3, “O locale”) of the X session from its menu. It keeps the selected default value in "~/.dmrc" as the following.

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

7.5.2. Personalizar a sessão X (método clássico)

On a system where "/etc/X11/Xsession.options" contains a line "allow-user-xsession" without preceding "#" characters, any user who defines "~/.xsession" or "~/.Xsession" is able to customize the action of "/etc/X11/Xsession" by completely overriding the system code. The last command in the "~/.xsession" file should use form of "exec some-window/session-manager" to start your favorite X window/session managers.

7.5.3. Personalizar a sessão X (método novo)

Aqui estão alguns métodos de personalizar a sessão X sem sobrepor completamente o código do sistema como em cima.

  • O gestor de écran gdm pode seleccionar uma sessão específica e defini-la como o argumento de "/etc/X11/Xsession".
  • O ficheiro "~/.xsessionrc" é executado como parte do processo de arranque. (independente do ambiente de trabalho)
  • O ficheiro "~/.gnomerc" é executado como parte do processo de arranque. (apenas ambiente GNOME)
  • O software de gestão de sessão baseado em GUI pode usar o ficheiro "~/.gnome2/session", etc.

7.5.4. Ligar um cliente X remoto via SSH

A utilização de "ssh -X" activa uma ligação segura de um servidor X local a um servidor de aplicações remoto.

Set "X11Forwarding" entries to "yes" in "/etc/ssh/sshd_config" of the remote host, if you want to avoid "-X" command-line option.

Arrancar o servidor X na máquina local.

Abrir um xterm na máquina local.

Correr o ssh(1) para estabelecer ligação com um site remoto com o seguinte.

nome_local @ localhost $ ssh -q -X nome_de_login@domínio.máquina_remota
Palavra-passe:

Correr um comando de aplicação X, ex. "gimp", no site remoto com o seguinte.

nome_de_login @ máquina_remota $ gimp &

Este método pode mostrar o resultado de um cliente X remoto como se ele estivesse ligado localmente através de um socket de domínio UNIX local.

7.5.5. Terminal X seguro via Internet

Secure X terminal via the Internet, which displays remotely run entire X desktop environment, can easily achieved by using specialized package such as ldm. Your local machine becomes a secure thin client to the remote application server connected via SSH.

Se você deseja adicionar uma funcionalidade semelhante ao seu gestor de écran gdm normal, crie um script de shell executável em "/usr/local/bin/ssh-session" como o seguinte.

#!/bin/sh -e
# Based on gdm-ssh-session in gdm source (GPL)
ZENITY=$(type -p zenity)
TARGETHOST=$($ZENITY --width=600 \
--title "Host to connect to" --entry \
--text "Enter the name of the host you want to log in to as user@host.dom:")
TARGETSESSION=$($ZENITY --width=600 --height=400 \
--title "Remote session name" --list --radiolist --text "Select one" \
--column " " --column "Session" --column "description" --print-column 2 \
TRUE "/etc/X11/Xsession" "Debian" \
FALSE "/etc/X11/xinit/Xclients" "RH variants" \
FALSE "gnome-session" "GNOME session" \
FALSE "xterm" "Safe choice" \
FALSE "rxvt" "Safe choice" \
FALSE "gnome-terminal" "Safe choice")
echo "Connecting to "$TARGETHOST" with $TARGETSESSION"
/usr/bin/ssh -A -X -T -n "$TARGETHOST" "$TARGETSESSION"
#SSH_ASKPASS=/usr/bin/ssh-askpass /usr/bin/ssh -A -X -T -n "$TARGETHOST" "$TARGETSESSION"

Adicionar seguimentos a "/etc/dm/Sessions/ssh.desktop".

[Desktop Entry]
Encoding=UTF-8
Name=SSH
Comment=Esta sessão regista-o numa máquina remota usando ssh
Exec=/usr/local/bin/ssh-session
Type=Application

7.6. Fonts (tipos de letra) para o X Window

Fontconfig 2.0 was created to provide a distribution independent library for configuring and customizing font access in 2002. Debian after squeeze uses Fontconfig 2.0 for its font configuration.

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

Tabela 7.4. Tabela de pacotes para suportar fonts do sistema X Window

pacote popcon tamanho descrição
xfonts-utils * V:23, I:71 516 Programas utilitários de fonts do Sistema X Window
libxft2 * V:44, I:74 148 Xft, uma biblioteca que liga aplicações X com a biblioteca de rasterização de fonts FreeType
libfreetype6 * V:58, I:87 740 FreeType biblioteca de rasterização de fonts 2.0
fontconfig * V:21, I:73 472 Fontconfig, uma biblioteca de configuração de fonts genérica -- binários de suporte
fontconfig-config * I:81 440 Fontconfig, uma biblioteca de configuração de fonts genérica -- dados de configuração

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

"The Penguin and Unicode" is a good overview of modern X Window System. Other documentations at http://unifont.org/ should provide good information on Unicode fonts, Unicode-enabled software, internationalization, and Unicode usability issues on free/libre/open source (FLOSS) operating systems.

7.6.1. Fonts (tipos de letra) básicas

Existem 2 tipos principais de fonts de computador.

  • Fonts bitmap (boas para rasterização de baixa resolução)
  • Fonts outline/stroke (boas para rasterização de alta resolução)

While scaling of bitmap fonts causes jugged image, scaling of outline/stroke fonts produces smooth image.

Bitmap fonts on the Debian system are usually provided by compressed X11 pcf bitmap font files having their file extension ".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:18, I:66 4632 Nimbus Sans L Nimbus Roman No9 L Nimbus Mono L URW (tamanho compatível com Adobe)
gsfonts-x11 * I:30 116 Nimbus Sans L Nimbus Roman No9 L Nimbus Mono L Suporte a X font com fonts PostScript Type 1.
t1-cyrillic * I:1.9 5008 Free Helvetian Free Times Free Courier URW extenso (tamanho compatível com Adobe)
lmodern * V:2, I:16 45644 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 * I:11 200 Arial Times New Roman Courier New Microsoft (tamanho compatível com Adobe) (Isto instala dados não-livres)
ttf-liberation * I:43 1724 Liberation Sans Liberation Serif Liberation Mono Liberation Fonts project (tamanho compatível com Microsoft)
ttf-freefont * V:10, I:26 4204 FreeSans FreeSerif FreeMono GNU freefont ((tamanho compatível com Microsoft)
ttf-dejavu * I:77 68 DejaVu Sans DejaVu Serif DejaVu Sans Mono DejaVu, Bitstream Vera com cobertura Unicode
ttf-dejavu-core * I:72 2592 DejaVu Sans DejaVu Serif DejaVu Sans Mono DejaVu, Bitstream Vera com cobertura Unicode (sans, sans-negrito, serif. serif-negrito, mono, mono-negrito)
ttf-dejavu-extra * I:69 5788 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:4 16060 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.

7.6.2. Fonts (tipos de letra) adicionais

O aptitude(8) ajuda-o a encontrar fonts adicionais facilmente.

  • A lista de pacotes curta sob "Tarefas" → "Localização"
  • A lista de pacotes lisa filtrada de dados de fonts com regex em debtag: "~Gmade-of::data:font"
  • A lista de pacotes lisa filtrada de pacotes de fonts BDF (bitmap) com regex no nome do pacote: "~nxfonts-"
  • A lista de pacotes lisa filtrada de pacotes de fonts TrueType (contorno) com regex no nome do pacote: "~nttf-"

Since Free fonts are sometimes limited, installing or sharing some commercial TrueType fonts is an option for a Debian users. In order to make this process easy for the user, some convenience packages have been created.

  • ttf-mathematica4.1
  • ttf-mscorefonts-installer

You'll have a really good selection of TrueType fonts at the expense of contaminating your Free system with non-Free fonts.

7.6.3. fonts CJK

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

Tabela 7.7. Tabela de palavras chave usadas em nomes de fonts CJK para indicar os tipos de fonts.

tipo de font nome de font Japonesa nome de font Chinesa nome de font Coreana
sans-serif gothic, ゴチック hei, gothic dodum, gulim, gothic
serif mincho, 明朝 song, ming batang

Font name such as "VL PGothic" with "P" is a proportional font which corresponds to the fixed width "VL Gothic" font.

For example, Shift_JIS code table comprises 7070 characters. They can be grouped as the following.

  • JIS X 0201 single-byte characters (191 characters, a.k.a. half-width characters)
  • JIS X 0208 double-byte characters (6879 characters, a.k.a. full-width characters)

Double-byte characters occupy double width on console terminals which uses CJK fixed width fonts. In order to cope with such situation, Hanzi Bitmap Font (HBF) File with file extension ".hbf" may be deployed for fonts containing single-byte and double-byte characters.

In order to save space for TrueType font files, TrueType font collection file with file extension ".ttc" may be used.

In order to cover complicated code space of characters, CID keyed PostScript Type 1 font is used with CMap files starting themselves with "%!PS-Adobe-3.0 Resource-CMap". This is rarely used for normal X display but used for PDF rendering etc. (see Secção 7.7.2, “aplicações utilitárias do X”).

[Dica] Dica

The multiple glyphs are expected for some Unicode code points due to Han unification. One of the most annoying ones are "U+3001 IDEOGRAPHIC COMMA" and "U+3002 IDEOGRAPHIC FULL STOP" whose character positions differ among CJK countries. Configuring priority of Japanese centric fonts over Chinese ones using "~/.fonts.conf" should give peace of minds to Japanese.

7.7. Aplicações do X

7.7.1. Aplicações de escritório do X

Aqui está uma lista de aplicações de escritório básicas (OO é o OpenOffice.org).

Tabela 7.8. lista de aplicações X de escritório básicas

pacote popcon tamanho do pacote tipo descrição
openoffice.org-writer * V:21, I:41 26892 OO processador de texto
openoffice.org-calc * V:21, I:40 20524 OO folha de cálculo
openoffice.org-impress * V:18, I:40 4208 OO apresentação
openoffice.org-base * V:16, I:39 10708 OO gestão de base de dados
openoffice.org-draw * V:18, I:40 10720 OO editor de gráficos vectoriais (desenho)
openoffice.org-math * V:17, I:40 2712 OO editor de fórmulas/equações matemáticas
abiword * V:6, I:10 4776 GNOME processador de texto
gnumeric * V:5, I:11 7860 GNOME folha de cálculo
gimp * V:12, I:44 13560 GTK editor de gráficos bitmap (pintura)
inkscape * V:15, I:32 87436 GNOME editor de gráficos vectoriais (desenho)
dia-gnome * V:1.4, I:2 576 GNOME editor de fluxogramas e diagramas
planner * V:0.4, I:4 6704 GNOME gestão de projectos
kword * V:0.6, I:1.5 5334 KDE processador de texto
kspread * V:0.6, I:1.6 8792 KDE folha de cálculo
kpresenter * V:0.5, I:1.3 2877 KDE apresentação
kexi * V:0.2, I:1.6 7625 KDE gestão de base de dados
karbon * V:0.6, I:1.4 2403 KDE editor de gráficos vectoriais (desenho)
krita * V:0.6, I:1.6 11822 KDE editor de gráficos bitmap (pintura)
kchart * V:0.8, I:1.9 2503 KDE program de desenho de grafos e gráficos
kformula * V:0.4, I:1.3 2065 KDE editor de fórmulas/equações matemáticas
kplato * V:0.15, I:1.4 5978 KDE gestão de projectos

7.7.2. aplicações utilitárias do X

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

Tabela 7.9. Lista de aplicações X utilitárias básicas

pacote popcon tamanho do pacote tipo descrição
evince * V:26, I:38 1116 GNOME visualizador de documentos (pdf)
okular * V:4, I:6 3408 KDE visualizador de documentos (pdf)
evolution * V:16, I:34 4724 GNOME Gestor de Informações Pessoais (groupware e email)
kontact * V:1.3, I:8 1326 KDE Gestor de Informações Pessoais (groupware e email)
scribus * V:0.5, I:3 26888 KDE editor de disposição de páginas do ambiente de trabalho
glabels * V:0.16, I:0.7 1148 GNOME editor de etiquetas
kbarcode * V:0.05, I:0.3 2180 KDE aplicação de códigos de barras e impressão de etiquetas
gnucash * V:0.7, I:2 5748 GNOME contas pessoais
homebank * V:0.09, I:0.4 1092 GTK contas pessoais
kmymoney2 * V:0.06, I:0.5 144 KDE contas pessoais
xsane * V:5, I:36 748 GTK frontend para digitalizador (scanner)

[Cuidado] Cuidado

The poppler-data package (previously non-free, see Secção 11.3.1, “Ghostscript”) needs to be installed for evince and okular to display CJK PDF documents using Cmap data (Secção 7.6.3, “fonts CJK”).

[Nota] Nota

Installing softwares such as scribus (KDE) on GNOME desktop environment are quite acceptable since corresponding functionality is not available under GNOME desktop environment. But installing too many packages with duplicated functionalities clutter your menu.

7.8. The X trivia

7.8.1. Mapas de teclas e mapas de botões do apontador (rato) no X

xmodmap(1) is a utility for modifying keymaps and pointer button mappings in the X Window System. To get the keycode, run xev(1) in the X and press keys. To get the meaning of keysym, look into the MACRO definition in "/usr/include/X11/keysymdef.h" file (x11proto-core-dev package). All "#define" statements in this file are named as "XK_" prepended to keysym names.

7.8.2. Clientes X Clássicos

Most traditional X client programs, such as xterm(1), can be started with a set of standard command line options to specify geometry, font, and display.

They also use the X resource database to configure their appearance. The system-wide defaults of X resources are stored in "/etc/X11/Xresources/*" and application defaults of them are stored in "/etc/X11/app-defaults/*". Use these settings as the starting points.

The "~/.Xresources" file is used to store user resource specifications. This file is automatically merged into the default X resources upon login. To make changes to these settings and make them effective immediately, merge them into the database using the following command.

$ xrdb -merge ~/.Xresources

Veja x(7) e xrdb(1).

7.8.3. O emulador de terminal X - xterm

Saiba tudo sobre o xterm(1) em http://dickey.his.com/xterm/xterm.faq.html.

7.8.4. Correr clientes X como root

[Atenção] Atenção

Never start the X display/session manager under the root account by typing in root to the prompt of the display manager such as gdm because it is considered unsafe (insecure), even when you plan to perform administrative activities. The entire X architecture is considered insecure if run as root. You must always use the lowest privilege level possible, like a regular user account.

Maneiras fáceis de correr um cliente X particular, ex. "foo" como root é usar sudo(8) etc. como o seguinte.

$ sudo foo &
$ sudo -s
# foo &
$ gksu foo &
$ ssh -X root@localhost
# foo &
[Cuidado] Cuidado

O uso de ssh(1) só para este objectivo como em cima é um desperdício de recursos.

De modo que o cliente X se ligue ao servidor X, por favor note o seguinte.

  • Values of the old user's "$XAUTHORITY" and "$DISPLAY" environment variables must be copied to the new user's ones.
  • O ficheiro apontado pelo valor da variável de ambiente "$XAUTHORITY" tem de ser legível pelo novo utilizador.

The gksu package (popcon: V:23, I:46) is a specialized GTK+ GUI package for gaining the root privileges. It can be configured to use su(1) or sudo(8) as its backend depending on the "/apps/gksu/sudo-mode" gconf key. You can edit gconf key using gconf-editor(1) (menu: "Applications" → "System Tools" → "Configuration Editor").