wallpaper: Added support for Windows.
"""Set the wallpaper."""
+import ctypes
import os
import shutil
import subprocess
@@ -95,6 +96,17 @@ def set_mac_wallpaper(img):
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):
"""Set the wallpaper."""
if not os.path.isfile(img):
@@ -105,6 +117,9 @@ def change(img):
if OS == "Darwin":
set_mac_wallpaper(img)
+ elif OS == "Windows":
+ set_win_wallpaper(img)
+
elif desktop:
set_desktop_wallpaper(desktop, img)
