Je voulais faire un script bash qui prend une image aléatoire d'un dossier et la définit comme arrière-plan du bureau. J'ai compris l'algorithme (ce n'est pas difficile) mais je ne trouve pas de commande qui changerait l'image d'arrière-plan si vous lui donniez le chemin d'accès à l'image.
J'ai trouvé gconftool
pour bash 2. ~ et gsettings
pour bash 3. ~, mais j'ai GNU bash, version 4.3.42 (1) - disponible sur Ubuntu 16.04 LTS et ceux-ci ne fonctionnent pas.
En supposant que vous utilisez Ubuntu 16.04 standard avec Unity, vous pouvez utiliser la commande suivante pour définir le papier peint:
gsettings set org.gnome.desktop.background picture-uri "file:///home/username/path/to/image.jpg"
Vous devriez également regarder Variety wallpaper changer - il fait la même chose que ce que vous voulez faire avec un script Shell, avec beaucoup des fonctionnalités et des options.
Je l'ai fait comme ça:
targetDir="/home/username/Photos"
function get_next_photo() {
# Returns a random file form targetdir
files=( "$targetDir"/* )
echo "${files[RANDOM % ${#files[@]}]}"
}
function set_background() {
# Takes an absolute file path as argument. Need * for spaces in path
bg="$*"
echo "Setting background to $bg"
gsettings set org.gnome.desktop.background picture-uri "file://$bg"
}
background=$(get_next_photo)
echo "Next background is $background"
set_background $background
Ajoutez ensuite un lanceur rapide pour votre script au dock, et vous pourrez changer votre fond d’écran en un clic.