wallpaper: Added support for Windows.

This commit is contained in:
Dylan Araps 2017-08-25 20:07:09 +10:00
parent 8d0e3d4ed4
commit 6b5e65fc42

View File

@ -1,4 +1,5 @@
"""Set the wallpaper.""" """Set the wallpaper."""
import ctypes
import os import os
import shutil import shutil
import subprocess import subprocess
@ -95,6 +96,17 @@ def set_mac_wallpaper(img):
subprocess.call(["killall", "Dock"]) subprocess.call(["killall", "Dock"])
def set_win_wallpaper(img):
"""Set the wallpaper on Windows."""
# There's a different command depending on the architecture
# of Windows. We check the PROGRAMFILES envar since using
# platform is unreliable.
if "x86" in os.environ["PROGRAMFILES"]:
ctypes.windll.user32.SystemParametersInfoW(20, 0, img, 3)
else:
ctypes.windll.user32.SystemParametersInfoA(20, 0, img, 3)
def change(img): def change(img):
"""Set the wallpaper.""" """Set the wallpaper."""
if not os.path.isfile(img): if not os.path.isfile(img):
@ -105,6 +117,9 @@ def change(img):
if OS == "Darwin": if OS == "Darwin":
set_mac_wallpaper(img) set_mac_wallpaper(img)
elif OS == "Windows":
set_win_wallpaper(img)
elif desktop: elif desktop:
set_desktop_wallpaper(desktop, img) set_desktop_wallpaper(desktop, img)