เปลี่ยน wallpaper บน Ubuntu แบบสุ่ม (Random)

เบื่อ wallpaer เดิมๆ ที่เห็นทุกวัน วันดีคืนดีก็กดเปลี่ยน พอดีไปเจอ wallpaper สวยๆ อยู่ด้านใน /usr/share/pixmaps/backgrounds/gnome/ แต่ก็เบื่อที่ต้องเปลี่ยนด้วยมือ อยากได้มานานแล้วแต่ไม่เคยสนใจจะทำ คือ อยากให้แสดงผล wallpaper แบบสุ่ม (Random) เลยลองไป google ว่า random gnome background ก็ได้มาทดลองตัวแรกเลย เห็นว่าสามารถดึงไฟล์ จาก Gnome Art มาได้ เลยลอง เริ่มจาก download zip จาก http://www.gnomefiles.org/app.php?soft_id=938 แตกไฟล์ไว้ใน folder ที่ต้องการจะสุ่ม เช่น ของผม /home/tee/Images/Wallpapers/

ไฟล์มีอยู่สองแบบ คือ

1. แบบสุ่มรูปจาก folder ที่ต้องการ เปิดไฟล์ change-background-folder.py ขึ้นมา ผมต้องเปลี่ยนค่า Folder เป็น Folder = "Images/Wallpapers" นับจากบ้านตัวเองจะหมายถึงเรียก /home/tee/Images/Wallpapers แล้วเข้าไปที่ที่เก็บ script ลองสั่งทำงาน ./change-background-folder.py มันจะสร้าง link ชื่อ Wallpapar ไปยัง wallpaper เป้าหมายขึ้นมา

เสร็จแล้วไปที่ เปลี่ยน background บน ubuntu เลือก add แล้วเลือก link Wallpaper ที่สร้างขึ้นนี้ เสร็จแล้วเพิ่มใน cron ว่า * * * * * /home/tee/Images/Wallpapers/change-background-folder.py อันนี้เป็นการสั่งให้ทำงานทุกนาที วิธีใช้ cron ไป google กันต่อเอาเอง

2. แบบสุ่มรูปจาก Gnome Art จะดึง wallpaper จาก ftp.gnome.org เปลี่ยนค่า Folder เหมือนเดิม แล้วสร้าง .wallpaperrc ดังนี้

[My Section]
resolution=1024x768
type=NATURE

ส่วนของ type มีให้เลือกใส่หลายตัว เช่น GNOME, ABSTRACT, NATURE, OTHER ผมลองใส่ ALL คือสุ่มหมดทุกหมวด มัน error แฮะ ถ้าอยากให้ all จริงๆ เลยใช้ option -r ตามหลังคำสั่งจะชัวร์กว่า เสร็จแล้วใส่ใน cron ว่า * * * * * /home/tee/Images/Wallpapers/change-background-art-gnome.py นอกนั้นทำเหมือนด้านบน ทีนี้ script ตัวนี้จะลบไฟล์ wallpapaer เก่าทิ้งไปทุกครั้งที่ load ตัวใหม่ ผมเสียดายอุตส่าห์โหลดมาแล้ว ก็อยากเก็บเอาไว้เลยต้องแก้ไข script กันนิดหน่อย หาบรรทัด os.remove(os.readlink(os.path.join(Wallpapers,'Wallpaper'))) ใส่ comment # ให้มันซะ เท่านี้ไฟล์ wallpaper ก็จะเยอะแยะเต็มไปหมด

ผมไม่เคยเขียน python ก็เพิ่งเคยเห็นหน้าตามันครั้งนี้ครั้งแรกเนี่ยแหละ ตอนแรก error ตรงที่ผมกำหนด .wallpaperrc ไม่เป็น ไม่ได้ใส่ [section] หาอ่านจาก error อะไร parser สักอย่าง แล้วไป google เอา จึงจะเข้าใจ พอมา error ตรง .wallpaperrc แล้วมันยังทำเอา error ต่อ ต้องลบไฟล์ .wallpapers ทิ้งไปก่อน หากใคร error ตรงที่กำหนด .wallpaperrc ไม่ถูกต้องหลังจากแก้แล้วต้องลบ .wallpapers ออกด้วยจึงจะสั่ง run ใหม่ได้ถูกต้อง

หลังจากทำตัวนี้เสร็จก็ไปค้นๆ ดูใน ubuntuclub เจอมีคนพูดถึง drapes เลยลองลงดูปรากฏว่าใช้ resource cpu ไปนานมากๆ คาดว่าคงพยายาม scan รูปจากใน home ทั้งหมดทำให้ใช้เวลานานจนขี้เกียจรอเลยปิดมันไป

ส่วนอีกตัว wallpapar-tray พอลงแล้วมันจะเป็น applet ใน Gnome Panel ต้อง add applet เข้าไปอีกทีนึง ตัวนี้ใช้ได้เลยเลือก directory ที่ต้องการได้ ตั้งเวลาสุ่มได้ ข้อเสียคือไม่มีให้เลือกแสดงแบบ zoom เหมือนใน Appearance Preference แต่ก็สามารถแก้ไขได้เหมือนกัน โดยการเลือก Appearance Preference ให้เป็น zoom ทีหลัง ไม่รู้ทำไมมันไม่มีให้เลือก zoom ในโปรแกรมสรุปว่า ถ้าต้องการเล่นกับไฟล์ในเครื่องก็ใช้ wallpaper-tray ถ้าจะดึงภาพสวยๆ จาก Anome Art ก็ต้องตัว change-background-art-gnome.py นี้เลย script นี้โบราณมากๆ แต่อยู่ google ที่ผมค้นเจออันดับหนึ่ง

ที่มา
http://numthang.org/content/4971/1/