Capítulo 7. El Sistema de ventanas X

Tabla de contenidos

7.1. Paquetes importantes
7.2. Configurando el entorno de escritorio
7.2.1. Menú de Debian
7.2.2. Menu de Freedesktop.org
7.2.3. Menú de Debian bajo el entorno de escritorio GNOME
7.3. La relación servidor/cliente
7.4. El servidor X
7.4.1. La (re)configuración del servidor X
7.4.2. Métodos de conexión al servidor X
7.5. Starting the X Window System
7.5.1. Starting X session with gdm
7.5.2. Customizing the X session (classic method)
7.5.3. Customizing the X session (new method)
7.5.4. Connecting a remote X client via SSH
7.5.5. Secure X terminal via the Internet
7.6. Fonts in the X Window
7.6.1. Basic fonts
7.6.2. Additional fonts
7.6.3. CJK fonts
7.7. X applications
7.7.1. X office applications
7.7.2. X utility applications
7.8. The X trivia
7.8.1. Keymaps and pointer button mappings in X
7.8.2. Classic X clients
7.8.3. The X terminal emulator — xterm
7.8.4. Running X clients as root

El sistema de ventanas X en un sistema Debian está basado en las fuentes de X.Org. Hasta Julio de 2009, estas son: X11R7.1(etch), X11R7.3(lenny), X11R7.3(squeeza) y X11R7.4(sid)

7.1. Paquetes importantes

Existen unos pocos meta-paquetes, que se proveen para facilitar la instalación

Tabla 7.1. Lista de meta-paquetes importantes para el sistema de ventanas X

meta-paquete popcon size description
xorg * I:50 56 Librerías de X, un servidor de X, un conjunto de fuentes y un grupo de clientes básicos de X y utilidades (metapaquete)
xserver-xorg * V:32, I:56 276 completo conjunto de herramientas para el servidor de X y su configuración
xbase-clients * V:9, I:54 140 variado surtido de clientes para X
x11-common * V:48, I:91 568 estructura de archivos y directorios para el sistemas de ventanas X
xorg-docs * I:10 5008 documentación miscelánea para el conjunto de programas de X.Org
xspecs * I:1.4 6504 Especificaciones técnicas del protocolo X, extensión y librería
menu * V:32, I:57 2028 genera el menu de Debian para todas las aplicaciones que lo requieran
gksu * V:26, I:51 176 Interfaz gráfica basada en GTK+ para su(1) o sudo(8)
menu-xdg * I:54 76 convierte la estructura del menu Debian a la estructura xdgde freedesktop.org
xdg-utils * V:13, I:49 256 utilidades para integrar el entorno de escritorio proveido por freedesktop.org
gnome-desktop-environment * I:32 20 Entorno de escritorio GNOME estándar(meta-paquete)
kde-core * I:9 NOT_FOUND Entorno de escritorio KDE base (meta-paquete)
xfce4 * I:5 48 Entorno de escritorio ligero Xfce(meta-paquete)
lxde-core * I:2 36 Entorno de escritorio ligero LXDE(meta-paquete)
fluxbox * V:1.2, I:3 4332 Fluxbox: paquete altamente configurable y manejador de ventanas ligero

Para aspectos básicos sobre el sistema X, refierase a X(7) y the LDP XWindow-User-HOWTO.

7.2. Configurando el entorno de escritorio

Un entorno de escritorio es usualmente una combinación de un manejador de ventanas, un administrador de archivos y un conjunto de programas utilitarios.

Usted puede configurar un entorno de escritorio completo como GNOME, KDE,Xfce, o LXDE, desde aptitude bajo el menu de tareas.

[Sugerencia] Sugerencia

El menu de tareas puede estar desincronizado con el último estado de transición de paquete bajo Debian en los entornos unstable/testing.En tal situación, usted necesita deseleccionar algunos meta-paquetes listados bajo el menu de tareas de aptitude(8) para evitar conflictos entre paquetes. Cuando se encuentre deseleccionando los meta-paquetes, debe seleccionar ciertos paquetes proveyendo sus dependencias manualmente para evitar que sean borrados en forma automática.

De forma alternativa, usted puede configurar un entorno de escritorio sencillo sólo con un manejador de ventanas como Fluxbox.

Para una lista de los manejadores de ventanas y escritorios disponibles para el sistema X puede visitar la guía de manejadores de ventanas para X.

7.2.1. Menú de Debian

El sistema de menu de Debian provee una interfaz general tanto para programas en modo texto como con interfaz gráfica mediante el comando update-menus(1) del paquete menu. Cada paquete instala la información del menu en el directorio /usr/share/menu. Véase "/usr/share/menu/README"

7.2.2. Menu de Freedesktop.org

Cada paquete que se encuentre conforme al sistema de menú de Freedesktop.org instala la información de sus menus con base en los archivos "*.desktop" bajo el directorio "/usr/share/applications". Los entornos de escritorio modernos que cumplen el estándar de Freedesktop.org toman esta información para generar sus menus usando el paquete xdg-utils. Véase "/usr/share/doc/xdg-utils/README"

7.2.3. Menú de Debian bajo el entorno de escritorio GNOME

Para obtener acceso al menú tradicional de Debian bajo el entorno de escritorio GNOME, debe instalar el paquete menu-xdg, y hacer click en "Sistema" -> "Preferencias" -> "Menu principal" y revisar la sección para "Debian"

[Sugerencia] Sugerencia

Es posible que deba seguir el mismo procedimiento para otros escritorio modernos que cumplen el estándar de Freedesktop.org

7.3. La relación servidor/cliente

El sistema de ventanas X se activa como una combinación de un servidor y un cliente. El significado para los términos servidor y cliente con respecto a los términos local y remoto requiere de atención en esta parte.

Tabla 7.2. Lista de terminología para servidor y cliente

type description
Servidor X un programa que se ejecuta sobre una máquina local que se encuentra conectada a la pantalla del usuario y a dispositivos de entrada
Cliente X un programa que se ejecuta en una máquina remota que procesa los datos y llamadas a el servidor X.
Servidor de aplicación un programa que se ejecuta en una máquina remota que procesa los datos y las llamadas a los clientes.
aplicación cliente un programa que se ejecuta sobre una máquina local que se encuentra conectada a la pantalla del usuario y a dispositivos de entrada

7.4. El servidor X

Véase xorg(1) para información sobre el servidor X

7.4.1. La (re)configuración del servidor X

[Nota] Nota

El servidor X (después de lenny) es reescrito para usar más información proveniente de servicios estándar del sistema operativo tales como HAL y D-bus, para su configuración a cambio de la proveniente de "/etc/X11/xorg.conf". Así que la información contenida en "/etc/X11/xorg.conf" es cada vez menos. Puede que sea necesario resolver algunos problemas en la transición de servidor X.

Los siguientes comandos (re)configuran un servidor X generando un nuevo archivo "/etc/X11/xorg.conf" usando dexconf(1).

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

Si tiene que editar manualmente el archivo "/etc/X11/xorg.conf" pero quisiera que este fuera actualizado automáticamente de nuevo, ejecute el siguiente comando:

# sudo dpkg-reconfigure -phigh xserver-xorg

Por favor revise cuidadosamente su configuración de servidor X con respecto a las especificaciones de su monitor. Para la más alta resolución en un monitor CRT, es una buena idea configurar la taza de refresco tan alta siempre y cuando su monitor pueda manejarla (85 Hz es lo ideal, 75 Hz está bien) con el objetivo de reducir el parpadeo. Para un monitor LCD, la taza de refresco estándar más baja (60 Hz) es usualmente la adecuada dada su baja respuesta.

[Nota] Nota

Sea cuidadoso en no usar tazas de refresco demasiado altas que puedan causar fallas graves a nivel del hardware de su monitor

7.4.2. Métodos de conexión al servidor X

Hay muchas maneras de obtener una instancia del "Servidor X" (lado de visualización) para aceptar conexiones de un "cliente de X" (lado aplicación).

Tabla 7.3. Lista de los métodos de conexión al servidor X

método package popcon size user cifrado uso pertinente
comando xhost xbase-clients * V:9, I:54 140 sin revisar no obsoleto
comando xauth xbase-clients * V:9, I:54 140 revisado no conexión local vía pipe
comando ssh -X openssh-client * V:54, I:99 2076 revisado si conexión remota por red
Gestor de entrada de GNOME gdm * V:31, I:43 15236 revisado no(XDMCP) conexión local vía pipe
Gestor de entrada de KDE kdm * V:10, I:13 4272 revisado no(XDMCP) conexión local vía pipe
Gestor de entrada de X xdm * V:0.8, I:2 688 revisado no(XDMCP) conexión local vía pipe
Gestor de entrada de WindowMaker wdm * V:29, I:84 1964 revisado no(XDMCP) conexión local vía pipe
Gestor de entrada de LTSP ldm * V:0.01, I:0.11 504 revisado si conexión SSH remota por red (cliente liviano)

[Aviso] Aviso

No use conexiones TCP/IP remotas bajo redes inseguras para conexiones con un servidor X a menos que tenga una muy buena razón tal como uso de cifrado. Un socket TCP/IP remoto sin encriptar es propenso a un ataque de tipo eavesdropping y se encuentra deshabilitado por defecto en el sistema Debian. Use "ssh -X".

[Aviso] Aviso

No use conexiones XDMCP sobre una red insegura. Estas envían los datos vía UDP/IP sin cifrar, siendo propenso a un ataque de tipo eavesdropping.

[Sugerencia] Sugerencia

Puede arriesgarse y habilitar las conexiones TCP/IP remotas configurando la opción "DisallowTCP=false" en el archivo "/etc/gdm/gdm.conf" para sobreescribir la configuración de "/usr/share/gdm/defauls.conf" y para remover la opción "-nolisten" de las líneas encontradas mediante "find /etc/X11 -type f -print0 | xargs -0 grep nolisten", si está en un entorno completamente seguro.

[Sugerencia] Sugerencia

LTSP significa Linux Terminal Server Project

7.5. Starting the 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.

The X session is started by the following.

  • startx command started from the command line
  • 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
[Sugerencia] Sugerencia

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.

[Sugerencia] Sugerencia

See Sección 8.3.5, “Specific locale only under X Window” for initial environment variables of the X display manager.

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. The script specified as the argument of "/etc/X11/Xsession" by the X display manager, if it is defined.
  2. The "~/.xsession" or "~/.Xsession" script, if it is defined.
  3. The "/usr/bin/x-session-manager" command, if it is defined.
  4. The "/usr/bin/x-window-manager" command, if it is defined.
  5. The "/usr/bin/x-terminal-emulator" command, if it is defined.

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. Starting X session with gdm

gdm(1) lets you select the session type (or desktop environment: Sección 7.2, “Configurando el entorno de escritorio”), and language (or locale: Sección 8.3, “The locale”) of the X session from its menu. It keeps the selected default value in "~/.dmrc" as the following.

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

7.5.2. Customizing the X session (classic method)

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. Customizing the X session (new method)

Here are new methods to customize the X session without completely overriding the system code as above.

  • The display manager gdm can select a specific session and set it as the argument of "/etc/X11/Xsession".
  • The "~/.xsessionrc" file is executed as a part of start up process. (desktop independent)
  • The "~/.gnomerc" file is executed as a part of start up process. (GNOME desktop only)
  • The GUI program based session management software may use the "~/.gnome2/session" file etc.

7.5.4. Connecting a remote X client via SSH

The use of "ssh -X" enables a secure connection from a local X server to a remote application server.

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

Start the X server on the local host.

Open an xterm in the local host.

Run ssh(1) to establish a connection with the remote site as the following.

localname @ localhost $ ssh -q -X loginname@remotehost.domain
Password:

Run an X application command, e.g. "gimp", on the remote site as the following.

loginname @ remotehost $ gimp &

This method can display the output from a remote X client as if it were locally connected through a local UNIX domain socket.

7.5.5. Secure X terminal via the 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.

If you want to add similar feature to your normal display manager gdm, create executable shell script at "/usr/local/bin/ssh-session" as the following.

#!/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"

Add followings to "/etc/dm/Sessions/ssh.desktop".

[Desktop Entry]
Encoding=UTF-8
Name=SSH
Comment=This session logs you into a remote host using ssh
Exec=/usr/local/bin/ssh-session
Type=Application

7.6. Fonts in the X Window

The font configuration on Debian system can be summarized with historical perspective as follows.

  • Each application used to require specific manual operation to configure installed fonts before woody.
  • Debian Font Manager (defoma) was created to automate this font configuration by providing a Debian specific glue layer in 2000.

    • Each font package publishes application independent font data to defoma.
    • Each application package uses these data to configure each installed font via its package script.
    • For X server, the actual program to configure TrueType fonts and CID fonts (as well as CMaps) was packaged as x-ttcidfont-conf.
  • Fontconfig 2.0 was created to provide a distribution independent library for configuring and customizing font access in 2002.

    • As of lenny release, almost all programs which access font data seem to use this system.

Font supports on X Window System can be summarized as follows.

Tabla 7.4. Table of packages to support X Window font systems

package popcon size description
xfonts-utils * V:35, I:71 472 X Window System font utility programs
libxft2 * V:44, I:75 148 Xft, a library that connects X applications with the FreeType font rasterization library
libfreetype6 * V:59, I:87 780 FreeType 2.0 font rasterization library
fontconfig * V:37, I:74 460 Fontconfig, a generic font configuration library — support binaries
fontconfig-config * V:28, I:82 416 Fontconfig, a generic font configuration library — configuration data
defoma * V:28, I:84 564 Debian Font Manager — automatic font configuration framework
x-ttcidfont-conf * I:43 156 TrueType and CID fonts configuration for X (with CJK support)

You can check font configuration information by the following.

  • "xset q" for core X11 font path
  • "fc-match" for fontconfig font default
  • "fc-list" for available fontconfig fonts
[Sugerencia] Sugerencia

"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.

[Sugerencia] Sugerencia

You should rely on fontconfig infrastructure to configure fonts on the Debian system. Debian Font Manager (defoma(1)) is only useful for font installation and X logical font description (XLFD) data registration.

7.6.1. Basic fonts

There are 2 major types of computer fonts.

  • Bitmap fonts (good for low resolution rasterization)
  • Outline/stroke fonts (good for high resolution rasterization)

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".

Outline fonts on the Debian system are provided by the following.

  • PostScript Type 1 font files having their file extension ".pfb" (binary font file) and ".afm" (font metrics file).
  • TrueType (or OpenType) font files usually having their file extension ".ttf".
[Sugerencia] Sugerencia

OpenType is intended to supersede both TrueType and PostScript Type 1.

Tabla 7.5. Table of corresponding PostScript Type 1 fonts

font package popcon size sans-serif font serif font monospace font source of font
PostScript N/A N/A Helvetica Times Courier Adobe
gsfonts * V:19, I:69 4792 Nimbus Sans L Nimbus Roman No9 L Nimbus Mono L URW (Adobe compatible size)
gsfonts-x11 * I:30 116 Nimbus Sans L Nimbus Roman No9 L Nimbus Mono L X font support with PostScript Type 1 fonts.
t1-cyrillic * I:2 4996 Free Helvetian Free Times Free Courier URW extended (Adobe compatible size)
lmodern * V:6, I:16 46180 LMSans* LMRoman* LMTypewriter* scalable PostScript and OpenType fonts based on Computer Modern (from TeX)

Tabla 7.6. Table of corresponding TrueType fonts

font package popcon size sans-serif font serif font monospace font source of font
ttf-mscorefonts-installer * I:11 196 Arial Times New Roman Courier New Microsoft (Adobe compatible size) (This installs non-free data)
ttf-liberation * I:41 1696 Liberation Sans Liberation Serif Liberation Mono Liberation Fonts project (Microsoft compatible size)
ttf-freefont * I:21 4232 FreeSans FreeSerif FreeMono GNU freefont (Microsoft compatible size)
ttf-dejavu * I:81 68 DejaVu Sans DejaVu Serif DejaVu Sans Mono DejaVu, Bitstream Vera with Unicode coverage
ttf-dejavu-core * I:61 2588 DejaVu Sans DejaVu Serif DejaVu Sans Mono DejaVu, Bitstream Vera with Unicode coverage (sans, sans-bold, serif, serif-bold, mono, mono-bold)
ttf-dejavu-extra * I:61 5772 N/A N/A N/A DejaVu, Bitstream Vera with Unicode coverage (oblique, italic, bold-oblique, bold-italic, condensed)
ttf-unifont * I:3 16060 N/A N/A unifont GNU Unifont, with all printable character code in Unicode 5.1 Basic Multilingual Plane (BMP)

[Sugerencia] Sugerencia

DejaVu fonts are based on and superset of Bitstream Vera fonts.

7.6.2. Additional fonts

aptitude(8) helps you find additional fonts easily.

  • The short package list under "Packages which depend on defoma" in the defoma package list
  • The short package list under "Tasks" → "Localization"
  • The filtered flat package list of font data with regex on debtag: "~Gmade-of::data:font"
  • The filtered flat package list of the BDF (bitmap) font packages with regex on package name: "~nxfonts-"
  • The filtered flat package list of the TrueType (outline) font packages with regex on package name: "~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. CJK fonts

Here are some key points focused on fonts of CJK characters.

Tabla 7.7. Table of key words used in CJK font names to indicate font types

font type Japanese font name Chinese font name Korean font name
sans-serif gothic, ゴチック hei, gothic dodu m, gulim, gothic
serif mincho, 明朝 so ng, ming ba tang

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 Sección 7.7.2, “X utility applications”).

[Sugerencia] Sugerencia

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. X applications

7.7.1. X office applications

Here is a list of basic office applications (OO is OpenOffice.org).

Tabla 7.8. List of basic X office applications

package popcon package size type description
openoffice.org-writer * V:24, I:46 26444 OO word processor
openoffice.org-calc * V:24, I:45 19804 OO spreadsheet
openoffice.org-impress * V:21, I:45 2908 OO presentation
openoffice.org-base * V:20, I:44 9028 OO database management
openoffice.org-draw * V:22, I:45 9188 OO vector graphics editor (draw)
openoffice.org-math * V:20, I:45 1496 OO mathematical equation/formula editor
abiword * V:5, I:8 8348 GNOME word processor
gnumeric * V:5, I:9 8520 GNOME spreadsheet
gimp * V:14, I:49 13476 GTK bitmap graphics editor (paint)
inkscape * V:17, I:30 61584 GNOME vector graphics editor (draw)
dia-gnome * V:1.9, I:4 620 GNOME flowchart and diagram editor
mergeant * V:0.17, I:0.2 1412 GNOME database management
planner * V:0.8, I:7 7468 GNOME project management
kword * V:1.2, I:2 3732(*) KDE word processor
kspread * V:1.2, I:2 8672(*) KDE spreadsheet
kpresenter * V:1.0, I:1.8 2108(*) KDE presentation
kexi * V:0.3, I:2 NOT_FOUND KDE database management
kivio * V:1.1, I:2 NOT_FOUND KDE flowchart and diagram editor
karbon * V:1.1, I:1.9 2884(*) KDE vector graphics editor (draw)
krita * V:1.2, I:2 12164(*) KDE bitmap graphics editor (paint)
kplato * V:0.2, I:1.9 6256(*) KDE project management
kchart * V:1.0, I:1.8 2688(*) KDE graph and chart drawing program
kformula * V:0.9, I:1.6 NOT_FOUND KDE mathematical equation/formula editor
kugar * V:0.9, I:1.6 NOT_FOUND KDE business quality report generator

7.7.2. X utility applications

Here is a list of basic utility applications which caught my eyes.

Tabla 7.9. List of basic X utility applications

package popcon package size type description
evince * V:28, I:42 1032 GNOME document(pdf) viewer
kpdf * V:7, I:13 NOT_FOUND KDE3 document(pdf) viewer
okular * V:3, I:5 3308 KDE4 document(pdf) viewer
evolution * V:23, I:39 10936 GNOME Personal information Management (groupware and email)
kontact * V:2, I:12 1508 KDE Personal information Management (groupware and email)
scribus * V:0.6, I:3 26864 KDE desktop page layout editor
glabels * V:0.2, I:0.8 1088 GNOME label editor
kbarcode * V:0.08, I:0.4 2176 KDE barcode and label printing application
gnucash * V:0.7, I:2 5912 GNOME personal accounting
homebank * V:0.09, I:0.4 904 GTK personal accounting
kmymoney2 * V:0.2, I:0.9 9524 KDE personal accounting
xsane * V:7, I:41 744 GTK scanner frontend
kooka * V:1.1, I:10 NOT_FOUND KDE scanner frontend

[Atención] Atención

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

[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. Keymaps and pointer button mappings in 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. Classic X clients

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

See x(7) and xrdb(1).

7.8.3. The X terminal emulator — xterm

Learn everything about xterm(1) at http://dickey.his.com/xterm/xterm.faq.html.

7.8.4. Running X clients as root

[Aviso] Aviso

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.

Easy ways to run a particular X client, e.g. "foo" as root is to use sudo(8) etc. as the following.

$ sudo foo &
$ sudo -s
# foo &
$ gksu foo &
$ ssh -X root@localhost
# foo &
[Atención] Atención

Use of ssh(1) just for this purpose as above is waste of resource.

In order for the X client to connect to the X server, please note the following.

  • Values of the old user's "$XAUTHORITY" and "$DISPLAY" environment variables must be copied to the new user's ones.
  • The file pointed by value of the "$XAUTHORITY" environment variable must be readable by the new user.

The gksu package (popcon: V:26, I:51) 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").