diff --git a/.gitignore b/.gitignore index ee6c689..0f0f1d5 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ .vscode/ Pipfile Pipfile.lock +.notes/ diff --git a/wallpaperctl.py b/wallpaperctl.py index 5192809..689e45f 100755 --- a/wallpaperctl.py +++ b/wallpaperctl.py @@ -3,11 +3,15 @@ import configparser import os import random -from pathlib import Path +import sys import subprocess +from pathlib import Path + def find_all_images(path): IMAGE_TYPES = ['jpg', 'png', 'webp', 'jpeg'] + if WALLPAPER_ENGINE == 'plasma': + IMAGE_TYPES.remove("webp") images = [] for image_type in IMAGE_TYPES: [images.append(image) for image in path.glob(f'**/*.{image_type}')] @@ -54,13 +58,32 @@ for mon in monitors: case _: print(monitors[mon]) -print(wallpapers) -cmd = "/usr/bin/feh --no-fehbg --bg-fill " +match WALLPAPER_ENGINE: + case 'feh': + cmd = "/usr/bin/feh --no-fehbg --bg-fill " + for wallpaper in wallpapers: + cmd += str(f"{wallpaper} ") + subprocess.call(cmd, shell=True) + case 'plasma': + # Write code to handle changing wallpapers on plasmashell + fuckingGarbageJS = """ +var allDesktops = desktops(); +""" + for wallpaper in wallpapers: + wallpaperIndex = wallpapers.index(wallpaper) + fuckingGarbageJS += f"""allDesktops[{wallpaperIndex}].wallpaperPlugin = "org.kde.image"; +allDesktops[{wallpaperIndex}].currentConfigGroup = Array("Wallpaper", "org.kde.image", "General"); +allDesktops[{wallpaperIndex}].writeConfig("Image", "file://{wallpaper}"); +""" + cmd = f"qdbus org.kde.plasmashell /PlasmaShell org.kde.PlasmaShell.evaluateScript '{fuckingGarbageJS}'" + subprocess.call(cmd, shell=True) + + case 'gnome': + # Write code to handle changing wallpapers on gnomeshell + cmd = "ls" + pass -for wallpaper in wallpapers: - cmd += str(f"{wallpaper} ") - -subprocess.call(cmd, shell=True) - -# subprocess.call("ls -alh",shell=True) \ No newline at end of file + case _: + print(f"Wallpaper engine {WALLPAPER_ENGINE} is not supported") + sys.exit()