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.

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

17 comentarios:

  1. MDM solo es GDM con el nombre cambiado.

    Saludos

    ResponderEliminar
  2. Indiocabreao:
    Encantado de verte por aquí.
    Tienes razón, aunque hay que explicarlo con algo mas de amplitud: además del método que explico en el blog hay otro método que consiste en cambiar el nombre a unas cosillas, tal y como explican en http://ubuntu-cosillas.blogspot.com.es/2012/04/temas-de-gdm2-en-mdm.html ; pero este método no me acaba de gustar ya que requiere abrir nautilus con permisos de usuario he ir subiendo y bajando por los directorios. En la medida de lo posible evito todo lo que puedo usar el nautilus con permisos de root...manías mías.
    Con el método que explico en el blog el cambio de tema gdm a mdm se hace sin usar los permisos de root, y éstos solo se usan para añadir el nuevo tema en la ventana de mdmsetup. Vamos, que a mi me parece un método mas sencillo. Lo único que es relativamente mas complicado es crear el script, y es muy sencillo, pero eso se hace solo una vez.
    Pero para gustos los colores.

    ResponderEliminar
  3. Por lo que veo de ese enlace que pones Hatteras....En realidad no es necesario editar ningún archivo como root.

    Se descargan un tema, lo meten en un directorio que si requiere permisos de root y luego editan el archivo....

    Pero pensando un poco....te descargas el tema, editas lo necesario directamente usando file-roller (ni es necesario descomprimir) e instalas el tema usando mdmsetup. Solo has usado root para mdmsetup ;-)

    Aunque tu sistema es mas elegante.

    ResponderEliminar
  4. Indiocabreao:
    Encantado de verte por aquí de nuevo.
    En el enlace de "cosillas" dice: "Lo descomprimimos, y movemos la carpeta como administrador a /usr/share/mdm/themes, y entramos en la carpeta en cuestión" y a partir de ahí se hacen otras cosas, siempre como administrador, ya que se "trastea" en una dirección fuera de /home/usuario.

    ResponderEliminar
  5. Que hagan eso en ese blog, no quiere decir que no exista una manera mas fácil y sin usar root (como la que te he explicado en mi anterior comentario).

    - Te descargas el tema.
    - Editas y guardas lo necesario directamente desde file-roller abriendo el archivo comprimido (ni es necesario descomprimir).
    - Instalas el tema que ya tiene las modificaciones necesarias, usando mdmsetup (en esto si es necesario el uso de root).

    ResponderEliminar
  6. Gracias, Maestro.
    Lo has explicado, claro, concreto y conciso.
    Es que cuando se sabe, se sabe.

    PD. Anda puntuame el tema, que me hace ilusión.
    Gracias de nuevo.

    ResponderEliminar
  7. hola, muy bueno el blog y este tema en particular me gusta mucho, soy medio novato en linux y en mint pero este sistema me gusta mucho, con respecto a tu publicacion la verdad tengo problemas con crear el script ya que no dices como se crea un script, solo pones creamos un scrip, pero no dices como se hace, yo uso linux mint maya 64 bits, y no tengo nautilus, sino caja, y pluma como editor de texto, en fin, me podrias explicar como es el tema del script paso a paso por favor, ya que me interesa mucho poder cambiar la apariencia del dgm, salu2...

    ResponderEliminar
  8. Ariel:
    En el índice del blog, sección scripts, hay un tema sobre como crear un script básico: http://hatteras.wordpress.com/2008/04/23/como-crear-un-script-basico/
    Leete la explicación, con estas salvedades: allá donde pone Nautilus (administrador de archivos) , tu pones Caja, allá donde pone Gedit (editor simple de texto) tu pones Pluma.
    Usas Mint con la interfaz Mate, por eso tienes Caja y Pluma; si además de Mate, instalas la interfaz Cinnamon ( también esta explicado en otro tema del blog ) , en ésta si que tendrás Nautilus y Gedit. Si tienes las dos interfaces podrás usar Nautilus y Caja, Gedit y Pluma.
    Caja es un programa clon de Nautilus que conserva algunas de las características que tenía éste, y que han desaparecido en la versión actual.

    ResponderEliminar
  9. Que raro??? Yo en LMLE 13 KDE no he tenido ese problema, he cambiado la imagen de pantalla de acceso por una que tengo en mi /home y funciona sin problema, y la he cambiado varias veces y me acepta los cambios.

    ResponderEliminar
  10. ghermainl, no tiene nada de raro. KDE tiene su propio login manager, se llama KDM (no usa MDM ni GDM). Saludos

    ResponderEliminar
  11. Como se abre el scrip por que yo le doy y no hay manera

    ResponderEliminar
  12. El script una vez creado con el texto que se indica, tiene que tener permisos de ejecución: se selecciona el archivo, y con el botón derecho del ratón se selecciona Propiedades->pestaña permisos: se pone la opción: permitir ejecutar el archivo como un programa (Ver http://foro.ubuntu-guia.com/No-aparece-la-opcion-quot-Ejecutar-en-un-terminal-quot-Solucionado-td4026527.html o http://hatteras.wordpress.com/2008/04/23/como-crear-un-script-basico/ )
    Una vez hecho esto haces doble click sobre el script y lo ejecutas.

    ResponderEliminar
  13. Muchas gracias por la información me resultó muy utili para hacer que en la ventana de inicio de LinuxMint se mostrara un menú con los usuarios del sistema...

    ResponderEliminar
  14. Al ejecutar el sript me sale esto :

    -scripts/gdm2mdm'
    File "/home/ma666ot4/.gnome2/nautilus-scripts/gdm2mdm", line 14
    raise SystemExit
    ^
    IndentationError: expected an indented block


    Agradezco la ayuda, no se mucho sobre esto.

    ResponderEliminar
  15. JulioC:
    Si el script te falla, puedes intentar hacerlo como se indica en http://ubuntu-cosillas.blogspot.com.es/2012/04/temas-de-gdm2-en-mdm.html
    Si usas Mint, puedes probar a instalar el paquete mint-mdm-themes, el cual te instalara varios temas

    ResponderEliminar
  16. 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.

    ResponderEliminar

A la vez que haces un comentario, por favor da una puntuación al tema: malo, normal, bueno o muy bueno.
Gracias.