domingo, 19 de junio de 2011

Integración de aplicaciones GTK+ en KDE



GTK+ o The GIMP Toolkit es un conjunto de bibliotecas multiplataforma para desarrollar interfaces gráficas de usuario (GUI), principalmente para los entornos gráficos GNOME, XFCE y ROX aunque también se puede usar en el escritorio de Windows, MacOS y otros.

Inicialmente fueron creadas para desarrollar el programa de edición de imagen GIMP, sin embargo actualmente se usan bastante por muchos otros programas en los sistemas GNU/Linux. Junto a Qt es una de las bibliotecas más populares para X Window System.

GTK+ se ha diseñado para permitir programar con lenguajes como C, C++, C#, Java, Ruby, Perl, PHP o Python.
Licenciado bajo los términos de LGPL, GTK+ es software libre y es parte del proyecto GNU.




Qt es una biblioteca multiplataforma ampliamente usada para desarrollar aplicaciones con una interfaz gráfica de usuario así como también para el desarrollo de programas sin interfaz gráfica como herramientas para la linea de comandos y consolas para servidores.

Qt es utilizada principalmente en Autodesk Maya, Dassault DraftSight, Google Earth, KDE, Adobe Photoshop Album, la Agencia Espacial Europea, Opie, Siemens,Volvo, Walt Disney Animation Studios Skype, Qt Extended, VLC media player, SamsungPhilips Panasonic VirtualBox y Mathematica

Es producido por la división de software Qt de Nokia, que entró en vigor después de la adquisición por parte de Nokia de la empresa noruega Trolltech, el productor original de Qt, el 17 de junio de 2008.Nokia anuncio que va a detener sus desarrollos en Symbian para usar la plataforma de Microsoft para sus telefonos inteligentes en Febrero de 2011. En marzo del mismo año, anunciaron la adquisición de las licencias comerciales de QT por Digia PLC, aunque Nokia va a continuar como la fuerza de desarrollo principal atras de la librería.

Qt es utilizada en KDE, un entorno de escritorio para sistemas como GNU/Linux o FreeBSD, entre otros. Qt utiliza el lenguaje de programación C++ de forma nativa, adicionalmente puede ser utilizado en varios otros lenguajes de programación a través de bindings.

Funciona en todas las principales plataformas, y tiene un amplio apoyo. El API de la biblioteca cuenta con métodos para acceder a bases de datos mediante SQL, así como uso de XML, gestión de hilos, soporte de red, una API multiplataforma unificada para la manipulación de archivos y una multitud de otros para el manejo de ficheros, además de estructuras de datos tradicionales.

Distribuida bajo los términos de GNU Lesser General Public License (y otras), Qt es software libre y de código abierto.




Los usuarios de KDE al uzar cualquier aplicación que utilice las librerias GTK+ notan que su aspecto no concuerda con el estilo visual de KDE que está basado en las librerías Qt
Además del aspecto visual la aplicación no se integra al 100% con las funciones que puede realizar en conjunto con el sistema y con las aplicaciones nativas de KDE.
Para lograr que se integren  al máximo, se hace uso de varias herramientas, temas y estilo. 




Integración visual en KDE

Integrar las aplicaciones GTK+ en el entorno KDE para que se vean visualmente coherentes con el resto del sistema, es muy sencillo y fácil, y cada día que pasa es mas fácil.
La mejor opción para llevar a acabo la integración visual, es usando los paquetes:
oxygen-gtk, kde-config-gtk-style y gtk-qt-engine

oxygen-gtk es una copia del tema oxygen de kde para las aplicaciones GTK+. Su objetivo principal es asegurar la coherencia visual entre las aplicaciones GTK+ y Qt que se ejecutan en kde. Oxygen-gtk lo que hace es seleccionar los : colores, iconos y tipografías realizadas para gtk, siendo visualmente casi imposible reconocer a primera vista que se trata de una aplicación GTK+, pareciendo una aplicación basada en Qt.

kde-config-gtk-style es la aplicación que nos aparece en el centro de control (systemsettings) para poder seleccionar el estilo oxygen-gtk.

gtk-qt-engine, es el programa que genera el script (gtk-qt-engine.rc.sh) necesario para la selección de oxygen-gtk, en cada inicio de sesión de kde




Instalación de Oxygen-Gtk

Como siempre hacemos en este blog y con la ayuda de synaptic instalamos los siguientes paquetes y todas sus dependencias: gtk2-engines-oxygen, kde-config-gtk-style y gtk-qt-engine (en el momento de escribir este manual al paquete gtk-qt-engine no se encuentra en la rama testing, los usuarios de testing pueden continuar sin dicho paquete, pues luego crearemos el script manualmente.) [Ya no hace falta generar el script, pues ya esta solucionado el error]

Ya solo son necesarios instalar estos tres paquetes:
gtk2-engines-oxygen
gtk3-engines-oxygen
kde-config-gtk-style



Después de instalar los paquetes nos dirigimos a la configuración del sistema: Menu K > Preferencias del sistema.


Una vez abierto nos parece el centro de control de kde.


Nos dirigimos a: Apariencia de las aplicaciones


Aparece la siguiente ventana


Y nos dirigimos al submenu Apariencia GTK+ en el apartado Estilos GTK+, seleccionamos el estilo de widget: oxygen-gtk y el apartado Tipografía GTK+, seleccionamos: Usar mis tipografías KDE en las aplicaciones GTK+ para finalilzar pulsamos en Aplicar y cerramos la ventana.



A partir de ahora las aplicaciones Gtk+ ya aparecen como si fuesen de KDE. Pero lo mejor es cerrar KDE y entrar de nuevo para que los cambios surtan efectos.



Algunas Capturas de pantalla.

Algunas Capturas de pantalla de aplicaciones Gtk+ con entorno gráfico KDE

Synaptic entorno GTK+

Synaptic apariencia oxygen-gtk
Nautilus entorno GTK+
Nautilus  apariencia oxygen-gtk
Iceweasel entorno GTK+

Iceweasel apariencia oxygen-gtk




=================================
Error no se aplican los cambios, no funciona.

Parece ser que los usuarios de Debian Squeeze (stable, en el momento de escribir este manual, no tienen problemas para aplicar los cambios y que estos surtan efectos.)

Sin embargo para los usuarios de Debian Wheeze (testing) y Debian Sid (Unstable), en el momento de escribir este manual les da problema, porque al pulsar en aplicar no se genera el script necesario para que los cambios surtan efectos.

Solución

Generaremos nosotros manualmente el script para que los cambios surtan efectos. (mientras los desarrolladores corrigen el bug).

Lo primero es situarnos en la carpeta oculta .kde que se encuentra en nuestra carpeta personal en mi caso particular es en:  /home/diego/.kde desde Dolphin

Para ver la carpetas ocultas desde Dolphin pulsamos en el menú:  Ver > Mostrar los archivos ocultos.


Una ves que podemos ver los archivos ocultos, buscamos la carpeta .kde


una vez localizada la carpeta oculta .kde, entramos en ella y vemos una serie de carpetas


de todas ellas nos interesa la que se llama env (es normal que en muchos casos no aparezca dicha carpeta, tan solo tienes que crear una carpeta nueva con nombre env)


entramos en la carpeta que tiene que estar vacía, o en algunos casos con algunos ficheros, menos el que nos interesa a nosotros, dependiendo de como tengamos configurado nuestro sistema y de si previamente teníamos la carpeta env



Ahora vamos a crear el fichero que nos falta, para ello pulsamos con el botón derecho del ratón y en el menú contextual que nos aparece seleccionamos Crear nuevo > Archivo de texto....


y le ponemos el siguiente nombre: gtk-qt-engine.rc.sh



Una vez creado el fichero que estará vacío lo editamos con nuestro editor de textos favorito, botón derecho del ratón encima del fichero, seleccionamos Abrir con y elegimos kwrite.

y le copiamos y pegamos el siguiente contenido:

#!/bin/bash

# Make sure our customised gtkrc file is loaded.
export GTK2_RC_FILES=/home/diego/.gtkrc-2.0-kde

guardamos los cambios y cerramos.

Observamos como este fichero hace referencia a otro fichero oculto de nuestra carpeta personal llamada .gtkrc-2.0-kde (que hace referencia a la tipografía por defecto de kde) si dicho fichero no lo tenemos por el motivo que sea, pues lo creamos igual que hicimos antes con gtk-qt-engine.rc.sh pero en nuestra carpeta personal. (en mi caso particular es: /home/diego)


pero con el contenido de .gtkrc-2.0-kde en mi caso particular es el siguiente:


# This file was written by KDE
# You can edit it in the KDE control center, under "GTK Styles and Fonts"

include "/usr/share/themes/oxygen-gtk/gtk-2.0/gtkrc"

style "user-font"
{
    font_name="DejaVu Sans"
}

gtk-theme-name="oxygen-gtk"
gtk-font-name="DejaVu Sans 10"



Una vez finalizado todo el proceso podemos comprobar que hemos generado bien el o los ficheros gtk-qt-engine.rc.sh y .gtkrc-2.0-kde y que se carga al inicio de kde. Para ello nos dirigimos a panel de control (systemsettings) Arranque y apagado


y observamos como en la sección Arranque, en el apartado archivo de script, se encuentra el fichero gtk-qt-engine.rc.sh que generamos antes.





















.








6 comentarios:

Oscar dijo...

Gracias Diego por la entrada, apliqué la guía en testing y esta funcionando muy bien.

Saludos.bobil

Usuario_Debian dijo...

Hola Oscar.

Me alegra muchísimo ver que te he podido ayudar.

Saludos.

Abejo Sid dijo...

Te re agradezco, ayer tuve que reinstalar mi debian y me estaba quemando el cerebro tratando de ver por que no me actualizaba al aplicar el cambio de estilo

Yoyo dijo...

A pesar de que ya estamos a 2012 y esto fue publicado en Junio del 2011, acabo de instalar Debian Testing (Wheezy) con KDE 4.7.4 y me ha venido de perlas el tutto, ahora se ven perfectas las aplicaciones GTK en KDE

Muchas gracias ;-)

gerardho07 dijo...

Hola.
Pues muchas gracias por este tuto, me funciona para Linux Mint Debian Edition UP4 KDE4.7. La única aplicación que no se integra a KDE a pesar de instalar el gtk-engines-oxygen es el Gestor de Actualizaciónes de LMDE, espero me puedan ayudar.
Gracias !

reisilver dijo...

Gracias me sirvió la información para integrar aplicaciones GTK en KDE , utilizo linux mint Debian con KDE , se agradece tu aporte , ahora mi escritorio se ve mejor que antes.