การเปลี่ยนภาพพื้นหลังภายใต้ GNOME 3 เป็นระยะ?


15

ฉันใช้ Fedora 15 กับ GNOME 3 และฉันต้องการให้รูปพื้นหลังเปลี่ยนเป็นระยะ ๆ เหมือนที่เป็นไปได้กับ Windows 7 มันจะดีที่สุดถ้ามันสามารถใช้ RSS / Atom หรือไดเรกทอรีที่ระบุ

ฉันไม่พบเครื่องมือใด ๆ ในที่เก็บ ฉันเดาว่าคุณสามารถเปลี่ยนได้ด้วยสคริปต์และ cron แต่ฉันกำลังมองหาบางสิ่งที่หรูหรากว่า

คำตอบ:



19

บันทึกเชลล์สคริปต์ต่อไปนี้ไว้ที่:

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

จากนั้นในโฮมไดเร็กตอรี่ของคุณใน. config / autostart ให้ใส่คำสั่งต่อไปนี้ลงในไฟล์ที่ชื่อว่า 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

สิ่งนี้จะเปลี่ยนวอลล์เปเปอร์ของคุณทุก ๆ 10 นาที ... หรือสิ่งที่คุณกำหนดในสคริปต์ ...

ฉันโพสต์สิ่งนี้เป็นความคิดเห็นในโพสต์ในหัวข้อ "การปรับแต่ง GNOME Shell"ที่ Musings of plumber OS


ฉันไม่พบสิ่งใดเกี่ยวกับการเปลี่ยนรูปพื้นหลังหรือ Hubert Samm ในลิงก์ของคุณ คุณเจาะจงมากกว่านี้ไหม?
KovBal

หรือคุณสามารถจดไว้ที่นี่ :) (ฉันไม่ได้ตรวจสอบชื่อของคุณขอโทษ :))
KovBal

1
เป็นที่น่าสังเกตว่าคุณอาจต้องการตั้งpictures-options:gsettings set org.gnome.desktop.background picture-options '<zoom|centered|none|scaled|spanned|stretched|wallpaper|zoom>'
Daniel Quinn

สิ่งนี้ใช้ไม่ได้กับ gnome 2 ใช่ไหม
Vicfred

"set - *" ทำอะไรกันแน่
SergioAraujo

3

หากคุณต้องการใช้งาน cron แทนที่จะเป็นสคริปต์เริ่มต้นนี่คือสิ่งที่ฉันทำ ขอบคุณ Hubert สำหรับแรงบันดาลใจ!

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

บันทึกสคริปต์ไว้ที่ใดที่หนึ่ง (เช่น$HOME/bin/rotate_bg) ทำให้สามารถเรียกใช้งานได้ ( chmod +x $HOME/bin/rotate_bg) จากนั้นเพิ่มcronงานเพื่อเรียกใช้บ่อยเท่าที่คุณต้องการให้พื้นหลังเปลี่ยน เรียกใช้crontab -eเพื่อแก้ไขcronตารางสำหรับผู้ใช้ของคุณ นี่คือลิงค์อธิบายรูปแบบ crontab รายการต่อไปนี้จะหมุนพื้นหลังของคุณทุก 10 นาที:

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

คุณไม่ถูกแก้ไขที่นี่ การนอนหลับไม่ใช่การรอคอยที่วุ่นวาย
Art Gertner

ถ้าคุณได้รับการอ้างอิงฉันจะเปลี่ยนคำตอบของฉัน
นาธานวอลเลซ

จากแหล่งข้อมูลเดียวกันกับที่ฉันลิงค์ไว้ด้านบน: The sleep instruction suspends the calling process for at least the specified number of seconds (the default), minutes, hours or days. กระบวนการเช่นไม่ได้รับการเรียกใช้และไม่ทำให้สิ้นเปลืองรอบ CPU และจากBusy Waiting บน 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

ด้วยเหตุผลบางอย่างฉันไม่เห็นวิธีตอบกลับ Hubert Samm แต่ฉันพบว่าลิงก์ของเขามีประโยชน์ ในกรณีที่มันล้มลงหรือคุณไม่ต้องการอ่านทั้งหมดเพื่อรับคำตอบเฉพาะนี้ฉันได้เพิ่มวิธีที่ฉันจัดการเพื่อให้พื้นหลังอัปเดตสดใน Gnome 3 ได้สำเร็จ

โดยไปที่ ~ / .cache / gnome-control / center / background คุณจะพบไฟล์ที่มีชื่อยาว (เช่น "a4f327082b43572cfa36ad23b5e1fda7be77b6fb6bfe362e4d682fd9c6699f27") ซึ่งจะเป็นไฟล์ที่มีชื่อยาว หากคุณลบไฟล์นี้และสร้าง symlink ด้วยชื่อเดียวกันเพื่อแทนที่:

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

จากนั้นเมื่อไฟล์ต้นฉบับได้รับการอัปเดตพื้นหลังเดสก์ท็อปจะเปลี่ยนเพื่อแสดงว่า ฉันใช้เทคนิคนี้เพื่อให้แน่ใจว่าพื้นหลัง XPlanetFX ของฉันเป็นปัจจุบันอยู่เสมอ ตัวอย่างเช่นเพียงแค่มีภาพชื่อ "background.jpg" และเปลี่ยนไฟล์นี้เมื่อใดก็ตามที่คุณต้องการอัปเดตพื้นหลัง

อาจเป็นวิธีที่ถูกต้องมากขึ้นในการใช้ gsettings ในการเปลี่ยนที่อยู่ของรูปภาพ -uri เพื่อชี้ตรงไปยังไฟล์ที่คุณเลือก แต่ฉันเลือกตัวเลือก symlink เพราะฉันไม่รู้ว่าการเปลี่ยนแปลงการตั้งค่าแบบถาวรจะเป็นอย่างไร เมื่อใช้ UI เพื่อเปลี่ยนรูปพื้นหลัง อย่างไรก็ตามวิธีการทั้งสองควรทำงานในทฤษฎี

หมายเหตุ: ฉันไม่รู้สิ่งนี้อย่างแน่นอนเนื่องจากฉันไม่ได้ทดสอบ แต่มีโอกาสที่ดีถ้าคุณเปลี่ยนพื้นหลังของคุณผ่าน UI ปกติชื่อไฟล์ที่ไม่ซ้ำกันจะเปลี่ยนไปและ symlink ของคุณจะไม่เป็นประโยชน์อีกต่อไป .


1

บันทึกเชลล์สคริปต์ต่อไปนี้ไว้ที่:

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

เรียกใช้โดยใช้ไวยากรณ์:

scriptname directoryofpictures howmanyseconds
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.