GNOME 3 altında periyodik olarak duvar kağıdı değiştiriliyor mu?


15

Fedome 15'i GNOME 3 ile kullanıyorum ve duvar kağıdımın Windows 7 ile mümkün olduğu gibi periyodik olarak değişmesini istiyorum.

Havuzda hiçbir araç bulamadım. Sanırım bir senaryo ve cron ile değiştirebilirsin, ama daha zarif bir şey arıyorum.

Yanıtlar:



19

Aşağıdaki kabuk komut dosyasını bir yere kaydedin:

#!/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

Ardından .config / autostart içindeki ana dizininize aşağıdakileri wallpaper-changer.desktop adlı bir dosyaya koyun

[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

Bu, duvar kağıdınızı her 10 dakikada bir değiştirir… veya kodda ayarladığınız değer…

Başlangıçta bunu bir OS tesisatçısının Musings'teki "GNOME Kabuğunu Özelleştirme" başlıklı bir yorum üzerine yorum olarak gönderdim .


Bağlantınızda duvar kağıdı veya Hubert Samm değiştirme hakkında hiçbir şey bulamıyorum. Daha spesifik olabilir misiniz?
KovBal

Ya da sadece buraya yazabilirsiniz :) (Adınızı kontrol etmedim, üzgünüm :))
KovBal

1
Şunları da ayarlamak isteyebilirsiniz pictures-options:gsettings set org.gnome.desktop.background picture-options '<zoom|centered|none|scaled|spanned|stretched|wallpaper|zoom>'
Daniel Quinn

bu gnome 2 için geçerli değil mi?
Mart'ta Vicfred

"Set - *" tam olarak ne yapar?
SergioAraujo

3

Init betiği yerine bir cron işi kullanmayı tercih ederseniz, işte yaptığım şey bu. İlham için Hubert'e teşekkürler!

#!/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"

Komut dosyasını bir yere kaydedin (örn. $HOME/bin/rotate_bgYürütülebilir) ( chmod +x $HOME/bin/rotate_bg), ardından cronişi arka planınızın değişmesini istediğiniz sıklıkta çalıştırmak için ekleyin . Kullanıcının tablosunu crontab -edüzenlemek için çalıştırın cron. İşte crontab formatını açıklayan bir link . Aşağıdaki giriş her 10 dakikada bir arka planınızı döndürür:

*0 * * * * $HOME/bin/rotate_bg

Burada doğru değilsiniz. Uyku meşgul bir bekleme değil
Art Gertner

bir alıntı varsa cevabımı değiştireceğim
Nathan Wallace

aynı kaynaktan yukarıda bağladığınız: The sleep instruction suspends the calling process for at least the specified number of seconds (the default), minutes, hours or days. Örneğin süreç çağrılmaz ve CPU döngülerini boşa harcamaz. Wiki'de de Meşgul Beklerken :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

Nedense, Hubert Samm'e cevap vermenin bir yolunu göremiyorum, ama bağlantısını yararlı buldum. Aşağı inmesi veya bu özel cevabı almak için her şeyi okumak istemiyorsanız, Gnome 3'te canlı güncelleme arka planını nasıl başarabildiğimi ekledim.

~ / .Cache / gnome-control / center / background'a giderek arka planınızı ayarladığınız dosyanın önbelleğe alınmış sürümü olan uzun bir dosya ("a4f327082b43572cfa36ad23b5e1fda7be77b6fb6bfe362e4d682fd9c6699f27" gibi bir dosya bulacaksınız. Bu dosyayı silip değiştirmek için aynı ada sahip bir sembolik bağlantı oluşturursanız:

$ rm a4f327082b43572cfa36ad23b5e1fda7be77b6fb6bfe362e4d682fd9c6699f27 
$ ln -s /path/to/original/file a4f327082b43572cfa36ad23b5e1fda7be77b6fb6bfe362e4d682fd9c6699f27

orijinal dosya güncellendiğinde, masaüstü arka planı bunu yansıtacak şekilde değişir. XPlanetFX arka planımın güncel kalmasını sağlamak için bu tekniği kullanıyorum. Örneğin, "background.jpg" adlı bir resme sahip olun ve arka planı güncellemek istediğinizde bu dosyayı değiştirin.

Muhtemelen bununla ilgili daha doğru yol, resim-uri adresini doğrudan seçtiğiniz dosyaya işaret edecek şekilde değiştirmek için gsettings kullanmak olacaktır, ancak symlink seçeneğini seçtim çünkü ayar değişikliğinin ne kadar kalıcı olacağını bilmiyordum duvar kağıdını değiştirmek için UI kullanırken. Ancak her iki şekilde de teoride çalışmalıdır.

Not: Bunu test etmediğimden emin değilim, ancak arka planınızı normal kullanıcı arayüzünden değiştirirseniz, bu uzun benzersiz dosya adının değişmesi ve symlink'inizin artık yararlı olmaması için iyi bir şans var .


1

Aşağıdaki kabuk komut dosyasını bir yere kaydedin:

#!/bin/bash
while true; do
file=`/bin/ls -1 $1 | sort --random-sort | head -1`;path=`readlink --canonicalize "$dir/$file"`;
gsettings set org.gnome.desktop.background picture-uri "file://"$1$path;sleep $2;done

Sözdizimini kullanarak çalıştırın:

scriptname directoryofpictures howmanyseconds
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.