X11
En esta página estoy guardando datos y técnicas que tienen que ver con programas funcionando sobre el sistema X11. Es una especie de batiburrillo éste sistema gráfico como nexo común.
Sumario
Enlaces y referencias
- Ref: How do I use X Resources?
- En el wiki de Debian:
- Ref: xinitrc
- Ref: Debian Desktop Environment Portal
Recetario
Validar xorg.conf
Una vez escrito el archivo xorg.conf.new
que queremos validar podemos invocar al servidor X de esta forma:
# X -config xorg.conf.new
aunque a partir de la versión 7.4 aparece una pantalla blanca que dificulta la depuración de errores; para evitar esto se puede emplear el parámetro -retro
.
Si aparece una pantalla con fondo blanco y gris con una X como cursor del ratón es que ha funcionado. Para salir de allí se debe pasar a la consola con Ctrl + Alt + F1
y pulsar Ctrl + C
para interrumpir el servidor gráfico.
Conceptos
xinit
El programa xinit se emplea para arrancar el entorno gráfico X en sistemas que no lo hacen directamente.
Su trabajo consiste en poner en marcha el servidor X y un primer cliente conectado a él; cuando dicho programa cliente termina xinit también finaliza el servidor gráfico.
El programa puede recibir los siguientes parámetros directos:
xinit [ [cliente] opciones ] [ -- [ servidor ] [display] ]
y los considera de esta forma:
- Si no recibe un programa cliente intenta con
- El archivo
$HOME/.xinitrc
o aquél indicado en la variable de entorno XINITRC. - Un terminal gráfico de esta forma
xterm -geometry +1+1 -n login
- El archivo
- Las opciones del programa cliente se usan con el programa indicado o con el que terminal predeterminado.
- Si no recibe un servidor gráfico (un programa que haga de tal) emplea
- El archivo
$HOME/.xserverrc
que ejecutará como un guión del shell. - El programa llamado
X
que espera encontrar en el entorno de ejecución del proceso (variable PATH).
- El archivo
- El display a conectar predeterminado es
:0
o el contenido en la variable de entorno DISPLAY.
Consideraciones especiales:
- Si se emplea el programa .xserverrc el servidor gráfico debe llamarse con la función exec para que no existan retardos en la comunicación y la puesta en marcha del cliente.
- Los programas llamados mediante el archivo .xinitrc deberían hacerlo en segundo plano (usando el carácter
&
) ya que en caso contrario atascarán el flujo de arranque al no poder comenzar otro hasta que ellos terminen, exceptuando aquél con el que vaya a interactuar el usuario como un gestor de ventanas o un terminal; estos deberían funcionar en primer plano ya que cuando xinit termine con este archivo acabará también con el servidor gráfico lo que provocará el fin abrupto de cualquier programa cliente. - Tanto el programa cliente como el programa servidor indicados en la línea de órdenes de xinit deberían ser una ruta absoluta o una relativa (aquella que comienza por
./
), ya que en caso contrario se asumen como parámetros y no como programas.
Lo siguiente es un ejemplo de archivo .xinitrc que fija algunas opciones del entorno gráfico, abre algunas utilidades como un reloj, un indicador de carga y un par de terminales gráficos, e invoca a un gestor de ventanas
xrdb -load $HOME/.Xresources xsetroot -solid gray & xclock -g 50x50-0+0 -bw 0 & xload -g 50x50-50+0 -bw 0 & xterm -g 80x24+0+0 & xterm -g 80x24+0-0 & twm
Todos los programas son lanzados en segundo plano excepto el primero (xrdb) que carga unos recursos en el entorno y que por tanto debe terminar su trabajo para que los demás los usen, y el último (twm) porque es el que permite manipular las ventanas al usuario y el que ofrece la sensación de sesión gráfica; cuando él termine ésta habrá acabado y se podrá terminar también el servidor gráfico.
XDMCP
XDMCP es un protocolo que permite establecer sesiones gráficas basadas en X-Windows entre clientes y servidores gráficos en una red.
Para tener acceso desde una sesión gráfica abierta puede emplearse el programa
$ Xnest -query 192.168.0.10 -geometry 1280x1024 :1
o lanzar el servidor gráfico diréctamente contra él como en
X -query 192.168.0.10
si no existe ya uno funcionado en la propia máquina.
Lista de errores que puede encontrarse:
- XDMCP fatal error
- Manager unwilling Host unwilling
- Cuando esto ocurre se debe a que el archivo
Xaccess
correspondiente (/etc/kde3/kdm/Xaccess por ejemplo) no contiene ninguna indicación sobre quién puede conectar vía XDMCP. Basta con configurarlo y reiniciar el gestor de entrada gráfico (kdm en este caso).
Tipografías
Las fuentes tipográficas se expresan en big points. Cada uno corresponde a un setentaydosavo de pulgada (1/72) por lo que corresponden a:
- 0.0139 pulgadas
- 0.3527 mm
De lo que deducimos que:
- 1 carácter a 20pt ocupa 7.05mm
- 80 caracteres a 20pt ocupan 564,32mm
Para determina cuánto espacio ocupa un texto con tamaño dado en milímetros en una pantalla hacemos:
tamaño_milímetros = numero_caracteres x tamaño_caracter x 0.3527
y para calcular el tamaño de punto necesario para contener un texto completo en un espacio limitado:
tamaño_milímetros x 0.3527 tamaño_caracter = --------------------------------------- numero_caracteres
Luego tenemos el factor de conversión entre unidades físicas (pulgadas, milímetros, puntos, ...) y unidades lógicas como los píxeles. En este caso necesitamos contar con el factor de resolución medido en dpi (Dots Per Inch) que nos indica que en cada pulgada están contenidos N píxeles.
Para obtener entonces los milímetros correspondientes a una medida en píxeles emplearemos:
mm = (pixels * 25.4) / dpi
y para lo contrario, para obtener los píxeles contenidos en una medida física como los milímetros:
pixels = (mm * dpi) / 25.4
Varios
Gtk
Marcadores
- Ref: Creating custom Files and Folder view in Ubuntu Netbook Remix (UNR) using Nautilus bookmarks for Gnome Users
- Ref: Nine things you should know about Nautilus
Existe un archivo en el directorio del usuario que contiene los marcadores de sitios que utilizan aplicaciones escritas bajo este entorno y que se llama ~/.gtk-bookmarks
El formato es simple: una línea por cada marcador y en cada línea dos campos separados por un primer espacio en blanco. El primer campo es el URL y el segundo la descripción que se muestra al usuario.
Ejemplo:
file:///home/victor/git git file:///home/victor/Imagenes Imagenes file:///home/victor/Descargas Descargas file:///home/victor/data data file:///home/victor/tmp tmp
No he podido encontrar documentación precisa sobre este tema. Es una de esas cosas que parece que han existido siempre y nadie parece haber tenido tiempo ni oportunidad para documentarlo en algún sitio.
Archivos .directory
Estos archivos contienen una descripción ampliada del directorio donde están situados de esta forma:
[Desktop Entry]
Name=Documentos
Comment=Documentos, hojas de cálculo y similares del usuario
Type=Directory
Icon=/usr/share/icons/docs-folder.png