pabluk's blog
Archive for May, 2008
Usando nautilus-scripts
May 28th
Me sucedió varias veces que necesito enviar por mail alguna foto que estoy viendo con Nautilus, y la mayoría de las veces son fotos de 2560×1920 píxeles, y es un perno tener que estar cambiandoles el tamaño, sobre todo si son muchas fotos.
Así que arme este script pedorro para Nautilus, con el que selecciono los archivos desde Nautilus, me los convierte y me los copia al desktop.
#!/bin/bash
TO="$HOME/Escritorio"
echo "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" | while read FILE ; do
if [ -n "$FILE" ]; then
if [ `file -b "$FILE" | cut -b -4` = "JPEG" ]; then
FILENAME=`basename "$FILE"`
if [ ! -f "$TO/$FILENAME" ]; then
convert -resize 800x600 "$FILE" "$TO/$FILENAME"
fi
fi
fi
done
Hay que grabarlo, por ejemplo, como Img2Desktop, darle permisos de ejecución y copiarlo en .gnome2/nautilus-scripts/ para usarlo hay que seleccionar una o varias imágenes desde Nautilus, click derecho y dentro del menú scripts seleccionar Img2Desktop.
Hay que tener en cuenta que para la conversión de las imágenes usa convert incluido en el paquete imagemagick.
También se le puede agregar con Zenity una barra de progreso durante la conversión o que después de que termine avise en el área de notificación de Gnome, pero eso quedará para un futuro muuuy lejano.
Cruzando el charco!
May 24th
Así es, hace unos días me confirmaron el vuelo a Francia! Así que buenísimo! voy a andar por allá en julio. Aunque todavía no tenemos bien definido el itinerario, hay un par de ciudades por las que andaremos seguro, Paris, Normandie, Strasbourg, Lyon y Grenoble. Y el resto del tiempo a donde pinte, ahí veremos.
Le compte à rebours a commencé… à plus tard!
Un reality con geeks!
May 20th
Quizás algunos ya lo conozcan, yo gracias a joemac me entero del reality show Beauty and the Geek. Es estúpido como todo reality pero es muy gracioso ver a estos super freakis interactuando con minitas super huecas que en su vida escucharon la palabra geek.
Y como extra dejo otro video, de un reality de geeks noruego que por lejos es el mejor! Una minita que tiene que cambiar el procesador de una máquina! El episodio se llama The Princess and Professor, The CPU switch.
Freedesktop specs y mi patch para Conky
May 17th
Para los que no lo conocen se podría decir que Conky es un monitor de sistema, como gkrellm, nada más que este es un fork de Torsmo. Se lo puede utilizar para monitorear casi cualquier cosa, uso de CPU, memoria, tráfico de red, sockets, disco, mpd, etc. En esta imagen lo que está a la derecha es Conky.
Hasta ahí todo muy bueno pero tengo el problema que si maximizo una aplicación me lo tapa o cuando el window manager mapea una ventana nueva a veces me lo tapa. Y es un perno, al menos para mí.
Para solucionarlo probé cambiando el placement mode de mi window manager a Centered, Random, Smart y nada. Cambiar el tamaño del output device en Compiz tampoco, busqué si había alguna opción para que las ventanas solo se maximizaran hasta un tamaño máximo pero ni ahí. Tampoco era una solución que aparezca siempre encima de todas las ventanas, porque tapa el contenido de la ventana que queda debajo. En internet, incluida la web de Conky, no encontré nada, parece que a nadie le molesta
Después me dí cuenta de que el comportamiento que yo quería es como el de los panels de Gnome, así que fui a ver la fuentes de Conky y para entender un poco tuve que consultar algunas especificaciones de freedesktop.org, en especial esta.
Para bajar las fuentes y poder compilar Conky en Ubuntu hay que poner
sudo apt-get install build-essential sudo apt-get build-dep conky apt-get source conky
Después de un rato entendí que lo que había que hacer es setear una propiedad de la ventana de Conky que se llama _NET_WM_STRUT.
Y bueno con mi conocimiento básico de C hice este patch
--- conky-1.5.1.orig/src/x11.c 2008-03-31 01:56:42.000000000 -0300
+++ conky-1.5.1/src/x11.c 2008-05-17 16:03:21.000000000 -0300
@@ -535,6 +535,38 @@
return (long) color.pixel;
}
+/* Reserve space at the borders of the desktop */
+void set_strut(int window, int x, int y, int w, int h)
+{
+ Atom xa;
+
+ xa = ATOM(_NET_WM_STRUT);
+ if (xa != None) {
+ int left = 0;
+ int right = 0;
+ int top = 0;
+ int bottom = 0;
+
+ if (w < h) {
+ if (x <= display_width / 2) {
+ left = w;
+ } else {
+ right = w;
+ }
+ } else {
+ if (y <= display_height / 2) {
+ top = h;
+ } else {
+ bottom = h;
+ }
+ }
+
+ CARD32 prop[4] = { left, right, top, bottom };
+ XChangeProperty(display, window, xa, XA_CARDINAL, 32,
+ PropModeAppend, (unsigned char *) prop, 4);
+ }
+}
+
void create_gc(void)
{
XGCValues values;
--- conky-1.5.1.orig/src/conky.c 2008-04-01 00:52:20.000000000 -0300
+++ conky-1.5.1/src/conky.c 2008-05-17 14:45:58.000000000 -0300
@@ -7208,6 +7208,7 @@
window.height = text_height + border_margin * 2 + 1;
XResizeWindow(display, window.window, window.width,
window.height);
+ set_strut(window.window, window.x, window.y, window.width, window.height);
if (own_window) {
set_transparent_background(window.window);
}
Con eso funciona y queda solucionado mi problema!
Preview de películas
May 6th
Un programa interesante para hacer un preview de las pelis que uno se baja con su cliente P2P o BitTorrent favorito es DivFix++.
No miré mucho su sitio web pero parece, no sé porque razón, no viene una versión compilada para x86, asi que a compilarla en mi flamante Ubuntu 8.04.
Los fuentes los podemos descargar de la sección Download del sitio.
Necesitamos instalar algunos paquetes para compilarlo
sudo aptitude install build-essential gettext libwxgtk2.8-dev
Una vez instalados los paquetes y descargadas las fuentes hacemos
tar xvjf DivFix++_v0.29-src.tar.bz2 cd DivFix++_v0.29 make
Y listo, opcionalmente podemos mover el binario al directorio bin dentro de nuestro home con
cp DivFix++ ~/bin/
Para usarlo solo tenemos que ejecutar
DivFix++
Desde la interfaz gráfica tenemos que seleccionar un directorio para colocar el archivo generado, también nos pide agregar el archivo que queremos reconstruir y finalmente con Rebuild Index generamos el nuevo video.
También trae algunas opciones interesantes en la línea de comandos para poder ejecutarlo directamente desde nuestro cliente P2P/BitTorrent, las podemos ver con
pabluk@amidala:/~$ DivFix++ --help Usage: DivFix++ [-h] [-nc] [-nk] [-ns] [-o ] -i [-p] [-s] [-e ] -h, --help shows help -nc, --dont_cut_out doesn't cuts out bad parts of file -nk, --dont_keep overwrites original file -ns, --dont_skip_frames doesn't skip unwanted frames -o, --output= output file or directory -i, --input= input file -p, --preview deletes output file after player is closed -s, --skip_fix skips fix process and play file directly if index is available -e, --execute= executes player with output file after fix
Hi! this is my personal web site and weblog about my projects, news related to free and open source software, internet and sometimes about real life ;)