martes, 26 de junio de 2012

Instalando interfaces de usuario en Mint 13

Una vez que nos hemos decidido a instalar Linux Mint, podemos tener la duda de que imagen .iso bajarnos, si la versión Mate o la versión Cinnamon, pero resulta que da igual que se haya bajado la .iso de Mate o la de Cinnamon y que se haya instalado una de estas interfaces de usuario * en el pc, ya que desde cualquiera de ellas se puede instalar la otra interfaz, usando para ello el administrador de paquetes Synaptic. De hecho, lo que hice fue instalar la versión Cinnamon en un pc portátil y la versión Mate en un pc de sobremesa, pero en la actualidad en los dos ordenadores tengo las interfaces de usuario que expongo a continuación.  *Interfaz de usuario: http://es.wikipedia.org/wiki/Interfaz_de_usuario

-- Para instalar una u otra interfaz el "problema" está en saber que paquete o lista de paquetes hay que instalar desde Synaptic ( en la mayoría de las ocasiones bastará con seleccionar para instalar un paquete -metapaquete - , el cual al ser instalado a su vez instalará otros paquetes ).

-- Para desinstalar una u otra interfaz,  si no nos gusta una de ellas una vez probada, podremos desinstalarla deshaciendo los pasos, desinstalando el metapaquete o la lista de paquetes con los que la instalamos, ejecutando en la terminal:
sudo aptitude remove --purge nombre_del_metapaquete  o
sudo aptitude remove --purge lista_de_paquetes

1) - Si hemos instalado la versión Cinnamon, para instalar Mate desde una sesión de Cinnamon hay que instalar el metapaquete mate-desktop-environment ; con él se instalaran un montón de paquetes mas. http://www.itworld.com/software/278801/install-mate-your-linux-mint-13-cinnamon-system

2) - Si hemos instalado la versión Mate, para instalar Cinnamon desde una sesión de Mate hay que buscar en Synaptic e instalar todos los paquetes que se llamen cinnamon.
http://www.itworld.com/software/278802/install-cinnamon-your-linux-mint-13-mate-system

Y ya que nos ponemos, podemos seguir instalando otras interfaces, seleccionado los paquetes adecuados en Synaptic. Podemos tener varias entradas en la pantalla de inicio del sesión:

-Cinnamon: interfaz de Gnome 3 , de Mint http://es.wikipedia.org/wiki/Cinnamon
-Gnome-clasic : interfaz de Ubuntu  muy parecida a la que tenia Gnome2 con efectos 3D http://es.wikipedia.org/wiki/Controversia_sobre_GNOME_3#Modo_Fallback
-Gnome-clasic sin efectos: igual que la anterior, pero sin efectos 3D
-Gnome-shell: interfaz de Gnome 3 http://es.wikipedia.org/wiki/GNOME_Shell
-Mate: interfaz similar a Gnome 2, de Mint  http://es.wikipedia.org/wiki/MATE
-Unity-2d: interfaz de Gnome 3, sin efectos 3D, de Ubuntu  http://es.wikipedia.org/wiki/Unity_%28entorno_de_escritorio%29
-Unity: igual que la anterior pero con efectos 3D

3) - Para instalar Gnome-Clasic ( también llamado Gnome Fallback ) : hay que instalar el metapaquete gnome-session-fallback ; tras ello tendremos dos entradas mas en la pantalla de acceso de la sesión: Gnome-clasic (con efectos 3D) y Gnome-clasic sin efectos (sin efectos 3D). Una guía, en ingles, para configurarlo en http://mandriver.users.sourceforge.net/classic-gnome-guide.html , y una guía en español para configurarlo en http://www.ubuntu-guia.com/2012/03/en-ubuntu-12.html

4) - Para instalar Gnome-shell he seguido las instrucciones de: forums.linuxmint.com/viewtopic.php?f=42&t=103842

1- Desde la sesión de usuario con la interfaz Cinnamon Instalamos los paquetes necesarios para tener la interfaz gnome-shell:
sudo apt-get install gnome-shell gnome-session gnome-tweak-tool
2- Salir de la sesión de usuario y volver a entrar desde la nueva entrada que habrá aparecido en la ventaña de acceso: Gnome
con lo que ya entramos en la nueva interfaz de Gnome-Shell
3-Instalamos las extensiones, ejecutando en la terminal:
sudo add-apt-repository ppa:webupd8team/gnome3
sudo apt-get update && sudo apt-get install gnome-shell-extensions gnome-shell-extensions-common

5) - Para instalar Unity basta con seleccionar el metapaquete unity . Se instalaran otros paquetes, tras lo cual en la pantalla de acceso al sistema tendremos dos nuevas entradas: Unity 2D ( para usar sin efectos visuales 3D si nuestra tarjeta gráfica no los acepta ) o Unity ( para usar con efectos visuales 3D ).

-------------------------------------

En cuanto a los efectos 3D Hay que tener en cuenta: ¿ Como saber si tienes aceleración gráfica?: Con los modulos glx se logra obtener esta información, escribe en una terminal ( copia y pega el siguiente comando):
glxinfo | grep direct
Si el resultado es Yes si tienes aceleración gráfica 3D, si el resultado que obtienes es No, obviamente no tienes aceleración gráfica 3D, y debes instalar los drivers con su correspondiente configuración para tu tarjeta de vídeo.

- Desde la entrada Ubuntu 3D  se  utilizan Compiz como gestor de ventanas. y por lo tanto podemos seguir teniendo los efectos 3D ( el cubo etc ) que teníamos en Gnome2
- Desde la entrada Ubuntu 2D se utiliza Metacity como gestor de ventanas, por lo que no tenemos los efectos 3D
- Desde las entradas Gnome-Shell y Cinnamon, se utilizan Mutter y Muffin respectivamente, como gestor de ventanas y no se puede utilizar Compiz (por el momento) y sus efectos 3D.
- Gnome Clasic tiene dos tipos de entradas, con o sin efectos 3D.
- Mate, en principio al igual que Gnome2, si que maneja efectos 3D

-----------------------------------
Si se tiene por ejemplo 3 tipos de interfaces gráficas ( mate, cinnamon, y xfce ) lo aconsejable es que se tenga tres usuarios distintos, y que en cada uno de ellos se entre desde la pantalla de acceso siempre en la misma interfaz gráfica, por ejemplo: con el usuario-cinna se entra siempre en Cinnamon, con el usuario-mate se entra siempre en mate, con el usuario-xfce se entra siempre en xfce. Esto es para que en las carpetas ocultas (las que guardan configuraciones ) no se mezclen configuraciones de distintas interfaces gráficas.

jueves, 21 de junio de 2012

Falsos amigos al instalar/actualizar programas, paquetes o el sistema

De forma similar a los falsos amigos que hay en el estudio de un idioma distinto al nuestro ( http://es.wikipedia.org/wiki/Falso_amigo ) en Ubuntu y derivadas ( en mi caso Mint )  hay unos programas que nos pueden resultar falsos amigos a la hora de instalar programas y paquetes para nuestro sistema, y/o a la hora de actualizar el sistema. Doy aquí mi opinión al respecto, y algunos consejos, todo ello basado en mi práctica a la hora de instalar y desinstalar programas.

Centro de Software de Mint: Desde mi punto de vista el CS es un "falso amigo". Si, muy bien te deja instalar/desinstalar muy fácilmente un programa, pero a cambio no te informa de que dependencias te instala/desinstala, no te ayuda si tienes problemas, no puedes solucionar si tienes paquetes rotos, huérfanos, no te permite bloquear un paquete, o forzar la instalación de una versión de un paquete, no te permite llevar un control de que paquetes instalastes/desinstalastes en una fecha determinada, cosas todas ellas que si que puedes hacer con Synaptic.




El CS te da una "falsa facilidad" a cambio de quitarte muchas, demasiadas, funciones. Aconsejo usarlo únicamente para instalar, si no viene de serie, el programa Synaptic, y a continuación usar únicamente éste y no el CS para instalar/desinstalar programas o paquetes.deb

Centro de Software de Ubuntu: éste si que permite llevar un "historial" de los paquetes instalados" , permitiendo llevar un control de los paquetes instalados, actualizados y eliminados; pero sigue teniendo las otras carencias que indico al hablar del CS de Mint.



Repositorios Personales de Paquetes (PPA) : En ( Administración de Repositorios Personales de Paquetes (PPA  ) expliqué como usar el programa Y-PPA para la administración de este tipo de repositorios. La finalidad de crear un Repositorio Personal de Paquetes ( Personal Packages Archives, PPA), es distribuir el software y las actualizaciones, directamente a los usuarios de Ubuntu.
Se crea un paquete fuente, para enviar a  Launchpad, construir binarios y luego alojarlos en su propio repositorio de apt.

Cada creador de PPA  en Launchpad puede tener uno o más PPA, cada uno con su propia URL. Los paquetes publicados en su PPA permanecerán allí hasta que los elimine, o sean reemplazados por otros paquetes que  suba con una nueva versión. Un PPA también puede ser remplazado si se vuelve obsoleto (es decir, por la versión de Ubuntu).

Esto significa que los usuarios de Ubuntu pueden instalar paquetes de la misma manera que los paquetes de instalación estándar de Ubuntu y automáticamente recibirá actualizaciones a medida que se realizan.



Siempre que se añade, modifica o elimina un ppa, con cualquiera de los métodos indicados,  se debe hacer click en el botón Recargar de Synaptic, para que la fuente de software este actualizada.

También aconsejo que después instalar un paquete tras añadir un ppa para ello, se desactive o elimine el ppa, y se vuelva a hacer click en el botón Recargar de Synaptic, de esa forma nos aseguramos que solo se instala el programa por el que hemos añadido el ppa, pero no ningún otro programa con el gestor de actualizaciones. Si posteriormente queremos instalar otro paquete desde un ppa lo volvemos a activar, recargamos Synaptic, instalamos el paquete, volvemos a desactivar el ppa y volvemos a recargar Synaptic.

Los PPA facilitan la "adquisición" de fuentes de software que pueden ser problemáticas, modificando las fuentes de software en el archivo /etc/apt/sources.list y en el directorio /etc/apt/sources.list.d , lo cual a la hora de las actualizaciones automáticas con el gestor de actualizaciones pueden crear problemas de dependencias y hacer que haya paquetes rotos, o incluso que se estropee algún programa o hasta todo el sistema.

Gestor de Actualizaciones: Como he indicado si las fuentes de software no son adecuadas, ya que hemos modificado el archivo /etc/apt/sources.list y/o el directorio /etc/apt/sources.list.d, podemos tener problemas tras una actualización automática del sistema con el Gestor de Actualizaciones; en la medida de lo posible aconsejo realizar las actualizaciones de forma manual desde Synaptic, tras haber comprobado en él que las fuentes de software son las adecuadas: en Synaptic -> Configuración ->Paquetes -> se abre la ventana Orígenes de Software: ver en las pestañas Software de la versión y Otro Software.




Otra cosa a tener en cuenta es:  primero seleccionar en las Preferencias del Gestor de Actualizaciones de Mint únicamente los tres primeros tipos de paquetes (certificados, recomendados y seguros) , para que el Gestor de Actualizaciones actualice de forma automática solo estos tipos de paquetes. En segundo lugar una vez hecha la actualización automática de los anteriores paquetes, seleccionamos los paquetes no seguros, y paquetes peligrosos, actualizamos el Gestor , para ver que paquetes de ésta categoria nos aparecen, y en todo caso los instalamos,  previo estudio y selección de uno en uno, a mano bien con el Gestor o bien cerrando este programa y abriendo Synaptic para instalar este tipo de paquetes que pueden causar problemas al sistema.





————————————-

jueves, 14 de junio de 2012

Modificar la "Pantalla de acceso" (Login) en MDM (Mint Display Manager)

La pantalla de acceso al sistema ha vuelto a ser cambiada en la versión Mint-13, y ya no se puede modificar como se hacia en Mint-9 a Mint-12 (  Ver aquí) ya que el "display manager" es distinto; ahora se usa el Mint Display Manager, el cual por defecto en Mint13 Cinnamon solo viene con dos temas ( Circulos, y Linux Mint ) para la "pantalla de acceso" ( ver en la imagen de mas abajo). Pero podemos instalar otros temas, y modificarlos.

Instalar nuevos temas:
Los temas GDM - Gnome Display Manager - (temas que se podían instalar en versiones antiguas de Ubuntu ) que se pueden descargar desde http://linuxmint-art.org/temas GDM Splas  o http://gnome-look.org/ en principio no se pueden instalar en Mint13 ya que éste usa MDM - Mint Display Manager.
Pero hay una solución:
- Creamos un script con el texto siguiente, al que daremos permisos de ejecución, y guardaremos en /home/usuario/.gnome2/nautilus-scripts con el nombre, por ejemplo, de gdm2mdm.

Texto del script  gdm2md :
#!/usr/bin/env python

# Convert GDM theme to MDM by esteban1uy
import pygtk
import tarfile
import os
import sys
import tempfile
import gtk

pygtk.require('2.0')

if gtk.pygtk_version < (2,3,90):
raise SystemExit
def look_in_directory(directory):
for f in os.listdir(directory):
if os.path.isfile(os.path.join(directory, f)):
if f == "GdmGreeterTheme.desktop":
return os.path.join(directory, f)
if os.path.isdir(os.path.join(directory, f)):
if look_in_directory(os.path.join(directory, f)) != "":
return os.path.join(directory, f)

dialog = gtk.FileChooserDialog("Select theme file",
None,
gtk.FILE_CHOOSER_ACTION_OPEN,
(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL,
gtk.STOCK_OPEN, gtk.RESPONSE_OK))
dialog.set_default_response(gtk.RESPONSE_OK)

filter = gtk.FileFilter()
filter.set_name("All files")
filter.add_pattern("*.tar.gz")
dialog.add_filter(filter)

response = dialog.run()
if response == gtk.RESPONSE_OK:
fullpathToTar = dialog.get_filename()
fullpath = os.path.dirname(fullpathToTar)
tar = tarfile.open(fullpathToTar, "r:gz")
destinationPath = tempfile.mkdtemp() + "/"
tar.extractall(destinationPath)
GdmFile = look_in_directory(destinationPath)
if GdmFile != "":
o = open(GdmFile+"/MdmGreeterTheme.desktop","a")
for line in open(GdmFile+"/GdmGreeterTheme.desktop"):
line = line.replace("GdmGreeterTheme","MdmGreeterTheme")
o.write(line)
o.close()
innerfolder = os.path.split(os.path.dirname(GdmFile+"/"))[1]
newtar = tarfile.open(fullpath + "/"+innerfolder+"_for_MDM.tar.gz"
                                                        , "w:gz")
newtar.add(GdmFile+"/",innerfolder+"/")         
newtar.close()
elif response == gtk.RESPONSE_CANCEL:
exit()
dialog.destroy()

----------------------

Ahora ya podemos:
- bajar un tema gdm desde el primer enlace, se bajará un archivo tema.tar.gz , lo guardamos
- desde nautilus abrimos el script gdm2mdm y seleccionamos el archivo tema.tar.gz que hemos bajado
- se creara otro con el nombre temaMDM.tar.gz
- abrimos la pantalla de selección del login ( Preferencias-Ventana de entrada- pestaña Local) o con sudo mdmsetup  , le damos a añadir y seleccionamos este último archivo, y ya nos aparecerá un tema mas en la ventana de login, lo seleccionamos.
- salimos de las sesión y ya podremos usar el nuevo tema de la ventana de acceso

De esta forma he añadido los dos últimos temas que se ven en esta imagen:



Si una vez instalado un tema no nos gusta, normalmente lo podremos desinstalar desde la misma pantalla de selección del login desde el que lo instalamos, pero si desde ahí no fuera posible, siempre nos queda la solución de abrir nautilus con permisos de root e ir a la dirección: /usr/share/mdm/themes en donde habrá una carpeta con el nombre del tema que queremos desinstalar; borramos dicha carpeta, y volvemos a a abrir la ventana de selección de login para elegir otro tema.

-------------------------------------

Una vez instalado un tema podemos modificarlo:  Ver usuarios en la pantalla de login:

Algunos temas ya vienen de serie con una lista de  los usuarios que tengamos instalados en el sistema, para poder elegir con cual de ellos entrar, sin tener escribir su nombre, sino haciendo click en el nombre/imagen, y poner luego la contraseña, pero otros no traen por defecto esta característica, sino que debemos poner a mano tanto el nombre del usuario como su contraseña; en estos casos podemos modificar el tema para que si que tenga dicha forma.

Primero, ir a Sistema -> Administración -> Ventana de Entrada. Hay asegurarse de que en la pestaña Local, el estilo sea "Con Temas y Visor de Rostros" ( ver recuadrado en rojo en la imagen anterior ). Una vez comprobado que está así, ya se puede cerrar esta ventana.

Luego hay que editar el tema seleccionado, para ello abrimos  Nautilus en modo root ( ejecutando en la terminal: sudo nautilus ), y  vamos a la dirección /usr/share/mdm/themes; en dicho directorio hay varias carpetas con el nombre de cada uno de los temas que tengamos instalados; dentro de la carpeta del tema que queremos modificar hay un archivo.xml , éste es el archivo que hay  que abrir y editar con gedit, buscando en las primeras líneas el código <greeter> y tras él pegar el código* que hay mas abajo.

Se guardan los cambios realizados en el archivo, se cierra el archivo, y el Nautilus, y ya podemos salir de la sesión, y volver a la pantalla de login en la que aparecerán los usuarios que tengamos instalados en el sistema, para poder elegir con cual de ellos entrar, sin tener escribir su nombre, sino haciendo click en el nombre/imagen, y poner luego la contraseña del usuario.

*Código:
 <item type="list" id="userlist">
     <pos x="150" y="200" height="100" width="250"/>
     <color iconcolor="#ffffff" labelcolor="#ffffff"/>
</item>

----------------------------------------------------------

En función de los valores numéricos que se pongan en la linea:
<pos x="150" y="200" height="100" width="250"/>

el recuadro de selección de usuario estará en un lugar u otro de la pantalla del login (x= coordenadas en horizontal de la pantalla, y= coordenadas en vertical de la pantalla ) , y tendrá un tamaño ( height/altura , y width/longitud ) u otro .

La imagen de cada uno de los usuarios se puede modificar, desde su sesión, usando el programa que se inicia ejecutando: mdmphotosetup

----------------
Editado (8-7-2014)
En Mint 17 Cinnamon, para cambiar la imagen del usuario en la ventana de acceso no se usa ya el comando mdmphotosetup; ahora se hace desde Configuración del Sistema->Usuarios y grupos : click en el icono del usuario y se elige bien una de las imágenes que vienen por defecto para poner como imagen de usuario, o bien una imagen ( con el tamaño que se indica a continuación ) que se tenga en otro lugar del sistema.



Con ello se crea el archivo /home/usuario/.face - una imagen .jpg de 96x96 pixels con nombre .face ( sin la extensión .jpg ni ninguna otra ) -
Se puede tener una imagen para cada usuario, repitiendo el método desde cada sesión gráfica de cada usuario del sistema.
--------------------

Aconsejo hacer estos cambios teniendo al menos dos temas instalados en la pantalla del login, ya que si nos equivocamos en algo y estropeamos el tema que tengamos seleccionado para entrar, al intentar entrar nos dará un mensaje de error, pero nos dejara entrar por otro tema.

Es de esperar que en algún tiempo en http://linuxmint-art.org/ haya también temas para MDM que se puedan instalar directamente.

---------------------------

miércoles, 6 de junio de 2012

Hacer que se ejecute un script en el inicio del sistema

En este tema se explican varios  procedimientos para hacer que se pueda ejecutar un script en el inicio del sistema. Según si queremos que el script se ejecute en las sesiones de todos los usuarios, o solo en la sesión de uno de ellos, si queremos que se ejecute con o sin permisos de root, debemos elegir uno u otro procedimiento.

1-- Sistema-Preferencias-Aplicaciones al inicio: "Añadir programa al inicio":  en "Comando" se pone la dirección en donde esta el script que previamente hemos creado y guardado en algún lugar del disco duro. Este es el procedimiento que recomiendo si el script que queremos que se inicie al inicio del sistema solamente para una determinada sesión de usuario, pero no para otras sesiones de otros usuarios del sistema.

Si tenemos configurado el sistema para que se puedan abrir varias sesiones de varios usuarios: De esta forma podemos hacer que en la sesión de un usuario se ejecute un script y en la sesión de otro usuario no se ejecute ese script, o que en una sesión se ejecute un script, y en otra sesión de otro usuario se ejecute otro script.

Es un método para usar script con un usuario en concreto.

2-- Gnome-schedule: instalamos el paquete gnome-schedule y lo ejecutamos con o sin permisos de root según necesitemos que el script se ejecute con o sin permisos de root.  Configuramos el programa: en Hora y Fecha: Básico -> "Al Reiniciar"  , para que el script se autoinicie al inicio del sistema.  Mas información sobre este programa en Programar tareas repetitivas con Gnome-schedule

Con este procedimiento podemos crear una tarea programada distinta, que ejecute un script al inicio,  para cada usuario si ejecutamos el programa sin permisos de root, o crear una tarea programada que se ejecute en las sesiones de todos los usuarios si ejecutamos el programa con permisos de root



3-- Iniciar el script desde el directorio /etc/init.d

-- El primer paso es crear el script ( mi-script.sh  , este archivo script  puede tener cualquier nombre   ) en el directorio /etc/init.d
-- Después de esto tenemos que darle permisos al archivo para que se pueda ejecutar sin problemas, esto lo hacemos con el siguiente comando: chmod +x mi-script.sh
-- Podemos ejecutar el script, para comprobar que funciona bien, de la siguiente manera: ./mi-script.sh
-- Para agregar este comando para que sea ejecutado en el momento que el sistema arranque, lo hacemos con el siguiente comando: update-rc.d mi-script.sh defaults 80
-- Ahora el script se va a ejecutar cada vez que el sistema arranque.

El primer paso se hace desde el Nautilus ejecutado en modo root, iniciado desde la terminal con: sudo nautilus los demás comandos se ejecutan desde la terminal de root y desde el directorio /etc/init.d

Con este procedimiento creamos un script que se iniciara en las sesiones de todos los usuarios, o que necesitamos que se inicie antes de que se entre en la sesión gráfica de usuario.

------------------

Añadido: gracias a un comentario de Guadafan, en el foro de Guadalinex.org

4-- También se puede lanzar el/los scripts desde el archivo /etc/rc.local
Dicho archivo tiene este contenido (traducido):

Este script se ejecuta al final de cada nivel de ejecución multiusuario.

# Asegúrese de que el script "exit 0" en caso de éxito o de cualquier otro
# Valor en caso de error.
#
# Con el fin de habilitar o deshabilitar este script sólo cambia la ejecución
Número de bits.
#
# Por defecto este script no hace nada
exit 0

Es decir el/los script/s han de ponerse en la línea anterior a: exit 0 ; se ejecutarán para todos los usuarios del sistema.
——————————-



No siempre queremos que un script se ejecute de forma manual, sino que aveces queremos que se ejecute a) en un determinado tiempo, día/s y hora/s,  o b) en un determinado momento durante el proceso del inicio del sistema o c) durante el proceso: salida de la sesión gráfica->pantalla de acceso->retorno a la sesión gráfica.

a) En el índice del blog, en la sección Tareas hay varios temas que explican como hacer que un script se ejecute de forma repetitiva o no, en un día/s y hora/s determinadas.

b) Este caso es el que se explica en este tema.

c) Este caso se explica en hacer que se ejecute un script durante el proceso: salida de la sesión gráfica -> pantalla de acceso -> retorno a la sesión gráfica.

---------------------------------