Archive for the 'Nueva versión' Category

Multilenguas y mas

domingo, noviembre 10th, 2013

Acabo de subir nuevas versiones de TabletPlayer, TabletLauncher y TabletWM. Se trata de pequeños retoques para que funcionen bien con otras lenguas que no sean inglés, y para mejorar la usabilidad.

En TabletPlayer, un reproductor de películas basado en MPlayer, lo que hice fue cambiar el tamaño de los botones de la interfaz de reproducción, poniéndolos de 64×64 pixels para que sean más cómodos de pulsar en una pantalla táctil. También cambié la interfaz de selección de fichero por una más amigable en pantallas táctiles, pues el filechooserdialog tiene los elementos muy pequeños y además exige hacer doble click, que en una pantalla táctil no es nada cómodo. Ahora se parece mucho más a una aplicación de tablet.

En el caso de TabletWM tuve que hacer un ajuste para que no fallase el gráfico de la batería si la lengua utiliza ‘,’ en lugar de ‘.’ como separador de decimales. Además, añadí unas pequeñas notas que explican como cambiar la lengua y la zona horaria, de manera que el formato de fecha y la hora se muestren correctamente.

Respecto a TabletLauncher, básicamente traduje las cadenas al castellano.

Como de costumbre, los cambios están disponibles en mi página web.

Compilacion condicional

domingo, octubre 27th, 2013

Acabo de subir una nueva versión de Autovala y otra de Cronopete.

En el caso de Autovala he añadido una opción importante, que es la compilación condicional: ahora es posible pasar defines al código de Vala, mediante -Ddefine=ON, para compile o no distintas partes del código. Además, también es posible hacer condicionales otras partes del código de Autovala, de manera que se pueda escoger que un programa se compile con soporte de GTK2 o GTK3, con o sin una biblioteca, etc.

Este soporte es bastante flexible, pero aún no puede hacer condicional la compilación de un programa completo. Eso lo dejo para otra versión.

En cuanto a Cronopete, básicamente he hecho algunas correcciones, tales como evitar un par de cuelgues al formatear un disco, o que monte automáticamente la unidad de backup en el arranque. Además, ahora el sistema de compilación utiliza Autovala, gracias precisamente al soporte de compilación condicional.

Como de costumbre, se puede bajar de mi página web.

Gestion de ventanas

jueves, septiembre 5th, 2013

El siguiente paso lógico en el desarrollo de mi tablet era, obviamente, un gestor de ventanas adecuado. Y es que, aunque hay cienes y cienes de ellos, ninguno se adapta a lo que yo busco, que es:

  • debe maximizar las ventanas por defecto, para que aprovechen siempre toda la pantalla
  • sin decoraciones, para aprovechar al máximo la pantalla
  • que se pueda manejar tanto desde teclado como desde una pantalla táctil

Al final me lié la manta a la cabeza y escribí mi propio gestor: TabletWM. Este gestor está basado en XCB, la biblioteca ligera para XWindows, y sigue, en lo que puede, los estándares ICCCM y EWMH.

Entre las características importantes está la capacidad de distinguir entre las ventanas de una misma aplicación y las de otras, permitiendo recorrer, por ejemplo, sólo las ventanas de GIMP, aunque haya otras aplicaciones lanzadas. La idea es simplificar el uso cuando se trabaja en una tablet.

Ahora sólo me falta crear un lanzador/gestor de aplicaciones, y ya tendré mi sistema tablet listo.

Transmission para WebTV y Submarine

domingo, julio 14th, 2013

Acabo de subir dos actualizaciones.

Por una parte he actualizado TransmissionBT para WebTV a la versión 5.4. Los cambios son dos: actualizado bFTPd a la versión 4.0, y una nueva versión de Submarine, el buscador de subtítulos.

Y precisamente Submarine es la otra actualización que hice: básicamente añadí una comprobación extra al bajar subtítulos, de manera que si la extensión no es .sub o .srt, no se baje ese fichero. Esto lo hice porque en una ocasión, por alguna extraña razón, encontraba un fichero de subtítulos, pero al bajarlo el servidor daba un error y bajaba un fichero HTML, pero el programa en sí lo daba por válido. Debido a eso, no probaba con otros servidores. Ahora, si al bajar un fichero el servidor hace algo raro y envía algo que no sean subtítulos, Submarine lo descartará y probará con otra fuente.

Nueva version de cronopete

domingo, junio 16th, 2013

Acabo de subir la versión 3.14 de cronopete, y la semana pasada subí la 3.13. Los cambios son pequeños, aunque importantes:

  • corregido un bug en el refresco de la pantalla al restaurar archivos: por alguna razón, con GTK 3.8, la interfaz no refrescaba la imagen correctamente al cambiar de carpeta, quedando parte de la pantalla en blanco hasta que el cursor pasaba por encima. Ahora debería funcionar correctamente.
  • corregido bug cuando el disco duro está lleno. Se trata de un bug curioso y sutil: si el disco se llenaba mientras se hacía un backup, se borraban backups antiguos para hacer sitio, tal y como cabe esperar. Pero si el disco se queda lleno al 100% justo al acabar un backup, cronopete era incapaz de comenzar un nuevo backup la siguiente vez, porque fallaba la creación de la carpeta en donde se almacenaría el backup. Ahora intenta liberar espacio en ese caso también.
  • corregido bug cuando el disco no tiene tabla de particiones: algunos discos externos vienen formateados sin una tabla de particiones (el sistema de ficheros ocupa todo el disco directamente, en lugar de haber una única partición con el sistema de ficheros dentro). Al pedir a cronopete que formatee esos discos, fallaba. Ahora debería funcionar ya.

Como de costumbre, se puede acceder en la sección de programas.

Autovala y Gedit (y Gnome 3.8)

domingo, abril 28th, 2013

Acabo de subir la versión 0.16 de Autovala. La gran novedad es la inclusión de un plugin para Gedit, que permite trabajar fácilmente con proyectos en Autovala.

Esta versión se puede considerar definitiva, así que a partir de ahora, en principio, y salvo que me envíen alguna idea loca y maravillosa que añadir, Autovala pasa a modo “mantenimiento”, subiendo sólo parches.

También actualicé mis extensiones de Gnome Shell para que funcionen con la versión 3.8, con lo que me considero libre para nuevos proyectos.

Hito en Autovala

domingo, abril 7th, 2013

Acabo de subir al repositorio la versión 0.10.0 de Autovala  y creo que supone un hito importante, porque con ella he cubierto todas las ideas iniciales que tenía. La principal, y más difícil, es la de incluir en un mismo proyecto un ejecutable y una biblioteca, y que ese ejecutable se enlace con dicha biblioteca, todo de manera automática y sencilla.

Ahora me queda descubrir como trabaja intltool-extract e intltool-merge con las entradas .desktop, para permitir la traducción sencilla en estos casos, y ver como mezclar ficheros .c con .vala. También la idea de integrarlo en Gedit, pero eso con mucha más calma.

Simplificando Vala y CMake

viernes, abril 5th, 2013

He estado tres semanas currando sin parar en mi trabajo-que-paga-las-facturas, y aunque no pude disfrutar ni findes ni vacaciones (¡Gracias, gracias, ministros que pusieron la fecha de entrega de los innterconecta para justo después de semana santa! ¡Así os salga un cardo en el sobaco!), sí pude aprovechar algunos ratos muertos en casita para hacer un proyectillo personal: Autovala.

La idea detrás de Autovala surgió de casualidad de una lista de correo: un usuario se quejaba de que trabajar con CMake era muy pesado, y que obligar a usarlo para los proyectos de la lista sólo conseguía reducir la cantidad de desarrolladores que estarían dispuestos a colaborar. Y la verdad es que tiene algo de razón: empezar un proyecto nuevo con CMake es una tarea realmente aburrida, por la sencilla razón de que es muy repetitiva.

Pero cuando una tarea es repetitiva… es ideal para que la haga una máquina. Así que mi idea fue: ¿por qué no dejar que sea el propio ordenador quien genere de manera automática los ficheros CMake?

Y esa es, precisamente, la idea detrás de Autovala: generar de manera automática todos los ficheros para CMake, en base a una serie de heurísticos. Así, por defecto, todos los ficheros .vala que haya en el directorio src (o subdirectorios dentro de él) se compilarán juntos para hacer un único binario. Además, añadirá automáticamente los paquetes necesarios para cada fichero, para lo que echa un vistazo a las directivas using del propio código. Lo mismo para otros elementos: por ejemplo, para los iconos comprobará qué tamaño tienen y, en base a ello, decidirá automáticamente en qué carpeta deben ir. Y más, mucho más.

Por supuesto, es posible añadir excepciones a mano para ajustar aquellas cosas en las que las reglas no funcionen bien; por ejemplo, si lo que queremos es generar una biblioteca, o si nuestro proyecto está compuesto de varios ejecutables. La ventaja en estos casos es que sólo hay que hacer eso: indicarle que queremos que sean dos, tres, o los que sean, ejecutables y donde buscar las fuentes; autovala seguirá haciendo el resto automáticamente (buscar paquetes necesarios, etc). Además, los cambios que haga el usuario se recuerdan, por lo que si se añaden o eliminan ficheros, basta con recrear el fichero de proyecto, y se tendrán en cuenta todas las excepciones hechas antes.

Obviamente Autovala no sirve para todos los proyectos, pero sí para la gran mayoría, que es lo interesante.

Clonando Elementary OS en Gnome Shell

domingo, febrero 24th, 2013

Pues eso es lo que he estado haciendo fundamentalmente este mes, porque poquito a poquito, slingshot_app_launcher para Gnome Shell ya funciona exactamente igual que la versión original de Elementary OS: no sólo permite escoger entre mostrar por categorías o todo junto, sino también buscar aplicaciones tecleando su nombre. Además, he corregido algunos bugs en el tamaño de la ventana (también funciona en monitores pequeños), y lo he hecho mucho más compatible con los CSS de Gnome Shell, de manera que si cambias el estilo (o tema), el menú se ajustará a éste.

Por otro lado, aproveché también para subir la última versión de Transmission para WebTV, donde únicamente actualicé la versión de transmission a la última, la 2.77.

Cronopete, WebTV y Gnome Shell

domingo, enero 20th, 2013

Desde mi última entrada hasta hoy he hecho unas cuantas cositas, pero no las comenté por aquí por falta de tiempo. Y dado que al final no se ha acabado el mundo, vamos a retomar las buenas costumbres.

En primer lugar, lancé una nueva versión de Cronopete, la 3.6.0, que justo hoy actualicé a la 3.8.1. El principal cambio ha sido un lifting de la interfaz de restauración de ficheros, además de incluir paquetes .deb con las versiones GTK2 y GTK3.

Por otro lado, lancé una nueva versión de Transmission para WebTV, la 5.0. En ella, además de incluir la última versión de Transmission, he recompilado todas las bibliotecas desde cero para tener las más recientes y he sustituido el viejo periscope por mi versión modificada de submarine. Ahora, por fin, vuelven a funcionar los subtítulos. Por desgracia, el autor aún no ha mezclado mis cambios con su rama, así que le he escrito y estoy esperando su respuesta.

Por último, he vuelto a Gnome Shell desde Elementary. El motivo es que necesito tener iconos en el escritorio, y de la forma que trabaja Gala (el gestor de ventanas de Elementary) no es nada cómodo hacerlo: cada vez que un escritorio virtual se queda sin ventanas abiertas, se mueve al anterior automáticamente. Aunque en Gnome Shell ocurre algo parecido (cambia a modo Actividades u Overview) tiene la ventaja de que se pueden añadir extensiones de manera relativamente sencilla. Pero a la vez echaba de menos algunas características de Elementary, así que me lié la manta a la cabeza y escribí dos:

  • Slingshot: se trata de un clon para Gnome Shell del menú lanzador de aplicaciones de Elementary.
  • AvoidOverview: elimina, precisamente, el molesto cambio de modo cuando se cierran todas las ventanas de un escritorio, pero permitiendo que se siga accediendo mediante los hotspots, el botón de Actividades, o la tecla windows.

Reconozco que la elección de JavaScript para crear Gnome Shell me resultaba curiosa al principio, pero ahora que he escrito estas dos extensiones puedo entender los motivos: gracias a la técnica de Monkey Patch, es posible cambiar el funcionamiento de cualquier parte del escritorio sin necesidad de modificar los fuentes originales, porque JavaScript permite modificar en caliente los métodos de un objeto. Esto no es necesario cuando simplemente se quiere hacer un módulo sencillo que incluya un menú, un icono, un botón, etc. pues para ello existe una API muy bien definida. Este es el caso de Slingshot, que no necesita ninguna de estas técnicas.

Sin embargo, para cambiar la forma en que responde el escritorio en funciones muy internas, como hace AvoidOverview, no queda más remedio que usarlas. Y aunque reconozco la potencia y versatilidad que ofrecen, tengo que decir que no me gustan demasiado, porque no puedo evitar ver el resultado como sucio. La apariencia no es la de un módulo que se enchufa en un punto específico mediante una interfaz bien definida, sino la de un parche aplicado con cinta aislante, cortando pistas del circuito impreso, y sujetando todo con una brida.

Pese a todo, en conjunto creo que el resultado ha sido acertado, porque de limitarnos exclusivamente a una API para módulos, probablemente no se podría jamás incorporar un cambio en algo tan profundo como esto. No olvidemos la postura de Gnome de reducir al mínimo las opciones de configuración del escritorio: no creo que aceptasen ni cambiar en la rama oficial el funcionamiento del modo Overview, ni incluir la opción de configurarlo.

Esto le da un nuevo sentido a un comentario que leí sobre Gala, el gestor de ventanas de Elementary OS, que también está basado en la tecnología de Gnome 3 (y que, por desgracia, no recuerdo donde la leí). Venía a decir que lo importante no es tanto el escritorio en sí, sino la tecnología que hay debajo, con mutter y demás, porque con ella se pueden hacer nuevos escritorios con facilidad, como es el caso de Gala o Cinnamon. Y así es: no hace falta que en la rama principal se añadan todas las opciones imaginables, porque es perfectamente posible modificar el funcionamiento interno con bastante facilidad, y simplemente añadiendo unas cuantas extensiones se puede cambiar de arriba a abajo la forma de trabajar del sistema.

Para aquellos que quieran saber cual ha sido mi elección, comentar que, además de AvoidOverview y Slingshot, tengo las siguientes extensiones:

  • Coverflow Alt-tab: cambia el funcionamiento de las teclas Alt+Tab por un cambiador al estilo cover-flow, además de mostrar sólo las ventanas del escritorio actual.
  • Hide Dash: elimina el dash (barra de aplicaciones situada a la izquierda). Lo tengo porque prefiero tener plank en la parte baja de la pantalla.
  • No top-left hot corner: desactiva el hotspot de arriba a la izquierda, que permite entrar en el modo Overview. Necesario porque, si no, es muy fácil que se active cuando se intenta lanzar una aplicación desde Slingshot.
  • Remove Accesibility: elimina el icono de configuración de la accesibilidad. Cabe señalar que es la extensión más descargada para Gnome Shell… por algo será 😉

A mayores también tengo System-Monitor y Workspace navigator, pero esas ya son por gusto propio. Con estas extensiones, y activando Nautilus para que gestione los iconos del escritorio, he podido darle la vuelta por completo a la forma de trabajar de Gnome Shell, ajustándolo exactamente a como yo lo quiero.


Utilizamos cookies para garantizar que tenga la mejor experiencia en nuestro sitio web.