Mostrando entradas con la etiqueta Linux. Mostrar todas las entradas
Mostrando entradas con la etiqueta Linux. Mostrar todas las entradas

8 dic 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.





4 nov 2012

Desarrollando una aplicación gráfica para apagar el sistema automáticamente

Hay comandos en GNU/Linux que permites realizar un apagado de nuestro sistema. Este apagado se puede hacer, bien indicando en cuántos minutos queremos que se apague, o bien indicando la hora. Si queremos la opción de minutos restantes:
shutdown -h minutos
Mientras que si preferimos indicar la hora:
shutdown -h hh:mm
En caso de haber introducido la opción de apagado automático y que queramos cancelarla:
shutdown -c
Utilizando estos comandos y la potencia de gambas podemos desarrollar fácilmente una aplicación gráfica que permita el apagado del sistema. Veámos cómo hacerlo. 
Lo primero es crear el diseño de nuestra aplicación. En mi caso he decidido no esmerarme mucho, y el resultado obtenido es 
Aspecto visual
En esta ventana tenemos la opción de elegir ambos tipos de apagado y además nos muestra el comando que se envía en consola. Por simplicidad a la hora de realizar la programación, requiere que en el caso de elegir la opción "Apagar a las" se introduzcan dos dígitos en cada recuadro y que los valores sean válidos. A continuación se muestran ejemplos con las diferentes opciones en funcionamiento
Ejecutando la opción "Apagar en"

Ejecutando la opción "Apagar a las"

Ejecutando la opción "Cancelar apagado"
El código que ejecuta esta aplicación es


' Gambas class file

Public minutosRestantes As String
Public minutos As String
Public hora As String
Public comando As String
Const cancelar As String = "gksu -l shutdown -c"
Const apagar As String = "gksu -l shutdown -h "

Public Sub _new()

End

Public Sub Form_Open()

End

Public Sub btnCancelar_Click()

  comando = cancelar  'Asignamos como comando la opción cancelar
  txtComando.text = comando
  Shell comando 'Enviamos el comando a la shell
  

End

Public Sub btnAceptar_Click()

  If rdbCuentaAtras.value = True Then   'Comprueba si el boton de cuenta atras esta activo
    minutosRestantes = vlbMinutosRestantes.Text   
    comando = apagar & minutosRestantes   'Si lo está, envía el comando de cuenta atrás
    txtComando.text = comando
    Shell comando
  Else 'Si no lo esta, entonces se envia la hora a la cual queremos apagar la computadora
    hora = vlbHora.Text
    minutos = vlbMinutos.Text
    comando = apagar & hora & ":" & minutos  'Concatena para formar el comando
    Shell comando
    txtComando.text = comando
  Endif  '

End

Gambas y el comando "shell"

Shell es un intérprete de comandos que permite controlar el funcionamiento de la computadora. En GNU/Linux disponemos de la terminal, con la cuál podemos, introduciendo los comandos en modo texto, acceder al sistema.
Indagando un poco en el foro de gambas en español me he percatado de una posibilidad que ofrece esta herramienta que aumenta exponencialmente las posibilidades a la hora de crear programas. Y no es otra cosa que el comando SHELL que se encarga de pasar un comando al sistema. Una guía de comandos la podemos encontrar en el tutorial Linux de tecnum  o en la documentación de Ubuntu en español. Veamos un ejemplo simple que, aunque a priori no muestre toda la grandeza de este comando de gambas, permite dar una idea. El ejemplo consiste en actualizar nuestro sistema. Aunque existe aplicaciones gráficas que permiten hacer esto, también se puede hacer, como todo desde la terminal, de la forma que se muestra a continuación
Evidentemente, es un método que requiere conocer los comandos y que para el usuario puede resultar complejo. Sin embargo, esto mismo se puede hacer gráficamente con una aplicación muy simple. Consiste en un simple botón que al ser pulsado se produce el envío de ese comando a la shell. La interfaz gráfica es
Pulsando este botón se ejecutará la actualización del sistema. El código el siguiente

' Gambas class file

Public Sub _new()
End

Public Sub Form_Open()
End

Public Sub btnActualizar_Click()
Shell "gksu -l apt-get update && gksu -l apt-get upgrade" Wait
End

Como podéis observar el código resulta bastante sencillo. Pronto espero publicar una aplicación más interesante... el apagado automático del sistema.

3 nov 2012

¿Algún visual basic para linux? Sí, Gambas

Llevo unos meses dedicando tiempo a la programación. Aunque ya tenía conocimientos previos, eran muy básicos, así que decidí dar un empujón al tema. Si has leído la entrada anterior, habrás observado que uno de los tutoriales que podemos encontrar en tecnum está dedicado a Visual Basic, que es para principiantes una de las opciones más adecuadas. Este software permite implementar aplicaciones gráficas en muy poco tiempo. Al estar dirigido a sistemas Windows, decidí buscar algún equivalente para Linux. La respuesta la encontré rápido: Gambas. Aunque hace un tiempo escuché acerca de este proyecto, pensé que estaría actualmente abandonado. Nada más lejos de la realidad, han sacado a la luz tres versiones en aproximadamente un mes. Así que me decidí a probarlo. Si bien la interfaz puede dejar mucho que desear visualmente hablando, cumple con el cometido que andaba buscando, crear programas básicos con facilidad. Sin embargo, gambas utiliza un lenguaje muy parecido a Basic, que era hasta ayer desconocido para mí. Así que se me ocurrió la idea de comenzar a adquirir conocimientos de Basic utilizando el tutorial de tecnum y combinarlo con Gambas. Los resultados me parecen interesantes, el ritmo de aprendizaje muy bueno. También busqué algún tipo de tutorial dedicado especialmente a gambas. Fruto de esta búsqueda encontré el portal Comunidad Gambas-es, en el cuál se incluye una sección de descargas de manuales, entre ellos uno de Daniel Campos y José Luis Redrejo más que interesante (puedes descargarlo desde aquí). Combinando toda esta información me propuse realizar un primer ejemplo. A continuación voy a explicar mi primer proyecto, basado en un ejemplo calculadora muy elemental  incluido en el curso de Visual Basic. Basta con arrancar la aplicación, seleccionar la opción de generar una nueva aplicación gráfica, dar un nombre a nuestro proyecto y ya nos encontramos con algo como esto
Que viene a ser una interfaz, si bien no muy buena estéticamente, con una estructura y opciones parecidas a las que nos podamos encontrar en Visual Basic de versiones antiguas. Añadiendo los elementos necesarios a la ventana principal obtenemos
Con la interfaz ya diseñada, resta por añadir un poco de código en el Main para hacer funcional el programa

' Gambas class file

Public Sub _new()
End

Public Sub Form_Open()
End

Public Sub btnSuma_Click()
  vlbResultado.Text = Val(vlbOperando1.Text) + Val(vlbOperando2.Text)
  txtOperacion.Text = "+"
End

Public Sub btnResta_Click()
  vlbResultado.Text = Val(vlbOperando1.Text) - Val(vlbOperando2.Text)
  txtOperacion.Text = "-"
End

Public Sub btnMultiplicacion_Click()
  vlbResultado.Text = Val(vlbOperando1.Text) * Val(vlbOperando2.Text)
  txtOperacion.Text = "*"
End

Public Sub btnDivision_Click()
  vlbResultado.Text = Val(vlbOperando1.Text) / Val(vlbOperando2.Text)
  txtOperacion.Text = "/"
End
El resultado obtenido es
Espero que les haya gustado...

Colección aprenda como si estuviera en primero de Tecnum, Universidad de Navarra

Para iniciarse en el mundo de la programación, unos tutoriales de calidad siempre ayudan. Una colección de apuntes como apoyo a la docencia fueron creados por profesores y colaboradores de la Escuela Superior de Ingenieros de San Sebastián. Como indican en el sitio web de tecnum, no se suponen conocimientos previos. Además esta colección puede ser descargada como ficheros .pdf. A mí no me queda más que agradecer el esfuerzo realizado, me parece simplemente genial. La colección la pueden encontrar aquí, existiendo tutoriales para herramientas tan utilizadas como Visual Basic o Java.

2 nov 2012

Videos explicativos para Lubuntu

Al ser Lubuntu una versión no tan extendida, la documentación que podemos encontrar sobre esta distro es, sino escasa, poco abundante. Sin embargo hay personas encargadas de hacer la vida más fácil. Éste es el caso de Leszek Lesner que decidió crear screencasts explicativos de configuraciones y aplicaciones (en inglés). Podéis encontrar toda su colección aquí, en la que también encontraréis tutoriales de kde. Algunos se encuentran un poco anticuados, pero en general son muy, muy buenos. De especial interés puede ser el que explica cómo hacer que una determinada aplicación arranque con el sistema, algo que suele dar muchos quebraderos de cabeza a los recién llegados. El enlace a este vídeo lo podéis encontrar aquí.

1 nov 2012

Comenzando desde cero. Documentación para principiantes.

Al ser Lubuntu una versión derivada de Ubuntu, tenemos la ventaja de que la casi totalidad de tutoriales e información que encontremos para Ubuntu van a ser perfectamente válidas para Lubuntu también. Como punto de partida creo interesante citar la wiki de documentación de Ubuntu en español, en la cuál podemos encontrar información muy variada relacionada con esta distro. De especial interés son la guía de instalación y la tabla de equivalencias entre aplicaciones Windows y Linux.
Y, si lo que prefieres son los vídeos, podeis visitar la entrada de ubuntulife en la que se muestra el proceso de preparación, particionado e instalación. Uno específico de Lubuntu, aunque en inglés, se puede encontrar aquí.

En mi ordenador... linux

Tres son los principales sistemas operativos para ordenadores. Mac, Windows y Linux. Personalmente he probado poco Mac, así que no hay mucho que pueda decir al respecto. Como usuario casual de Windows y habitual de Linux tengo que decir que me decanto por el segundo.

He de decir que no estoy de acuerdo con el dicho "no hay nada en windows que no puedas hacer en linux", principalmente por la compatibilidad de hardware y la variedad de software. Puede ocurrir y ocurre que un determinado elemento (un módem USB, una impresora...) no funcione en Linux, mientras que eso raramente pasa en  Windows (siempre vas a encontrar los drivers para éste) o que una determinada aplicación no tenga equivalente o no corra en Linux, algo que me ha pasado recientemente al querer crear un álbum digital para luego ser impreso encontré que solo en Windows era posible. Estas dos son las principales ventajas que encuentro en windows, que cualquier aparato que compres va a funcionar y que cualquier programa que quieras lo vas a tener.
Sin embargo hay cosas que, por una parte no me gustan de Windows, y por otra me gustan más en Linux. Una de las que no me gusta, sencillamente que no soporto, es que hayan impuesto que prácticamente cualquier ordenador que quieras comprar tenga Windows y, por consiguiente, tengas que pagar por ello. Linux es gratuito y te da total libertad de elección. Además, en mi caso (depende de la distribución linux que escojas), consume menos recursos, funciona más ligero y tiene menores tiempos de arranque y apagado y me ofrece una experiencia de usuario muy buena, con actualizaciones rápidas y sin problemas de virus y mantenimiento.

Para quién quiera una comparación más profunda entre ambos, basta con visitar en la wikipedia Windows VS Linux