Cómo funciona la parte gráfica en linux : X window system, gestores de ventanas y entornos de escritorio
ref:
Entornos de escritorio http://es.wikipedia.org/wiki/Entorno_de_escritorio
Gestores de ventanas -> http://es.wikipedia.org/wiki/Gestor_de_ventanas
X.Org-> http://es.wikipedia.org/wiki/X.Org_Server
Freedesktop.org -> http://es.wikipedia.org/wiki/Freedesktop.org
Las bibliotecas gráficas en X
Para dibujar en pantalla cualquier cosa, el servidor X provee a los programadores de la biblioteca gráfica Xlib. Esta biblioteca provee de funciones de dibujo demasiado primitivas, y el realizar un entorno de ventanas con estas funciones se hace demasiado complicado, es por ésto que se han desarrollado
distintas bibliotecas gráficas basadas en Xlib, pero que proveen un conjunto mas rico y complejo de funciones que facilitan la tarea al programador y mejoran la estética de los programas gráficos.
Como primeros ejemplos se tuvo a la biblioteca Motif, que se utilizaba mucho en programas comerciales en los distintos UNIX. Motif visualmente es muy simple y a la vez no requiere de muchos recursos del equipo para funcionar con buena velocidad.
Con el tiempo comenzaron a aparecer proyectos alternativos, primero fue la versión libre de Motif llamada Lesstif, luego bibliotecas mas pulidas como XForms y finalmente Qt y GTK+.En las imágenes de abajo se pueden apreciar las diferencias visuales de Qt y GTK+ respectivamente.
Modelo de capas
Modelo de capas del entorno GNOME

Modelo de capas del entorno KDE

Lo único que cambia son las capas por encima del servidor X, y es por eso que es posible tener en un mismo equipo varios entornos gráficos y usar el que mas se ajuste a las necesidades del usuario, a diferencia de otros sistemas operativos que sólo poseen una opción.
Vemos que como capa inferior, se tiene al hardware, el cual interactúa con su capa inmediata superior, que en este caso es el servidor X, es decir que X se encarga de lidiar con las particularidades de cada
tarjeta de vídeo, manejar las funciones de red, y el dibujado básico en pantalla. Estas funciones de dibujado, X se las provee a su capa superior la cual dependerá del entorno gráfico que se esté manejando. En el caso de KDE por ejemplo, la capa superior a X es la biblioteca llamada Qt, ésta provee las funciones de armado de ventanas, movimiento de las mismas, y dibujado de botones, flechas, punteros, etc. las cuales son aprovechadas por la capa correspondiente a las kde-libs es decir,
a las bibliotecas de KDE dedicadas a dar una colección de funciones de construcción de cajas de diálogos
estándar, menúes, etc. a las aplicaciones KDE y al entorno KDE propiamente dicho.
En el caso del entorno gráfico GNOME el esquema de capas es muy similar al anterior
Lo interesante del modelo de capas, es que éstas son intercambiables: si por ejemplo se cambia la tarjeta de vídeo (la capa mas inferior), no es necesario tener que cambiar el resto del conjunto de programas, sólo basta con que la capa superior (el servidor X en este caso) pueda comunicarse
con la nueva capa de hardware para que todo funcione correctamente.
Otra ventaja es que si el desarrollo de las diferentes capas se realiza por diferentes grupos de personas, cuando se actualiza una de las capas el conjunto en su totalidad se actualiza automáticamente, si por ejemplo el equipo GNOME lanza su nueva versión de la biblioteca GTK+, solamente hará falta instalar esta nueva versión y el resto de los programas que conforman las otras capas no deberían tocarse,
quedando todo funcionando correctamente
Los gestores de ventanas. Historia y familias. GTK/Metacity/Gnome vs. Qt/Kwin/KDE
http://jmgv.wordpress.com/2008/06/03/gtk-vs-qt/
Metacity y Kwin los gestores de ventanas de GNOME y KDE
ENTORNOS DE ESCRITORIO
Pequeña introducción GNOME
ref -> http://foundation.gnome.org/
http://es.tldp.org/Manuales-LuCAS/doc-curso-salamanca-gnome/
GNOME, escrito con mayúsculas, es el acrónimo de GNU Network Object Model Environment, cuyo significado literal, gnomo en inglés, no es fruto de la casualidad.
Cuandose habla de GNOME, solemos referirnos a un escritorio muy popular entre las plataformas GNU/Linux. En realidad, es un proyecto mucho más amplio cuyos objetivos son ofrecer tanto un escritorio como un surtido completo de aplicaciones y una plataforma de desarrollo con la que generar aplicaciones integradas entre sí. Visitando la página
http://www.gnome.org/projects podemos comprobrar la variedad de proyectos relacionados con GNOME; desde LibXML, un analizador sintáctico, hasta Hipo, una aplicación para gestionar los contendidos de un iPod.
Su desarrollo comienza en agosto de 1997 con el objetivo de crear un escritorio completamente libre. Surge como némesis de KDE, cuyas herramientas gráficas, Qt, no tenían una licencia compatible con el
proyecto GNU en aquel momento. A la cabeza del proyecto aparecen dos jóvenes mexicanos, Miguel de Icaza y Federico Mena, quienes escogen como lenguaje principal de desarrollo C y como herramientas gráficas las librerías GTK+, desarrolladas en torno a The GIMP, un popular editor gráfico. La propuesta tuvo éxito, lo que se traduce, en el ámbito del Software Libre, en la formación de una activa
comunidad que lo mantiene en constante evolución.
La comunidad que participa en el desarrollo de GNOME se compone de programadores, desarrolladores, usuarios, diseñadores, traductores… distribuídos por todo el mundo que colaboran a través de
internet. Algunos trabajan de forma independiente y otros contratados o patrocinados por empresas, pero todas sus aportaciones se presentan de la misma forma y con el mismo derecho al desarrolló de la rama
principal, la que se publica a través de la página principal del proyecto (http://gnome.org) y es gestionada por la Fundación GNOME.
Esta versión oficial de GNOME, a la que nos referimos como la versión upstream, recoge las modificaciones aceptadas por la comunidad de desarrolladores acordes con los planteamientos que sirven de guía al proyecto. Los más característicos serían:
-
Libertad: Tanto el usuario como el desarrollador deben tener la última palabra sobre su escritorio, su software y su información.
-
Usabilidad y accesibilidad:
La prioridad en el desarrollo de aplicaciones es que sean fáciles de usar por todo tipo de personas. Ello se traduce en la existencia de una guía de diseño de interfaces (http://developer.gnome.org/projects/gup/hig/) que todas las aplicaciones que se quieran formar parte del proyecto deben respetar. -
Comunidad: Colaborar con GNOME implica participar en la comunidad GNOME.
Los usuarios que se acercan a GNOME se encuentran con un escritorio al que se le acusa de ser demasiado simple. Es famoso un comentario de Linus Torvalds llamando a los desarrolladores de GNOME “nazis del interfaz” por su empeño en priorizar la usabilidad frente la funcionalidad. Lo cierto, es que la crítica de Linus estaba justificada porque se dirigía a uno de los dos puntos más escabrosos del interfaz de GNOME, el diálogo de impresión; el otro es el diálogo para guardar un archivo.
Pero también hay que ser comprensivos con la situación, pues buscar un interfaz simple y usable implica encontrar qué es lo que realmente se usa y cómo poner a disposición de usuario lo que usa de una forma
evidente. Hay que pensar que si los miembros de GNOME han recogido como lema: “GNOME es gente”, lo importante es que el proyecto sea receptivo y se vaya adaptando a las exigencias del usuario conforme se van revelando. Así es que, el diálogo de impresión, ya puede ofrecer las funciones que en su día Linus reclamó, de hecho Tordvald se acaba de pasar a GNOME como entorno de trabajo http://www.linuxzone.es/2009/01/26/%C2%BFlinus-torvalds-se-pasa-a-gnome/
Fuera de la polémica respecto su simpleza, el escritorio GNOME sigue la metáfora de escritorio virtual tradicional. Una zona donde colocar iconos de cualquier tipo, paneles en los que anclar miniaplicaciones, menús para ejecutar diferentes programas, posibilidad de gestionar las diferentes aplicaciones, espacios virtuales… También existe una gama de aplicaciones suficiente para realizar las actividades diarias más
comunes sin romper la consistencia del ambiente gráfico; si bien es cierto, que la consistencia en cuanto el uso no es tan constate, ya que muchas distribuciones ofrecen en la configuración básica aplicaciones
que, sin formar parte del proyecto GNOME utilizan las mismas herramientas gráficas.
En general, es un escritorio muy recomendable para cualquier usuario. Aunque también es cierto que los
usuarios sin grandes pretensiones se sentirán felices con el planteamiento de GNOME por la sencillez con la que se pueden desarrollar las tareas básicas; que los usarios de nivel medio/alto pueden echar en falta opciones de configuración y que los usuarios realmente avanzados podrán aprovechar que sus aplicaciones incluyen la posibilidad de programar complementos para responder a sus necesidades fácilmente. Como siempre, que sea el escritorio adecuado para nosotros o no, dependerá de lo que busquemos, necesitemos o sepamos aprovechar.
A pesar de que el escritorio GNOME esté desarrollado en C y que tengamos un IDE muy bueno integrado como es Anjuta no es necesario que las aplicaciones lo estén igualmente. Actualmente, los lenguajes preferidos para el desarrollo de aplicaciones, o su mejora a través de complementos, son, además de C, Python y C# (a través de la plataforma Mono, una implementación libre de .NET). Pero también hay bindings a otros lenguajes como Java, Perl o Ruby.
Pequeña introducción KDE
KDE se basa en el principio de la personalización. Todos los
componentes de KDE pueden ser configurados en mayor o menor medida por
el usuario. Las opciones más comunes son accesibles en su mayoría desde
menús y diálogos de configuración. Los usuarios avanzados pueden optar
por editar los archivos de configuración manualmente, obteniendo en
algunos casos un mayor control sobre el comportamiento del sistema.
La apariencia de KDE es configurable en varios niveles. Tanto el gestor de ventanas (llamado KWin)
como los controles (botones, menús, etc.) utilizan “estilos”
intercambiables, que definen cada aspecto de su apariencia. Es por este
motivo que KDE no mantiene una única apariencia entre versiones, sino
que se opta por aquella más ampliamente aceptada en el momento de cada
nuevo lanzamiento.
La intención del proyecto KDE es la de crear un entorno de escritorio
que no se comporte de un modo predefinido, sino que permita al usuario
adecuar el sistema a su gusto y comodidad. Esto no impide que KDE
resulte fácil de usar para nuevos usuarios, detalle al que no se resta
importancia.
El proyecto fue iniciado en octubre de 1996 por el programador alemán Matthias Ettrich, quien buscaba crear una interfaz gráfica unificada para sistemas Unix. En sus inicios imitó a CDE (Common Desktop Environment), un entorno de escritorio utilizado por varios Unix.
Repaso a Gnome
Panel superior
Los menus> los iconos
Panel inferior
Iconos>zona de información> El intercambiador de escritorios
Ejercicios
1. Mover los paneles
2. Aumentar el tamaño de los paneles
3. Añadiendo utilidades al panel
4. Añadiendo un lanzador personalizado y cambiando icono
5. Añadiendo un conjunto de menus al panel
6. Moviendo las cosas en el panel
7. Añadiendo nuesvos escritorios
8. Añadiendo un conjunto de menus
9. Configurando la apariencia del panel
10. Wanda, el pececillo
Easter eggs
presionemos Alt+F2 para ejecutar un comando
Probemos escribiendo
gegls from outer space – para jugar a un clásico revisitado
y
free the fish – para liberar al pez
Una vez suelto el pez nadará por la pantalla. Para pararlo debemos reiniciar el panel de gnome. Cómo?
Presionamos Alt+F2 para abrire ejecutar el comando:
sudo killall gnome-panel
Veréis como se cierran y vuelven a abrir los paneles
El gestor de conexiones de red
Funcionamiento y configuración de una red
Los menús
1.Cambiando el orden y las aplicaciones de los menus
2. Lugares > Conectando a una carpeta compartida
3. Lugares > Conectando a un servidor FTP
4. Lugares > Conectando a un servidor SSH
5. Lugares > Añadiendo marcadores personalizados
Cambiando aplicaciones entre los distintos escritorios
Moviendo una aplicacion entre diferentes escritorios
Teclas rápidas
Cambio de aplicación – Alt+TAB
Cambio de escritorio – Ctrl+Alt+ flecha
Nautilus
El navegador de ficheros
1. Inspecionando ficheros y ficheros ocultos (Ctrl+H)
2. El panel lateral
3. Añadir lugares
3. Introducir rutas con el teclado
4. Uso de tabs
5. Copiar, pegar, mover, borrar
6. Sistema de permisos
7. Creación de ficheros y carpetas
8. Creando un CD o DVD
9. Creando una iso
10. Manejo de USB y unidades otras unidades removibles
11. Creando achivos comprimidos y descomprimiendolos
Customizacion de las vistas
1. Creando una carpeta y cambiandole el nombre
2. Variar el tamaño de la carpeta
3. Añadiendo labels
4. Cambiando el icono
5. Cambiando el fondo
Cambiando la apariencia del tema
Ssitema> Preferencias > Apariencia
Tema – Decoraciones de ventana
Fondo – Cambiando la imagen de fondo de pantalla
Tipografía – Mejorando el visionado y la accesibilidad
Interfaz – Modo de visionado de los menús
Efectos visuales – Impresionando a los amigos
Atajos de teclado
Sistema>Preferencias>combinación de teclas
Comportamiento de la sesión
Sistema>Preferencias>Sesiones
Aqui podremos configurar los servicios que se cargan al inicio del sistema, levantar y parar servicios y recordar los programas abiertos de una sesión para que se ejecuten en la siguiente
Aplicaciones principales
Principales aplicaciones de GNOME y configuración
Uso de gconf-editor
Alt+F2 y escribimos gconf-editor
Esto nos permitirá la configuración pormenorizada de todas las “keys” de los programas bajo gnome, es decir los parametros de las aplicaciones
Unidades y sopportes extraibles
Comportamientos por defecto cuando se introduce un soporte extraible
Aplicaciones preferidas
Aplicaciones por defecto para diversos programas
Y si todo falla?
Para volver a la configuracion por defecto, bastará con borrar los siguientes archivos dentro de la carpeta de usuario
config .gconf .gconfd .gnome2 .gnome2_private .metacity .gtkrc-2.0<br /><br />y reiniciar el xserver (CTRL+ALT+BACKSPACE)<br />
KDE
Instalando KDE
abrir terminal: sudo aptitude install kubuntu-desktop
Salir de la sesión
Seleccionar KDE como inicio de sesión