تغییر عکس پس زمینه دسکتاپ در پایتون

سلام. دوستان ی اسکریپتی نوشتم که میاد عکس رو از سایت دانلود میکنه و رو کامپیوتر ذخیره میکنه.

حالا میخوام به صورت رندم انتخاب کنه و بزاره روی صفحه. همچین ماژولی پید نمیکنم

برای چه سیستم عاملی؟

Windows:

import ctypes
image_path = 'image.jpg'
ctypes.windll.user32.SystemParametersInfoW(20, 0, image_path, 0)   

Gnome:

import commands
image_path = 'image.jpg'
command = f"gconftool-2 --set /desktop/gnome/background/picture_filename --type string '{image_path}'"
status, output = commands.getstatusoutput(command) 

بجای image.jpg عکس رندوم رو در کد قرار بده و status رو هم چک کن، 0 یعنی کار کرده.

اگر کار نکرد خبر بده که درستش کنم

3 پسندیده

این اسکریپت هم من تست کردم درست بود

مک :
http://appscript.sourceforge.net/

sudo easy_install appscript

change-wallpaper-mac.py

from appscript import app, mactypes
app('Finder').desktop_picture.set(mactypes.File('/Users/nima/Pictures/testwallpaper.jpg'))

2 پسندیده

یه نکته‌ای رو اشاره کنم.
نباید بگیم «پس زمینه‌ی سیستم عامل» چون دقیقا ربطی به سیستم‌عامل نداره. به desktop environment یا در حقیقت (تا جایی که میدونم) window manager ربط داره.
حالا اگه میخواید یه اسکریپت جامع بنویسید که مثلا روی همه‌ی لینوکسها درست کار کنه، باید خود اسکریپت بفهمه که چه محیط گرافیکی الآن روی xorg اجرا میشه.

نمیدونم feh توی gnome و kde و… هم کار میکنه یا نه. ولی:

feh --bg-fill /location/of/image.jpg
2 پسندیده

اونو من نوشتم چون اون لحظه چیز دیگه ای به ذهنم نرسید

آهان.
فکر کردم عنوان اصلی تاپیک این بوده، خواستم یه توضیحی داده باشم.

2 پسندیده

خب فکرکنم قبله اجرای اسکریپت | سیستم عامل رو به این صورت ذخیره کنید

image

و بعدا نسبت به platform دستورات شرطی استفاده کنید اسکریپت مناسب اجرا بشه :partying_face:

Linux: Linux
Mac: Darwin
Windows: Windows