انجمن‌های فارسی اوبونتو

کمک و پشتیبانی => نرم‌افزارهای چندرسانه‌ای => نویسنده: tazekar در 07 تیر 1391، 08:01 ق‌ظ

عنوان: درخواست برنامه عوض کردن بک گراند دسکتاپ
ارسال شده توسط: tazekar در 07 تیر 1391، 08:01 ق‌ظ
برنامه ای میخواستم که عکس های یه فولدر بهش بدیم و اونا رو نوبتی بک گراند دسکتاپ قرار بده
عنوان: پاسخ : درخواست برنامه عوض کردن بک گراند دسکتاپ
ارسال شده توسط: آزادنویس در 07 تیر 1391، 09:16 ق‌ظ
برای اینکار راه های مختلفی هست. ولی اگر دنبال برنامه می گردی یک برنامه هست به اسم Wallch که توی لینک زیر شرح بیشتر به همراه ایکرین شات در موردش هست.
http://askubuntu.com/a/67294/20652 (http://askubuntu.com/a/67294/20652)
از software center می تونی نصبش کنی.

من خودم الان از اسکریپت زیر استفاده می کنم که بجای اینکه از فولدر عکس ها عکس رو بخونه می ره و از سایت نشنال جئوگرافی عکس روز رو دانلود می کنه توی فولدر ~/Pictures/NatGeoPics بعدش هم اون عکس رو می ذاره توی بک گراندم.
http://dl.dropbox.com/u/36760726/Scripts/nat-geo_background-setter.py (http://dl.dropbox.com/u/36760726/Scripts/nat-geo_background-setter.py)
من این اسکریپت رو گذاشتم توی کران که هر روز ساعت ده اجرا بشه. می تونید به Startup Applications هم توی اوبونتو اضافه کنید. برای ادیت کران کاربر خودم می زنم crontab -e بعد وارد می کنم:
19 10 * * * /home/mehdi/Scripts/nat-geo_background-setter.pyیعنی ساعت ده و نوزده دقیقه هر روز این اسکریپت رو اجرا کن.

یک راه دیگه هم هست. برای درست کردن Wallpaper Slidesho در سایت gnome-look.org یک برنامه کوچولو هست. که شما اول از مسیر زیر فایل رو دریافت می کنید:
http://gnome-look.org/content/show.php/Wallpaper+Slideshow?content=125178 (http://gnome-look.org/content/show.php/Wallpaper+Slideshow?content=125178)
بعد مطابق توضیحات خودش که توی لینک هست:

1) فایل 'gnome-wallpaper-slideshow' از حالت فشرده خارج کنید
2) اجراش کنید تا دیالوگ باز بشه
3) Select رو بزنید و فولدر عکس های مورد نظرتون رو انتخاب کنید
4) اگر مدت زمان نمایش عکس ها رو می خواهید تغییر بدید الان وقتشه
5) Click 'OK'...

فایل gnome-wallpaper-slideshow.xml در فولدر Home شما ذخیره میشه: ~/.gnome-wallpaper-slideshow و به عنوان بک گراند فعلی شما ست می شه.

راستی یادم رفت. یک برنامه دیگه هم هست که کار مشابهی انجام می ده به نام Crebs به لینک زیر سر بزن:
http://www.obfuscatepenguin.net/crebs/ (http://www.obfuscatepenguin.net/crebs/)
عنوان: پاسخ : درخواست برنامه عوض کردن بک گراند دسکتاپ
ارسال شده توسط: سید مسعود امامیان در 07 تیر 1391، 09:18 ق‌ظ
http://dl.dropbox.com/u/36760726/Scripts/nat-geo_background-setter.py
فیلتره :D
عنوان: پاسخ : درخواست برنامه عوض کردن بک گراند دسکتاپ
ارسال شده توسط: آزادنویس در 07 تیر 1391، 09:25 ق‌ظ
http://dl.dropbox.com/u/36760726/Scripts/nat-geo_background-setter.py
فیلتره :D

این که غصه نداره:
#!/usr/bin/env python
"""
File: nat-geo_background-setter.py
Authors: Samuel Huckins <wormwood_3@yahoo.com>, Jason Coombs <http://www.jaraco.com>
Date: 2011-02-18 18:03:05 CST

Description: A script to pull the latest National Geographic Picture of the
Day and set it as your desktop background. Won't run if you are low on
space, easily configurable below.

NOTE: Only works on Linux or Windows! (Written on Ubuntu)
"""

import os
import re
import sys
import platform
import urllib2
import ctypes
from urllib2 import Request, urlopen, URLError, HTTPError
from BeautifulSoup import BeautifulSoup, Tag
from HTMLParser import HTMLParser, HTMLParseError

picture_dir = os.path.expanduser("~/Pictures/NatGeoPics")
free_space_minimum = 10
base_url = "http://photography.nationalgeographic.com/photography/photo-of-the-day"

#------------------------------------------------------------------------------

def _get_free_bytes(folder):
"""
Return folder/drive free space and total space (in bytes)
"""
if platform.system() == 'Windows':
free_bytes = ctypes.c_ulonglong()
p_free_bytes = ctypes.pointer(free_bytes)
total_bytes = ctypes.c_ulonglong()
p_total_bytes = ctypes.pointer(total_bytes)
GetDiskFreeSpaceEx = ctypes.windll.kernel32.GetDiskFreeSpaceExW
res = GetDiskFreeSpaceEx(unicode(folder), None, p_total_bytes, p_free_bytes)
if not res:
raise WindowsError("GetDiskFreeSpace failed")
free_bytes = free_bytes.value
total_bytes = total_bytes.value
else:
stat = os.statvfs(folder)
free_bytes = stat.f_bsize * stat.f_bfree
total_bytes = stat.f_bsize * stat.f_blocks
return free_bytes, total_bytes

def free_space(dir):
"""
Returns percentage of free space.
"""
try:
free, total = _get_free_bytes(dir)
except OSError:
return False
percen_free = float(free) / total * 100
return int(round(percen_free))

def get_wallpaper_details(base_url):
    """
    Finds the URL to download the wallpaper version of the image as well as the
    title shown on the page.
    """
    try:
        html = urllib2.urlopen(base_url).read()
    # Their server isn't responding, or in time, or the page is unavailable:
    except (urllib2.URLError, urllib2.HTTPError), e:
        return False
    new_html = []
    for line in html.split("\n"):
        # Their pages write some script tags through document.write, which was
        # causing BeautifulSoup to choke
        if line.find("document.write") != -1:
            continue
        else:
            new_html.append(line)
    html = "\n".join(new_html)
    try:
        soup = BeautifulSoup(html)
    except HTMLParseError, e:
        print e
        sys.exit(0)
    # Find wallpaper image URL
    urls = []
    a = soup.findAll("div", {"class": "primary_photo"})[0]
    ab = BeautifulSoup(str(a))
    src = ab.find(name="img")['src']
    print src
    urls.append(src)
    for i in soup.findAll("div", {"class": "download_link"}):
        for link in i.findAll("a"):
            urls.append(link['href'])
    # No download link
    if not urls:
        return False
    url = urls[0]

    # Get main title
    for i in soup.findAll("h1"):
        title = re.sub('[\W]+', '-', i.contents[0]).lower()

    return [url, title]

def download_wallpaper(url, picture_dir, filename):
"""
Downloads URL passed, saves in specified location, cleans filename.
"""
filename = filename + "." + url.split(".")[-1]
image = urllib2.urlopen(url)
outpath = os.path.join(picture_dir, filename)
req = Request(url)
try:
f = urlopen(req)
print "Now downloading " + url
# Open our local file for writing
local_file = open(outpath, "wb")
#Write to our local file
local_file.write(f.read())
local_file.close()
#handle errors
except HTTPError, e:
print "HTTP Error:",e.code , url
except URLError, e:
print "URL Error:",e.reason , url

return outpath

def _set_wallpaper_linux2(filename):
"""
Sets the passed file as wallpaper.
"""
os.system("gconftool-2 -t str --set /desktop/gnome/background/picture_filename " + filename)
print "BG set!"

def _set_wallpaper_win32(filename):
SPI_SETDESKWALLPAPER = 0x14
SPIF_UPDATEINIFILE = 0x1
SPIF_SENDWININICHANGE = 0x2
SystemParametersInfo = ctypes.windll.user32.SystemParametersInfoW
SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, filename,
SPIF_UPDATEINIFILE | SPIF_SENDWININICHANGE)

set_wallpaper = globals()['_set_wallpaper_' + sys.platform]

#------------------------------------------------------------------------------
fs = free_space(picture_dir)
if not fs:
print "%s does not exist, please create." % picture_dir
sys.exit(0)
if fs <= free_space_minimum:
print "Not enough free space in %s! (%s%% free)" % (picture_dir, fs)
sys.exit(0)

ut = get_wallpaper_details(base_url)
if not ut:
    print "No wallpaper URL found."
    sys.exit(0)
url, title = ut[0], ut[1]

# Verify pictures_dir exists
if not os.path.isdir(picture_dir):
print "Hey! This no exist " + picture_dir
os.mkdir(picture_dir)
print "Created dir."

filename = download_wallpaper(url, picture_dir, title)
set_wallpaper(filename)

sys.exit(0)

راستی من این اسکریپت رو کمی دست کاری کردم. با نسخه خودشون کمی فرق داره. توی یونیتی هم امتحانش نکردم. فقط روی دستگاه خودم اون هم gnome داره و اوبونتو 11.04.
عنوان: پاسخ : درخواست برنامه عوض کردن بک گراند دسکتاپ
ارسال شده توسط: حامد سپهر در 07 تیر 1391، 09:46 ق‌ظ
نرم افزار wally که تو مخازن هم موجوده :)
عنوان: پاسخ : درخواست برنامه عوض کردن بک گراند دسکتاپ
ارسال شده توسط: سید مسعود امامیان در 07 تیر 1391، 09:55 ق‌ظ
نرم افزار wally که تو مخازن هم موجوده :)

و همچنین wallch ;)
عنوان: پاسخ : درخواست برنامه عوض کردن بک گراند دسکتاپ
ارسال شده توسط: آیدین در 07 تیر 1391، 01:44 ب‌ظ
نرم افزار نمیخواد !
عکساتو کپی کن تووی یه پوشه و بعد پوشه رو کپی کن تووی دایرکتوری  /usr/share/backgrounds بعد با یه فایل xml میتونی بهش دستور بدی چیکار کنه ! چه زمانی عکسارو عوض کنه ! خیلی هم راحته !
عنوان: پاسخ : درخواست برنامه عوض کردن بک گراند دسکتاپ
ارسال شده توسط: tazekar در 07 تیر 1391، 02:38 ب‌ظ
وایییییییییی!

ممنون از توجه دوستان
خیلی ماهید (چرا شکلک بوس نداریم؟)

از این اسکریپت خوشم اومد. لیچ کردم تو هاست خودم:
http://learn4u.ir/up/files/nat-geo_background-setter.py

چطوری میشه دستی اجراش کرد؟ چطوری میشه به اولش یه کد اضافه کرد که بعد از اجرا شدن 2 دقیقه صبر کنه بعد بقیه کارا رو بکنه؟ چطوری میشه توی استارت آپ گذاشتش؟ (خیلی سوال شد  ::))

نقل‌قول
نرم افزار نمیخواد !
عکساتو کپی کن تووی یه پوشه و بعد پوشه رو کپی کن تووی دایرکتوری  /usr/share/backgrounds بعد با یه فایل xml میتونی بهش دستور بدی چیکار کنه ! چه زمانی عکسارو عوض کنه ! خیلی هم راحته !
راستش من چیزی از اسکریپت نویسی بلد نیستم (فقط از فایل های bat یه چیزایی سر در میارم اونم خیلی مبتدیانه) میشه خودتون زحمتش رو بکشید؟ خیلی ممنون میشم
عنوان: پاسخ : درخواست برنامه عوض کردن بک گراند دسکتاپ
ارسال شده توسط: آزادنویس در 07 تیر 1391، 08:59 ب‌ظ
وایییییییییی!

ممنون از توجه دوستان
خیلی ماهید (چرا شکلک بوس نداریم؟)

از این اسکریپت خوشم اومد. لیچ کردم تو هاست خودم:
http://learn4u.ir/up/files/nat-geo_background-setter.py

چطوری میشه دستی اجراش کرد؟ چطوری میشه به اولش یه کد اضافه کرد که بعد از اجرا شدن 2 دقیقه صبر کنه بعد بقیه کارا رو بکنه؟ چطوری میشه توی استارت آپ گذاشتش؟ (خیلی سوال شد  ::))

نقل‌قول
نرم افزار نمیخواد !
عکساتو کپی کن تووی یه پوشه و بعد پوشه رو کپی کن تووی دایرکتوری  /usr/share/backgrounds بعد با یه فایل xml میتونی بهش دستور بدی چیکار کنه ! چه زمانی عکسارو عوض کنه ! خیلی هم راحته !
راستش من چیزی از اسکریپت نویسی بلد نیستم (فقط از فایل های bat یه چیزایی سر در میارم اونم خیلی مبتدیانه) میشه خودتون زحمتش رو بکشید؟ خیلی ممنون میشم

این اسکریپت به زبان پایتون نوشته شده. برای اجراش باید توی ترمینال بنویسی:
python nat-geo_background-setter.pyفقط قبلش اون فولدری که گفتم رو ایجاد کن. منو توی فایل رو اگر ببینی آدرس اون فولدر رو هارد کد کردم. یعنی نوشتم توی کد. واسه دستکاری این اسکریپت هم باید پایتون بلد باشی یا اسکریپت نویسی شل. واسه اینکه دو دقیقه صبر کنه می تونی اولش این رو اضافه کنی
import time
time.sleep(120)
واسه اضافه کردنش به استارت آپ gnome می تونی توی ترمینال بزنی gnome-session-properties و یک گزینه جدید بهش اضافه کنی و همون دستور بالا رو توی باکس command بنویسی فقط ادرس فایل رو کامل بهش بده. فکر کنم کار کنه.

خب این جواب دو تا و نصفی از سوال هات!
عنوان: پاسخ : درخواست برنامه عوض کردن بک گراند دسکتاپ
ارسال شده توسط: tazekar در 08 تیر 1391، 06:48 ق‌ظ
این اسکریپت به زبان پایتون نوشته شده. برای اجراش باید توی ترمینال بنویسی:
python nat-geo_background-setter.py
:o

python nat-geo_background-setter.py
Traceback (most recent call last):
  File "nat-geo_background-setter.py", line 21, in <module>
    from BeautifulSoup import BeautifulSoup, Tag
ImportError: No module named BeautifulSoup
عنوان: پاسخ : درخواست برنامه عوض کردن بک گراند دسکتاپ
ارسال شده توسط: آزادنویس در 08 تیر 1391، 08:37 ق‌ظ
این اسکریپت به زبان پایتون نوشته شده. برای اجراش باید توی ترمینال بنویسی:
python nat-geo_background-setter.py
:o

python nat-geo_background-setter.py
Traceback (most recent call last):
  File "nat-geo_background-setter.py", line 21, in <module>
    from BeautifulSoup import BeautifulSoup, Tag
ImportError: No module named BeautifulSoup

راه حلش ساده است!  \\:D/
این اسکریپت برای خوندن جواب سرور نشنال جیوگرافی از یک ماژول کمکی استفاده می کنه که روی دستگاه تو نیست. اینطوری نصبش کن:
sudo easy_install beautifulsoup
عنوان: پاسخ : درخواست برنامه عوض کردن بک گراند دسکتاپ
ارسال شده توسط: tazekar در 08 تیر 1391، 12:54 ب‌ظ
این دستور رو نمیشناسه  ???
عنوان: پاسخ : درخواست برنامه عوض کردن بک گراند دسکتاپ
ارسال شده توسط: آزادنویس در 08 تیر 1391، 01:12 ب‌ظ
این دستور رو نمیشناسه  ???

خروجی کاملت رو بذار تا بتونم کمک کنم.
عنوان: پاسخ : درخواست برنامه عوض کردن بک گراند دسکتاپ
ارسال شده توسط: آزادنویس در 08 تیر 1391، 01:35 ب‌ظ
این دستور رو نمیشناسه  ???

احتمالا setuptools رو نداری که یک ابزار برای نصب بسته های پایتونیه. خیلی هم برکاربرده. می تونی از لینک زیر دانلود ونصبش کنی. اولی لینک پیج مربوط به اونه و دومی هم لینکیه که توضیح داده جطور نصب کنی اما ممکنه ورژنش آخرینی نباشه که تو سایتشه.
http://pypi.python.org/pypi/setuptools (http://pypi.python.org/pypi/setuptools)
http://www.geeksww.com/tutorials/web_development/python/installation/how_to_download_and_install_setuptools_module_for_python.php (http://www.geeksww.com/tutorials/web_development/python/installation/how_to_download_and_install_setuptools_module_for_python.php)
عنوان: پاسخ : درخواست برنامه عوض کردن بک گراند دسکتاپ
ارسال شده توسط: tazekar در 08 تیر 1391، 07:06 ب‌ظ
این خط چهارم چجوریه؟ خودتون با همین دستورا نصب کردید؟
عنوان: پاسخ : درخواست برنامه عوض کردن بک گراند دسکتاپ
ارسال شده توسط: آزادنویس در 09 تیر 1391، 02:27 ق‌ظ
دارم کفری میشم  >:(

این خط چهارم چجوریه؟ خودتون با همین دستورا نصب کردید؟

دوست من همراه با هر درخواست کمک اطلاعات لازم رو ضمیمه کن تا بهتر جواب بگیری. احتمالا منظورت از خط چهارم، چهارمین دستورالعمل لینک دومه:
/opt/python/bin/python setup.py installخب با این فرض باید بگم که ایشون چون پایتون رو یک جای خاص نصب کرده آدرس اون رو کامل داده. شما فقط وارد دایرکتوری setuptools بشو و بجای این بالایی بزن:
sudo python setup.py install
عنوان: پاسخ : درخواست برنامه عوض کردن بک گراند دسکتاپ
ارسال شده توسط: tazekar در 09 تیر 1391، 04:57 ق‌ظ
ممنون کار کرد  \\:D/
عنوان: پاسخ : درخواست برنامه عوض کردن بک گراند دسکتاپ
ارسال شده توسط: آزادنویس در 14 بهمن 1391، 04:27 ب‌ظ
این پست بخاطر مراجعاتیه که ممکنه آیندگان داشته باشند!

من لینوکس مینت با دسکتاپ سینامن نصب کردم ولی اسکریپتی که صفحه پیش دادم براش کار نکرد. راه حلش اینه که توی اون اسکریپت خط ۱۳۶ رو با این دستور جایگزین کنید:

# To work in Cinnamon
        os.system("gsettings set org.gnome.desktop.background picture-uri file://" + filename)
عنوان: پاسخ : درخواست برنامه عوض کردن بک گراند دسکتاپ
ارسال شده توسط: tazekar در 21 بهمن 1391، 02:42 ب‌ظ
دمت گرم. منم میخوام یه مدت برم مینت رو تجربه کنم  ;)
عنوان: پاسخ : درخواست برنامه عوض کردن بک گراند دسکتاپ
ارسال شده توسط: دانیال بهزادی در 22 بهمن 1391، 05:10 ب‌ظ
بهترین برنامه‌ای که من در این زمینه دیدم (و الآن هم خودم ازش استفاده می‌کنم) وریتی (http://peterlevi.com/variety/) بوده که توانایی استفاده از مخازن برخط و جست‌وجو میان تصاویر پس‌زمینه مطابق با سلایق افراد رو هم داره ;)
عنوان: پاسخ : درخواست برنامه عوض کردن بک گراند دسکتاپ
ارسال شده توسط: tazekar در 27 اردیبهشت 1392، 11:54 ق‌ظ
سلام مجدد دوستان. الان دوباره بعد از مدت ها هوس کردم از اون اسکریپت نشنال جئو گرافی استفاده کنم. روی ubuntu 13.04 . عکس رو دانلود می کنه آخرشم مینویسه: BG set
ولی بک گراند تغییر نمی کنه

ظاهرا با این ورژن اوبونتو سازگار نیست. یا یه تغییر کوچیک توی کد ها لازمه. کسی ایده ای داره؟