8/12/2012

Abrir Pdf's, documentos de office y enlaces magnéticos directamente en Chromium en LXDE/Lubuntu

El navegador web incluido por defecto en Lubuntu es Chromium. Si bien he probado varios de ellos, puedo decir que éste es el que más me gusta, aunque tiene para mí el gran inconveniente de que cualquier enlace magnético, archivo PDF, documento de office, etc, no es abierto directamente desde el navegador, como sí que ocurre por ejemplo en Firefox. En mi caso tiendo a descargar archivos por torrent, utilizar listas de spotify o buscar documentos pdf y resulta bastante molesto no tener esa opción. Así que buscando he encontrado soluciones que pueden ser interesantes pero requieren de unos pequeños retoques. Veamos cómo hacerlo:
1.- Abrir enlaces magnéticos
La solución la he encontrado aquí. Básicamente consiste en, primeramente manipular la configuración del Gconf y posteriormente modificar el fichero xdg-open. Para esto, en una terminal introducimos los siguientes comandos:

gconftool-2 -t string -s /desktop/gnome/url-handlers/magnet/command "transmission %s"

gconftool-2 -s /desktop/gnome/url-handlers/magnet/needs_terminal false -t bool

gconftool-2 -t bool -s /desktop/gnome/url-handlers/magnet/enabled true

Y posteriormente, para modificar el xdg-open, introducimos en una terminal

sudo leafpad /usr/bin/xdg-open

Y modificamos la parte siguiente

#--------------------------------------
# Checks for known desktop environments
# set variable DE to the desktop environments name, lowercase
detectDE()
{
 if [ x"$KDE_FULL_SESSION" = x"true" ]; then DE=kde;
 elif [ x"$GNOME_DESKTOP_SESSION_ID" != x"" ]; then DE=gnome;
 elif `dbus-send --print-reply --dest=org.freedesktop.DBus /org/freedesktop/DBus org.freedesktop.DBus.GetNameOwner string:org.gnome.SessionManager > /dev/null 2>&1` ; then DE=gnome;
 elif xprop -root _DT_SAVE_MODE 2> /dev/null | grep ' = \"xfce4\"$' >/dev/null 2>&1; then DE=xfce;
 elif [ x"$DESKTOP_SESSION" == x"LXDE" ]; then DE=lxde;
 else DE=""
 fi
}

Dejándola así

#--------------------------------------
# Checks for known desktop environments
# set variable DE to the desktop environments name, lowercase
detectDE()
{
# if [ x"$KDE_FULL_SESSION" = x"true" ]; then DE=kde;
# elif [ x"$GNOME_DESKTOP_SESSION_ID" != x"" ]; then DE=gnome;
# elif `dbus-send --print-reply --dest=org.freedesktop.DBus /org/freedesktop/DBus org.freedesktop.DBus.GetNameOwner string:org.gnome.SessionManager > /dev/null 2>&1` ; then DE=gnome;
# elif xprop -root _DT_SAVE_MODE 2> /dev/null | grep ' = \"xfce4\"$' >/dev/null 2>&1; then DE=xfce;
# elif [ x"$DESKTOP_SESSION" == x"LXDE" ]; then DE=lxde;
# else DE=""
# fi
DE=gnome;
}

Con esto ya tenemos la opción de enlaces magnéticos activada. Si ahora por ejemplo intento abrir una lista spotify desde el navegador, aparece una ventana como la siguiente
Ventana de petición de uso de protocolo externo

Selecciona la opción lanzar aplicación y listo.
2.- Abrir documentos de pdf y office
Vamos ahora con los documentos pdf y de office. Para esto existen, dos alternativas, si bien la segunda en mi caso no ha funcionado (creo que si fuese una instalación limpia de Lubuntu sí lo haría). 
Opción 1:
La primera pasa por instalar una extensión denominada Visualizador de archivos PDF/PowerPoint. Esta extensión se encarga de abrir ese tipo de archivos con Google Docs. A mí personalmente no me gusta, de ahí que busqué otra opción, explicada a continuación.
Opción 2:
Pasa por utilizar las aplicaciones que por defecto se encargan de abrir ese tipo de archivos embebidas en nuestro navegador. Por ejemplo, abrir un pdf con evince o abrir un doc con libreoffice, todo sin salir del navegador. Para ello hay que instalar mozplugger y realizar algunas modificaciones. En un terminal

sudo apt-get install mozplugger

Si queremos utilizar evince para abrir los documentos pdf, según se explica aquí, hay que modificar el archivo mozpluggerrc. Para ello, desde terminal

sudo leafpad /etc/mozpluggerrc

Buscamos la parte de texto

### Acrobat Reader
define(ACROREAD, [repeat swallow(acroread) fill : acroread -openInNewWindow /a "$fragment" "$file"])

Y la modificamos, dejándola


### Acrobat Reader
# define(ACROREAD, [repeat swallow(acroread) fill : acroread -openInNewWindow /a "$fragment" "$file"])
define(ACROREAD, [repeat swallow(evince) fill needs_xembed : evince "$file"])

Si además tenemos libreoffice y queremos que utilice esa aplicación para documentos de office hay que, según se explica aquí, modificar la parte del archivo

### OpenOffice
define([OO],[swallow(VCLSalFrame) fill: ooffice2.0 -nologo -norestore -view $1 "$file"
swallow(VCLSalFrame) fill: ooffice -nologo -norestore -view $1 "$file"
swallow(VCLSalFrame) fill: soffice -nologo $1 "$file"])

dejándola así


### OpenOffice
define([OO],[swallow(VCLSalFrame) fill: libreoffice -nologo -norestore -view $1 "$file"
swallow(VCLSalFrame) fill: libreoffice -nologo -norestore -view $1 "$file"
swallow(VCLSalFrame) fill: libreoffice -nologo $1 "$file"])

Esta última opción de libreoffice es la que a mí no me ha funcionado. He realizado modificaciones en este archivo pero siempre obtengo el error 

Could not load MozPlugger 1.14.5 handles QuickTime and Windows Media Player Plugin

Lo cierto es que no sé muy bien el por qué de ese error, pero creo que puede ser alguna modificación previa que hice en el navegador. En Firefox funciona perfectamente. Trataré de informarme más al respecto y os mantengo informados.