Seu script não funcionará para todos. A variável que você define para seu usuário para o usuário será incorreta para as pessoas que têm o local HOME
em um local diferente de /home/user
. Por exemplo, meu local de residência para meu espaço pessoal é /home/user/l/j/ljames
.
Em vez de definir o caminho como "file:///home/$USER/.wallpaper/1920x1080"
, você deve alterá-lo corretamente para "file:///$HOME/.wallpaper/1920x1080"
. A variável $HOME
já está expandida para o espaço principal completo do usuário.
Seu script funcionará se com estas alterações:
#!/bin/bash
cd ~/
rm -r ~/.wallpaper
mkdir .wallpaper
cd ~/.wallpaper
wget https://source.unsplash.com/random/1920x1080
# USER=$(whoami) This line isn't neccesary.)
path="file:///$HOME/.wallpaper/1920x1080"
echo $path
gsettings set org.gnome.desktop.background picture-uri "$path"
Um exemplo mais eficiente é:
#!/bin/bash
[ ! -d ~/.wallpaper ] && mkdir ~/.wallpaper
cd ~/.wallpaper
wget -O 1920x1080 https://source.unsplash.com/random/
path="file:///$HOME/.wallpaper/1920x1080"
rm ~/.cache/wallpaper/*
gsettings set org.gnome.desktop.background picture-uri "$path"
A explicação das linhas é:
Line #1: Create wallpaper directory if it doesn't exist.
Line #2: Move to the folder.
Line #3: Overwrite the current file with the new wallpaper.
Line #4: Set the pathname variable.
Line #5: Removed the Wallpaper cache for image change detection.
Line #6: Active the new wallpaper.