GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo cambiar automáticamente el fondo de GNOME en intervalos usando BASH

¿Alguna vez has querido tener ese fondo automático? ¿Cambiar la función en su distribución GNOME Linux? Me perdí esa función después de cambiar de Cinnamon a GNOME 🙁 Busqué aplicaciones en el centro de software y, lamentablemente, no pude encontrar ninguna. Sin embargo, hoy me complace informarle que existe una solución para esta característica faltante mediante el uso del lenguaje de secuencias de comandos BASH.

Requisito

No mucho, todo lo que necesita es un editor de texto para editar algunas líneas de código en el archivo de script. Y la capacidad de crear y guardar archivos de texto. Eso es todo 🙂 En caso de que seas programador, he dejado comentarios (documentado el código) en el script para que puedas entenderlo.

Paso 1:Crear el archivo de secuencia de comandos

Abra su programa de edición de texto favorito y guarde el archivo como .change_wallpapers  en su directorio de inicio.

Observe el punto (.) que precede al nombre del archivo. Queremos que ese archivo esté oculto, por lo que es importante colocarle un punto antes del nombre del archivo.\

Luego copie y pegue el siguiente script en su archivo de script recién creado.

#!/bin/bash
# script to set random background wallpapers on my GNOME desktop
# set base path
export wallpaper_path=
shopt -s nullglob
# store all the image file names in wallpapers array
wallpapers=(
    $wallpaper_path/*.jpg
    $wallpaper_path/*.jpeg
    $wallpaper_path/*.png
    $wallpaper_path/*.bmp
    $wallpaper_path/*.svg
)
# get array size
wallpapers_size=${#wallpapers[*]}

Paso 2:Modificar el guión

​Debe ingresar su propia ruta personalizada en la variable de entorno wallpaper_path . Por ejemplo, si el directorio de su fondo de pantalla (o imagen) está en /home/abc/Pictures/Wallpapers, tendría que modificar esa línea:export wallpaper_path= a

export wallpaper_path=/home/abc/Pictures/WallpapersAdemás, he agregado las extensiones de archivo de imagen más comunes en la variable de matriz fondos de pantalla . Pero es posible que se haya perdido su formato de archivo de imagen preferido. Tal vez sus imágenes estén en formato TIFF o algo más. Asegúrese de agregar esas extensiones que faltan usted mismo. Por ejemplo, si quiero agregar soporte para tif, tendré que agregar esta declaración justo abajo

$wallpaper_path/*.svg line as in:
$wallpaper_path/*.svg $wallpaper_path/*.tif

Paso 3:elige una de las dos opciones siguientes

Elige solo uno de ellos… y salta el otro. De lo contrario, tendrá problemas.
​
La primera opción es si desea que su fondo de pantalla cambie en orden secuencial, es decir, comenzando desde la primera imagen y continuando hasta la última. Y luego repetir el mismo proceso una y otra vez. Por lo tanto, no se queda atascado con la última imagen cuando se agota el ciclo. Copie y pegue el siguiente código en la última línea de su archivo de script.

Cambia el fondo en orden secuencial

# set wallpapers in incremental order
index=0
while [ $index -lt $wallpapers_size ]
do
    gsettings set org.gnome.desktop.background picture-uri ${wallpapers[$index]}
    # index is maxing out, so reset it
    if [ $(($index+1)) -eq $wallpapers_size ]
    then
        index=0
    else
        index=$(($index + 1))
    fi
    # keep the wallpaper for the specified time
    sleep 15m
done

Cambia el fondo en orden aleatorio

Si prefiere la aleatorización sobre el orden secuencial donde sus fondos de pantalla se muestran al azar. Copie y pegue el siguiente código en la última línea de su archivo de script.

# set random wallpapers
# loop infinitely
while true
do
    # generate random index
    random_index=$(($RANDOM % $wallpapers_size))
    # then set a random wallpaper
    gsettings set org.gnome.desktop.background picture-uri ${wallpapers[$random_index]}
    # keep the wallpaper for the specified time
    sleep 15m
done

Paso 4:Terminar

Tu .change_wallpapers  el guión está hecho. Ahora solo queda una cosa por hacer; iniciando esa secuencia de comandos cuando inicias sesión.

€‹Para ello, tenemos que añadir un código en tu .profile archivo para iniciar ese script. Si aún tiene su editor de texto abierto, inicie su archivo .profile y copie estas cuatro líneas de código en la última línea.

# start my custom script for setting random background wallpapers
if [ -f "$HOME/.change_wallpapers" ] ; then
    bash $HOME/.change_wallpapers &
fi

En caso de que no pueda encontrar su archivo oculto .profile en el cuadro de diálogo abierto, presione CTRL + H para mostrar todos los archivos ocultos.

Más tarde, puede presionar la misma combinación de teclas para desactivar la visualización de archivos y carpetas ocultos desde su programa de administración de archivos.

Una vez que haya terminado, reinicie o vuelva a iniciar sesión para que el script entre en vigor.

Conclusión

Espero que hayas encontrado este tutorial simple y fácil de seguir. Y tu guión funcionó con éxito 🙂 Déjame saber tu experiencia en la sección de comentarios a continuación. Por cierto, si alguna vez desea deshabilitar este script de cambio de fondo automático en el futuro, todo lo que tiene que hacer es eliminar ese .change_wallpapers script y elimine esas cuatro líneas adicionales en su .profile expediente.


Linux
  1. ¿Cómo cambiar Cron Shell (sh a Bash)?

  2. Cómo reemplazar espacios en nombres de archivos usando un script bash

  3. ¿Cómo analizar un archivo CSV en Bash?

  4. ¿Cómo escribir un entero en un archivo binario usando Bash?

  5. ¿Cómo rellenar un archivo con FF usando dd?

Cómo redirigir stderr a stdout en Bash

Cómo cambiar el fondo de la pantalla de inicio de sesión de GDM en Ubuntu

Cómo cambiar el fondo de la pantalla de inicio de sesión/bloqueo en Ubuntu

Cómo cambiar los permisos de archivo usando FileZilla

Cómo cambiar los permisos de archivo

Cómo:una introducción al uso de Git