quickshell-rice/quickshell/services/python/save_wallpaper.py

41 lines
1.2 KiB
Python
Executable File

#!/usr/bin/env python3
import json
import os
import sys
def save_wallpaper():
if len(sys.argv) < 2:
return
wp_path = sys.argv[1].strip()
variant = sys.argv[2].strip() if len(sys.argv) > 2 else ""
user_file = os.path.expanduser('~/.config/quickshell_user_wallpaper.json')
data = {"theme_wallpapers": {}, "active_variant": ""}
if os.path.exists(user_file):
try:
with open(user_file, 'r', encoding='utf-8') as f:
data = json.load(f)
if not isinstance(data, dict):
data = {"theme_wallpapers": {}, "active_variant": ""}
except Exception:
data = {"theme_wallpapers": {}, "active_variant": ""}
if "theme_wallpapers" not in data or not isinstance(data["theme_wallpapers"], dict):
data["theme_wallpapers"] = {}
if variant:
data["theme_wallpapers"][variant] = wp_path
data["active_variant"] = variant
data["wallpaper"] = wp_path
try:
with open(user_file, 'w', encoding='utf-8') as f:
json.dump(data, f, indent=2)
except Exception:
pass
if __name__ == '__main__':
save_wallpaper()