web-dev-qa-db-fra.com

Nautilus peut définir un fond d'écran. Comment peut-il définir la connexion et verrouiller le fond d'écran?

Dans Nautilus, une option de menu permet d’utiliser l’image actuelle comme papier peint:

Nautilus Wallpaper

Comment utiliser l'image actuelle en tant que papier peint pour l'écran de connexion et l'écran de verrouillage?

2
WinEunuuchs2Unix

Après avoir utilisé Nautilus pour naviguer et afficher un fichier .png ou .jpg approprié à utiliser comme écran de connexion et écran verrouillé, Nautilus peut le définir pour vous à l'aide d'un script:

Set Login Wallpaper.gif

Remarque: Dans Ubuntu 18.04, seul le fond d'écran de verrouillage est modifié. Une technique différente sera nécessaire pour changer le fond d'écran de connexion.

Pour créer le script, utilisez:

cd ~/.local/share/nautilus/scripts/
gedit set-login-wallpaper

Coller dans ces lignes:

#!/bin/bash

## Set login wallpaper

# strip new line char passed by Nautilus
FILENAME=$(echo $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS | sed -e 's/\r//g')

# Multiple files can't be selected.
LINE_COUNT=$(wc -l <<< "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS")
LINE_COUNT=$((LINE_COUNT-1))

if [[ $LINE_COUNT > 1 ]] ; then
    zenity --error --text "Ony one file can be selected at a time! "
    exit 1
fi

# Object type must be "file..." (ie no directories, etc.)
if [ -d "${FILENAME}" ] ; then
    zenity --error --text "$FILENAME is a directory!";
    exit 1
else
    if [ -f "${FILENAME}" ]; then
        : # Bash noop
    else
        zenity --error --text "${FILENAME} is not a file!";
        exit 2
    fi
fi

# Build working file in /tmp
echo "[com.canonical.unity-greeter]" > /tmp/set-login-wallpaper.tmp
echo "draw-user-backgrounds=false" >> /tmp/set-login-wallpaper.tmp
echo "background='$FILENAME'" >> /tmp/set-login-wallpaper.tmp

# Must run as Sudo
if [ "$EUID" -ne 0 ] ; then

    # Get Sudo password
    PASSWORD=$(zenity --password --title="Set Login Wallpaper" --timeout=20)

    # copy working file to real file using Sudo
    echo $PASSWORD | Sudo -S cp /tmp/set-login-wallpaper.tmp \
/usr/share/glib-2.0/schemas/10_unity_greeter_background.gschema.override

    # compile using Sudo
    echo $PASSWORD | Sudo -S glib-compile-schemas /usr/share/glib-2.0/schemas

else
    # Already Sudo so simply copy and compile
    # copy working file to real file
    cp /tmp/set-login-wallpaper.tmp \
/usr/share/glib-2.0/schemas/10_unity_greeter_background.gschema.override

    # compile
    glib-compile-schemas /usr/share/glib-2.0/schemas
fi

exit 0

Enregistrez le fichier et quittez l'éditeur gedit.

Maintenant, marquez le script comme exécutable en utilisant:

chmod +x set-login-wallpaper

Ouvrez Nautilus et accédez à votre répertoire avec des images de papier peint. Recherchez une image appropriée et cliquez dessus avec le bouton droit de la souris. Ce menu déroulant apparaît:

Nautilus Right Click Drop Down

Cliquez sur la troisième option Scripts. Un autre menu déroulant apparaît avec tous vos scripts:

Nautilus set-login-wallpaper Drop Down

Sélectionnez set-login-wallpaper.

Lorsque le script sera exécuté, vous devrez entrer votre mot de passe Sudo.

Redémarrez et profitez de votre nouveau fond d'écran de connexion.

3
WinEunuuchs2Unix