Maintenant, lorsque je veux exécuter un script Shell (fichier .sh ou .csh), je dois cliquer avec le bouton droit de la souris sur le gestionnaire de fichiers, cliquer sur "Ouvrir le terminal ici", puis taper "./xxx.sh" pour exécuter le fichier de script Shell. C'est très gênant pour moi. Cependant, y a-t-il un moyen d'intégrer "exécuter en tant que script Shell lorsque je clique avec le bouton droit de la souris sur un fichier de texte plat"?
Voici le gestionnaire de fichiers que j'utilise le plus souvent: Thunar (sous Xfce4), PCManFM (sous LXDE) et Nautilus (sous Gnome).
Voici comment j'ai configuré ce script: Nautilus peut définir un fond d'écran. Comment définir une connexion et un écran de verrouillage? .
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.
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:
Cliquez sur la troisième option Scripts
. Un autre menu déroulant apparaît avec tous vos scripts:
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 nouvel identifiant et verrouillez le fond d'écran.