Changer périodiquement le papier peint sous GNOME 3?
15
J'utilise Fedora 15 avec GNOME 3 et j'aimerais que mon fond d'écran change périodiquement comme c'est possible avec Windows 7. Ce serait le meilleur s'il pouvait utiliser RSS / Atom ou un répertoire spécifié.
Je n'ai trouvé aucun outil dans le référentiel. Je suppose que vous pouvez le changer avec un script et cron, mais je cherche quelque chose de plus élégant.
#!/bin/bash
WP_DIR=/home/honeyp0t/wallpapers
cd $WP_DIR
while [ 1 ]
do
set -- *
length=$#
random_num=$((( $RANDOM % ($length) ) + 1))
gsettings set org.gnome.desktop.background picture-uri "file://$WP_DIR/${!random_num}"
sleep 600
done
Ensuite, dans votre répertoire personnel dans .config / autostart, placez ce qui suit dans un fichier appelé wallpaper-changer.desktop
[Desktop Entry]
Name=wallpaper-changer
Exec=/home/sammhe/bin/setbg.sh
Comment=change wallpaper every so often
Hidden=false
Type=Application
X-GNOME-Autostart-enabled=true
Cela changera votre fond d'écran toutes les 10 minutes… ou quelle que soit la valeur que vous définissez dans le script…
Je ne trouve rien sur le changement de fond d'écran ou sur Hubert Samm sur votre lien. Pourriez-vous être plus précis?
KovBal
Ou vous pouvez simplement l'écrire ici :) (je n'ai pas vérifié votre nom, désolé :))
KovBal
1
Il convient de noter que vous pouvez également définir pictures-options:gsettings set org.gnome.desktop.background picture-options '<zoom|centered|none|scaled|spanned|stretched|wallpaper|zoom>'
Daniel Quinn le
cela ne fonctionne pas pour gnome 2 non?
Vicfred
Que fait exactement "set - *"?
SergioAraujo
3
Si vous préférez utiliser un travail cron au lieu d'un script init, voici ce que j'ai fait. Merci à Hubert pour l'inspiration!
#!/bin/bash
walls_dir=$HOME/.wallpapers
selection=$(find $walls_dir -type f -name "*.jpg" -o -name "*.png" | shuf -n1)
gsettings set org.gnome.desktop.background picture-uri "file://$selection"
Enregistrez le script quelque part (par exemple $HOME/bin/rotate_bg), rendez-le exécutable ( chmod +x $HOME/bin/rotate_bg), puis ajoutez le crontravail pour l'exécuter aussi souvent que vous souhaitez que votre arrière-plan change. Exécutez crontab -epour modifier le crontableau pour votre utilisateur. Voici un lien décrivant le format crontab . L'entrée suivante fera pivoter votre arrière-plan toutes les 10 minutes:
Vous n'êtes pas correct ici. Le sommeil n'est pas une attente bien remplie
Art Gertner
si vous avez une citation, je changerai ma réponse
Nathan Wallace
de la même source que j'ai lié ci - dessus: The sleep instruction suspends the calling process for at least the specified number of seconds (the default), minutes, hours or days. Par exemple, le processus n'est pas appelé et ne gaspille pas les cycles CPU. Aussi de Busy Waiting sur Wiki :Busy-waiting itself can be made much less wasteful by using a delay function (e.g., sleep()) found in most operating systems. This puts a thread to sleep for a specified time, during which the thread will waste no CPU time
Art Gertner
1
Pour une raison quelconque, je ne vois pas de moyen de répondre à Hubert Samm, mais j'ai trouvé son lien utile. Juste au cas où cela tomberait ou si vous ne voulez pas lire le tout pour obtenir cette réponse particulière, j'ai ajouté comment j'ai réussi à accomplir une mise à jour en direct dans Gnome 3.
En allant dans ~ / .cache / gnome-control / center / backgrounds, vous trouverez un fichier avec un nom long (quelque chose comme "a4f327082b43572cfa36ad23b5e1fda7be77b6fb6bfe362e4d682fd9c6699f27") qui est la version en cache du fichier sur lequel vous avez défini votre arrière-plan. Si vous supprimez ce fichier et créez un lien symbolique du même nom pour le remplacer:
puis, lorsque le fichier d'origine est mis à jour, l'arrière-plan du bureau change pour refléter cela. J'utilise cette technique pour m'assurer que mon arrière-plan XPlanetFX reste à jour. Par exemple, il vous suffit d'avoir une image appelée "background.jpg" et de modifier ce fichier chaque fois que vous souhaitez mettre à jour l'arrière-plan.
La façon la plus correcte de procéder serait probablement d'utiliser gsettings pour modifier l'adresse de l'URI pour pointer directement vers le fichier de votre choix, mais j'ai choisi l'option de lien symbolique car je ne savais pas à quel point le changement de paramètre serait persistant. lors de l'utilisation de l'interface utilisateur pour changer le fond d'écran. Quoi qu'il en soit, cela devrait fonctionner en théorie.
Remarque: Je ne sais pas cela avec certitude car je ne l'ai pas testé, mais il y a de fortes chances que si vous modifiez votre arrière-plan via l'interface utilisateur normale, ce long nom de fichier unique changera et votre lien symbolique ne sera plus utile .
pictures-options
:gsettings set org.gnome.desktop.background picture-options '<zoom|centered|none|scaled|spanned|stretched|wallpaper|zoom>'
Si vous préférez utiliser un travail cron au lieu d'un script init, voici ce que j'ai fait. Merci à Hubert pour l'inspiration!
Enregistrez le script quelque part (par exemple
$HOME/bin/rotate_bg
), rendez-le exécutable (chmod +x $HOME/bin/rotate_bg
), puis ajoutez lecron
travail pour l'exécuter aussi souvent que vous souhaitez que votre arrière-plan change. Exécutezcrontab -e
pour modifier lecron
tableau pour votre utilisateur. Voici un lien décrivant le format crontab . L'entrée suivante fera pivoter votre arrière-plan toutes les 10 minutes:la source
The sleep instruction suspends the calling process for at least the specified number of seconds (the default), minutes, hours or days
. Par exemple, le processus n'est pas appelé et ne gaspille pas les cycles CPU. Aussi de Busy Waiting sur Wiki :Busy-waiting itself can be made much less wasteful by using a delay function (e.g., sleep()) found in most operating systems. This puts a thread to sleep for a specified time, during which the thread will waste no CPU time
Pour une raison quelconque, je ne vois pas de moyen de répondre à Hubert Samm, mais j'ai trouvé son lien utile. Juste au cas où cela tomberait ou si vous ne voulez pas lire le tout pour obtenir cette réponse particulière, j'ai ajouté comment j'ai réussi à accomplir une mise à jour en direct dans Gnome 3.
En allant dans ~ / .cache / gnome-control / center / backgrounds, vous trouverez un fichier avec un nom long (quelque chose comme "a4f327082b43572cfa36ad23b5e1fda7be77b6fb6bfe362e4d682fd9c6699f27") qui est la version en cache du fichier sur lequel vous avez défini votre arrière-plan. Si vous supprimez ce fichier et créez un lien symbolique du même nom pour le remplacer:
puis, lorsque le fichier d'origine est mis à jour, l'arrière-plan du bureau change pour refléter cela. J'utilise cette technique pour m'assurer que mon arrière-plan XPlanetFX reste à jour. Par exemple, il vous suffit d'avoir une image appelée "background.jpg" et de modifier ce fichier chaque fois que vous souhaitez mettre à jour l'arrière-plan.
La façon la plus correcte de procéder serait probablement d'utiliser gsettings pour modifier l'adresse de l'URI pour pointer directement vers le fichier de votre choix, mais j'ai choisi l'option de lien symbolique car je ne savais pas à quel point le changement de paramètre serait persistant. lors de l'utilisation de l'interface utilisateur pour changer le fond d'écran. Quoi qu'il en soit, cela devrait fonctionner en théorie.
Remarque: Je ne sais pas cela avec certitude car je ne l'ai pas testé, mais il y a de fortes chances que si vous modifiez votre arrière-plan via l'interface utilisateur normale, ce long nom de fichier unique changera et votre lien symbolique ne sera plus utile .
la source
Enregistrez le script shell suivant quelque part:
Exécutez-le en utilisant la syntaxe:
la source