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

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید

نویسنده موضوع: درخواست برنامه عوض کردن بک گراند دسکتاپ  (دفعات بازدید: 8361 بار)

0 کاربر و 3 مهمان درحال مشاهده موضوع.

آفلاین tazekar

  • Full Member
  • *
  • ارسال: 148
  • جنسیت : پسر
  • آی نفس کش!
برنامه ای میخواستم که عکس های یه فولدر بهش بدیم و اونا رو نوبتی بک گراند دسکتاپ قرار بده
ای بابا!

آفلاین آزادنویس

  • Jr. Member
  • *
  • ارسال: 76
  • جنسیت : پسر
    • آزادنوشته های گنو/لینوکسی
برای اینکار راه های مختلفی هست. ولی اگر دنبال برنامه می گردی یک برنامه هست به اسم Wallch که توی لینک زیر شرح بیشتر به همراه ایکرین شات در موردش هست.
از software center می تونی نصبش کنی.

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

یک راه دیگه هم هست. برای درست کردن Wallpaper Slidesho در سایت gnome-look.org یک برنامه کوچولو هست. که شما اول از مسیر زیر فایل رو دریافت می کنید:
بعد مطابق توضیحات خودش که توی لینک هست:

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

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

راستی یادم رفت. یک برنامه دیگه هم هست که کار مشابهی انجام می ده به نام Crebs به لینک زیر سر بزن:
« آخرین ویرایش: 07 تیر 1391، 09:27 ق‌ظ توسط آزادنویس »
زنده باد آزادی
http://azadnevis.wordpress.com

آفلاین سید مسعود امامیان

  • Hero Member
  • *
  • ارسال: 951
http://dl.dropbox.com/u/36760726/Scripts/nat-geo_background-setter.py
فیلتره :D
به عمل کار برآید     به سخندانی نیست . . .

آفلاین آزادنویس

  • Jr. Member
  • *
  • ارسال: 76
  • جنسیت : پسر
    • آزادنوشته های گنو/لینوکسی
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.
زنده باد آزادی
http://azadnevis.wordpress.com

آفلاین حامد سپهر

  • High Hero Member
  • *
  • ارسال: 1556
  • جنسیت : پسر
نرم افزار wally که تو مخازن هم موجوده :)

آفلاین سید مسعود امامیان

  • Hero Member
  • *
  • ارسال: 951
نرم افزار wally که تو مخازن هم موجوده :)

و همچنین wallch ;)
به عمل کار برآید     به سخندانی نیست . . .

آفلاین آیدین

  • Hero Member
  • *
  • ارسال: 733
  • جنسیت : پسر
  • Die it such FRIENDLY word for me
نرم افزار نمیخواد !
عکساتو کپی کن تووی یه پوشه و بعد پوشه رو کپی کن تووی دایرکتوری  /usr/share/backgrounds بعد با یه فایل xml میتونی بهش دستور بدی چیکار کنه ! چه زمانی عکسارو عوض کنه ! خیلی هم راحته !
من از سرزمین آه آمده ام! سرزمین اندوه های بسیار! از جایی که هیچگاه نخندیده ام!!
من زاده ی‌ سرزمین آه هستم. من از سرزمین شرم آمدم،
از سرزمین حیا‌های بی‌ خاصیت، سرزمین قایم شدن‌های پر قیمت،
من از سرزمین حصار‌های بی‌ منفعت آمده ام !! من از سرزمین پنهان شدن آمده ام
من به رسم آهیان ، همچنان می‌‌آیم!!

آفلاین tazekar

  • Full Member
  • *
  • ارسال: 148
  • جنسیت : پسر
  • آی نفس کش!
وایییییییییی!

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

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

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

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

آفلاین آزادنویس

  • Jr. Member
  • *
  • ارسال: 76
  • جنسیت : پسر
    • آزادنوشته های گنو/لینوکسی
وایییییییییی!

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

از این اسکریپت خوشم اومد. لیچ کردم تو هاست خودم:
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 بنویسی فقط ادرس فایل رو کامل بهش بده. فکر کنم کار کنه.

خب این جواب دو تا و نصفی از سوال هات!
زنده باد آزادی
http://azadnevis.wordpress.com

آفلاین tazekar

  • Full Member
  • *
  • ارسال: 148
  • جنسیت : پسر
  • آی نفس کش!
این اسکریپت به زبان پایتون نوشته شده. برای اجراش باید توی ترمینال بنویسی:
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
ای بابا!

آفلاین آزادنویس

  • Jr. Member
  • *
  • ارسال: 76
  • جنسیت : پسر
    • آزادنوشته های گنو/لینوکسی
این اسکریپت به زبان پایتون نوشته شده. برای اجراش باید توی ترمینال بنویسی:
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
زنده باد آزادی
http://azadnevis.wordpress.com

آفلاین tazekar

  • Full Member
  • *
  • ارسال: 148
  • جنسیت : پسر
  • آی نفس کش!
این دستور رو نمیشناسه  ???
ای بابا!

آفلاین آزادنویس

  • Jr. Member
  • *
  • ارسال: 76
  • جنسیت : پسر
    • آزادنوشته های گنو/لینوکسی
این دستور رو نمیشناسه  ???

خروجی کاملت رو بذار تا بتونم کمک کنم.
زنده باد آزادی
http://azadnevis.wordpress.com

آفلاین آزادنویس

  • Jr. Member
  • *
  • ارسال: 76
  • جنسیت : پسر
    • آزادنوشته های گنو/لینوکسی
این دستور رو نمیشناسه  ???

احتمالا 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://azadnevis.wordpress.com

آفلاین tazekar

  • Full Member
  • *
  • ارسال: 148
  • جنسیت : پسر
  • آی نفس کش!
این خط چهارم چجوریه؟ خودتون با همین دستورا نصب کردید؟
« آخرین ویرایش: 09 تیر 1391، 05:31 ب‌ظ توسط mohammad0361 »
ای بابا!