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

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

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

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

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 Likes

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

مک :
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 Likes

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

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

feh --bg-fill /location/of/image.jpg
2 Likes

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

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

2 Likes

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

image

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

Linux: Linux
Mac: Darwin
Windows: Windows