Recuperar Adwaita, el tema por defecto de GNOME3

Introducción.

Hace unos días instalé GNU/Linux Ubuntu 11.04 en uno de mis portátiles.  Aburrido con Unity lo reemplacé con GNOME3 instalado desde repositorios.  También estuve experimentando con otros escritorios que son de mi agrado: XFCE y LXDE los cuales se instalaron de manera independiente y podían elegirse libremente desde el GDM.

Aparentemente cuando se desinstalaron algunos de los componentes de estos manejadores de escritorio adicionales, desinstalaron partes necesarias de GNOME3 haciendo que su tema se modificara y apareciera diferente. El tema de GTK3 perdido era Adwaita, el cual como se puede intuír es el tema por defecto que utiliza GNOME3 para desplegar su escritorio.

A continuación se detallan los breves pasos necesarias para recuperar el tema perdido e instruír a GNOME para que lo utilice por defecto.

Procedimiento.

Instalar o reinstalar el paquete faltante en el cual se encuentra el tema requerido.

$ sudo aptitude install gnome-themes-standard

Instalar GnomeTweak para realizar el ajuste del tema.

$ sudo aptitude install gnome-tweak-tool

Ejecutar gnome-tweak-tool y bajo la sección Interface del panel izquierdo, modificar las opciones GTK+ Theme y Cursor Theme para que utilicen a Adwaita.

Gnome Tweak Tool > Interface
Gnome Tweak Tool > Interface

Finalmente se deberá reiniciar la sesión de usuario para que los cambios en esta sean tenidos en cuenta.

Cambiar la ubicación de los botones de ventana en Ubuntu 10.04

Introducción.

Estoy bastante cómodo con la nueva ubicación de los botones de ventana (cerrar, minimizar y maximizar) que introdujo en abril de este año la nueva versión de GNU/Linux Ubuntu, la cual es similar a la utilizada por Mac OSX.  Sin embargo muchas personas prefieren los controles como estaban antes.  En mi caso algunos temas que he probado me modifican la posición y el orden de los botones y cuando regreso al tema personalizado quedan mal, así que me es necesario volver a ponerlos en su disposición habitual.

A continuación se detalla el procedimiento necesario para determinar el lado de la ventana en que deben aparecer los botones así como el orden de los mismos.

Procedimiento.

Opción #1: configuración estándar

Ejecutar desde una terminal (shell) o desde el diálogo de ejecución de aplicationes (ALT+F2) la siguiente instrucción.

$ /usr/bin/gconf-editor

Navegar a través del árbol de opciones y ubicar la siguiente ruta.

/apps/metacity/general

Configuración de los botones de ventana

Editar el contenido de la llave button_layout según el resultado que se desee.

  • Botones del lado izquierdo: minimize,maximize,close:menu
  • Botones del lado derecho: menu:minimize,maximize,close

Adicionalmente es posible determinar el orden de los botones con el simple reordenamiento de los mismos en la cadena de texto, así como incluír o no el ícono de menú en la ventana.

Las modificaciones a esta llave se pueden apreciar inmediatamente después de alterar su valor.

Opción #2: script de configuración.

Existe un método un tanto mas sencillo y menos flexible para realizar este cambio en la configuración de la apariencia de las ventanas y se basa en un script de terceros.  Para utilizarlo es necesario seguir estos pasos.

$ wget http://gtk-apps.org/CONTENT/content-files/123360-123360-Change%20Window%20Buttons.sh

$ chmod +x 123360-123360-Change Window Buttons.sh

$ ./123360-123360-Change Window Buttons.sh

Seleccionar la opción que corresponda con la disposición deseada.

Script para modificar la disposición de los botones de ventana

Enlaces.

Solventando el desconcertante problema del clic izquierdo en Flash bajo Ubuntu 10.04

Introducción.

Este desconcertante problema me empezó a suceder desde que actualicé mis equipos a la versión 9.10 de GNU/Linux Ubuntu, debido a este bug las aplicaciones desarrolladas en Flash perciben correctamente los eventos del ratón con la excepción del clic izquierdo, haciendo imposible en la mayoría de los casos utilizar la aplicación.  Esto se puede apreciar muy bien en sitios como YouTube donde no es posible presionar el botón de Play para iniciar la reproducción del video.

Una “solución” parcial.

Hasta hace poco la única solución que le había encontrado a este problema tan molesto era el hacer un clic derecho sobre el botón o área que deseaba activar y con el menú contextual desplegado hacer un clic izquierdo sobre el mismo lugar.  Con esto y por alguna extraña razón Flash recibe exitosamente el evento del ratón.  Esta aproximación funciona bien pero después del tercer uso se hace terriblemente dispendiosa.

El problema.

Todo parece indicar que el problema surge debido a cambios importantes en el GDK (GIMP Drawing Kit) de la librería de gráficos GTK (The Gimp ToolKit) sobre la cual se ha desarrollado GNOME.  Con esta actualización, probablemente desde la versión 2.18, se ha implementado algo llamado client-side windows que hace que las ventanas GDK se comporten diferente en contravía de lo que se conocía anteriormente.  En ese órden de ideas, el plugin de Flash debería ser actualizado según los nuevos supuestos para permitirle funcionar con estas versiones nuevas de GTK.

El motivo del problema resultó ser el mismo que hace unos meses encontré utilizando Eclipse.

Las posibles soluciones.

Según el registro del bug 410407 en el LaunchPad de Ubuntu, existen tres posibles soluciones al problema, que no eliminan las causas por si mismos pero que las solventan y permiten utilizar normalmente las aplicaciones basadas en Flash.

  1. Deshabilitar Compiz.
  2. Remover los plugins instalados de Flash (como flashplugin-nonfree y flashplugin-installer)  e instalar los provistos directamente por Adobe.
  3. Manipular la variable GDK_NATIVE_WINDOWS para forzar a GDK crear ventanas X11.

En mi opinión, la solución mas práctica es la número 3.  Ya que con esta solución no se pierden los efectos del Compiz ni es necesario descargar e instalar nuevos paquetes.

Implementación de la solución #3.

Desde una terminal (shell) o la ventana de ejecución de programas (ALT+F2) invoque la siguiente instrucción (sin el símbolo $ por supuesto).

$ gksudo gedit /usr/lib/nspluginwrapper/i386/linux/npviewer

Agregue la siguiente línea justo antes de la última, es decir, está nueva línea deberá convertirse en la antepenúltima línea del script.

export GDK_NATIVE_WINDOWS=1

El contenido resultante de este archivo en mi máquina especificamente es el siguiente.

#!/bin/sh
TARGET_OS=linux
TARGET_ARCH=i386
export GDK_NATIVE_WINDOWS=1
. /usr/lib/nspluginwrapper/noarch/npviewer

Reinicie el equipo o al menos su entorno grafico para tener en cuenta este nuevo valor de configuración del GDK.

Enlaces.

Problemas para instalar plugins de Eclipse en Ubuntu 9.10

Introducción.

Anoche instalé la nueva versión de Aptana Studio, un IDE para el desarrollo web basado en Eclipse. Aparentemente incluyeron algunos cambios drásticos frente a la versión anterior de la serie 1.x.

Instalación de plugins en Aptana 2.0
Instalación de plugins en Aptana 2.0

Durante la instalación de los plugins empecé a tener problemas: los botones de ciertas partes del proceso de instalación dejaron de funcionar a pesar de que los presionara correctamente, evitando que pudiera efectivamente completar el proceso de instalación.

El problema.

Aparentemente el problema no es de Aptana sino de algún tipo de conflicto entre el GTK incluído por la distribución de Linux Ubuntu 9.10 y Eclipse.

La solución.

La solución deberá ser que resuelvan el supuesto conflicto, ya sea la gente de GTK o los de Eclipse, sin embargo hay dos formas conocidas de evitar temporalmente este problema.

Solución #1: Enter.

La solución mas sencilla pero menos elegante, a pesar de que si funciona, es hacer clic sobre el botón que se desee presionar para asignarle el foco y presionar la tecla Enter para generar el evento.

Solución #2: Utilizar las ventanas nativas del GDK.

Para hacer esto es necesario no ejecutar AptanaStudio directamente sino crear un script con el siguiente contenido.

export GDK_NATIVE_WINDOWS=true
~/Aptana/2.0/AptanaStudio &

Obviamente la ruta del ejecutable (segunda línea) deberá personalizarse para adecuarse a su ubicación exacta en el ambiente que se esté instalando.

Enlaces.