miércoles, 20 de julio de 2016

Cambiar fondo Login GDM en Fedora 24


Como en toda actualización, algunas opciones cambian y permiten cambiarlas más fácilmente, o las hacen más complicadas. En versiones anteriores de Fedora, cambiar el fondo del login era relativamente fácil.

Anteriormente buscabas el archivo  /usr/share/gnome-shell/theme/gnome-shell.css y modificabas la ruta de la imagen en la sección #lockDialogGroup, pero pues ahora el proceso es un poco más engorroso:

Paso 1.-

Para modificar el fondo es necesario extraer la configuración del tema que utilice nuestro escritorio en un momento dado. Este archivo es un binario que se ubica en /usr/share/gnome-shell/ con el nombre de gnome-shell-theme.gresource.

Instalar las siguientes librerías:

sudo dnf install pcre glib2-devel

Aquí está el script.sh para extraer la información. Recomiendo crear una carpeta nueva, en la ruta que se desee, dentro de esa carpeta ejecutar el script.

#! /bin/sh
 
#cambiar el directorio a utiliza, por ejemplo una carpeta creada en descargas
workdir=./

#ruta en donde está ubicado el binario del tema, en caso de ser el default, entonces la ruta es:
gst=/usr/share/gnome-shell/gnome-shell-theme.gresource

# se crea una carpeta en la ruta que se ejecute el script.sh, es necesario eliminarla, en caso de que ya tengan una, o crear otra cambiando la ruta del workdir
mkdir theme

# extrayendo los archivos del binario
for r in `gresource list $gst`; do
        gresource extract $gst $r >$workdir${r/#\/org\/gnome\/shell/}
done

Crear el archivo y darle permisos de ejecución:
chmod 777 script.sh

Ejecución del script.sh:
./script.sh

Y al ejecutarlo extraerá todos los archivos que contenga el binario del tema:
Ejemplo de los archivos extraidos:


Paso 2:

Modificar el archivo gnome-shell.css en la sección siguiente, agregando el nombre de la imagen a utilizar, además mover la imagen dentro de la carpeta donde se hayan extraído los archivos del binario.

La imagen, hasta el momento yo sólo usé extensiones jpg, no he probado si funciona co png, svg o cualquier otro formato. Si alguien desea hacer las pruebas, adelante.

#lockDialogGroup {
  background: #2e3436 url(login-background.jpg);
  background-size: 1366px 768px;
  background-repeat: repeat;
}
Aquí es necesario modificar el nombre de la imagen a utilizar y el tamaño de la pantalla, para saberlo, ir al cajón de aplicaciones, buscar pantallas, seleccionar la pantalla que deseemos y ahí les mostrará el tamaño actual que tengan configurado:



Guardar los cambios realizados en el archivo.

Paso 3:

Crear el archivo gnome-shell-theme.gresource.xml, en el cual se agregará también el nombre del archivo de la imagen que se utilizará de fondo del login.

Este archivo se guarda en la misma ruta en la que se extrajeron los datos del binario.

La información que lleva el archivo es la siguiente:
<?xml version="1.0" encoding="UTF-8"?>
<gresources>
  <gresource prefix="/org/gnome/shell/theme">
    <file>calendar-arrow-left.svg</file>
    <file>calendar-arrow-right.svg</file>
    <file>calendar-today.svg</file>
    <file>checkbox-focused.svg</file>
    <file>checkbox-off-focused.svg</file>
    <file>checkbox-off.svg</file>
    <file>checkbox.svg</file>
    <file>close-window.svg</file>
    <file>close.svg</file>
    <file>corner-ripple-ltr.png</file>
    <file>corner-ripple-rtl.png</file>
    <file>dash-placeholder.svg</file>
    <file>filter-selected-ltr.svg</file>
    <file>filter-selected-rtl.svg</file>
    <file>gnome-shell.css</file>
    <file>gnome-shell-high-contrast.css</file>
    <file>logged-in-indicator.svg</file>

    <file>login-background.jpg</file>

    <file>more-results.svg</file>
    <file>no-events.svg</file>
    <file>no-notifications.svg</file>
    <file>noise-texture.png</file>
    <file>page-indicator-active.svg</file>
    <file>page-indicator-inactive.svg</file>
    <file>page-indicator-checked.svg</file>
    <file>page-indicator-hover.svg</file>
    <file>process-working.svg</file>
    <file>running-indicator.svg</file>
    <file>source-button-border.svg</file>
    <file>summary-counter.svg</file>
    <file>toggle-off-us.svg</file>
    <file>toggle-off-intl.svg</file>
    <file>toggle-on-us.svg</file>
    <file>toggle-on-intl.svg</file>
    <file>ws-switch-arrow-up.png</file>
    <file>ws-switch-arrow-down.png</file>
  </gresource>
</gresources>

Ojo, todos los archivos declarados aquí, son importantes, ya que se utilizan en el archivo gnome-shell.css, en caso de que haya algún archivo que no esté en la ruta, les marcará un error diciendo que el archivo no es posible encontrarlo y el siguiente paso no funcionará.

Paso 4:

Recompilar el tema para obtener un nuevo archivo con el nombre de: gnome-shell-theme.gresource:
glib-compile-resources gnome-shell-theme.gresource.xml
Automáticamente genera el archivo.

Paso 5:

Reemplazar el tema actual con el nuevo tema creado, pero antes realizar un respaldo del tema por default, por si las dudas.
sudo cp /usr/share/gnome-shell/gnome-shell-theme.gresource /usr/share/gnome-shell/gnome-shell-theme.gresource-backup

En caso de que hay algo más, solo basta cambiar el nombre al archivo reemplazado al original, para que vuelva con el tema por default.

Reemplazando el archivo:
sudo cp ruta/gnome-shell-theme.gresource /usr/share/gnome-shell/

Y ahora, cerrar sesión y volver a iniciar, en caso de que no funcione, pues reiniciar. En mi caso obtuve un resultado a este:

En la imagen siguiente muestro el resultado utilizando el tema default de gnome 3.20 y estilos de gtk.


En la siguiente imagen, utilicé el tema Hooli, publicado por @UMAYANGA en https://www.gnome-look.org/p/1102901/ utilizando el mismo proceso descrito en los pasos de arriba. Tengan especial cuidado en que todos los archivos declarados en el .xml existan en la carpeta.


Espero y sea de utilidad.

Fuentes:
https://wiki.archlinux.org/index.php/GDM#Log-in_screen_background_image
https://en.wikipedia.org/wiki/Display_resolution#Computer_monitors
https://www.gnome-look.org/p/1102901/
https://bbs.archlinux.org/viewtopic.php?id=197036
http://stackoverflow.com/questions/31304138/how-do-i-change-the-gdm-login-background-in-fedora-22/32667361

10 comentarios:

  1. Ya pude cambiar el fondo del login de Fedora24, Gracias, por publicar este post!!!

    ResponderEliminar
  2. Ayuda: en el paso uno cuando trato de extraer los archivos me dice que no existe el archivo o directorio (No such file or directory)

    ResponderEliminar
    Respuestas
    1. Buen día. Tienes asignado la ruta correcta del archivo?

      Eliminar
  3. fernando merino gracias a ti, sé que se puede cambiar el background de login gdm pero mis preguntas son :¿ se pude poner trasparente en vez de una imagen? ¿es posible utlizar este metodo para todo las distro incluyendo las derivadas de arhlinux? ya que tu servidor utiliza Apricity os con cinnamon pero esta bien intrada con gnome gracias a esta distro.
    :https://apricityos.com/
    un tip: hay mas sabores de estas si te registras.
    os agradeceria tu ayuda! saludos

    ResponderEliminar
    Respuestas
    1. Gracias por comentar.
      1.- No lo he hecho, pero supongo que podrías utilizar un color con transparencia en lugar de imagen.
      2.- Es posible siempre y cuando utilicen GDM

      En este ejemplo es Fedora 24 con Gnome shell, este mismo proceso ya lo realicé en Apricity OS, y funciona igual, ya que usa gnome shell.

      Mi distro por defecto es Fedora, por elección, después de haber probado muchas, la otra que uso es Apricity con Gnome.

      Eliminar
    2. o que grata sorpresa merino te agradezco tu sinceridad, intentaré hacerlo como tu dices
      muchas gracias fernando.
      P.D.
      una anéctoda use fedora 14 pero no he vuelto a instalarla de hecho lo mas cercano fue korora 25 pero volví a Apricity

      Eliminar
    3. A veces por comodidad o simple costumbre después de cierto tiempo, volvemos a lo que ya conocemos... espero que te funcione, comentas luego por favor...

      Eliminar
  4. ¿es posible ponerlo trasparente? y ¿como hacerlo?, este metodo sirve para archlinix ya que utilizo una basada en ella como lo es Apricity os (la version cinnamon integra gnome shell, excelente idea y productividad os la recomiendo) https://apricityos.com/download
    te agradeceria tu ayuda saludos! Fernando Merino

    ResponderEliminar
    Respuestas
    1. sí, sí es posible, lo probé, pero no hace el efecto de ver las ventanas abiertas, si es lo que tienes en mente.

      Eliminar