Files
cinnamon-dynamic-wallpaper/cinnamon-dynamic-wallpaper@TobiZog/5.4/preferences/scripts/cinnamon_pref_handler.py

56 lines
1.4 KiB
Python

import os, json
from enums.PreferenceEnums import PrefenceEnums
# Location of the Cinnamon preference file since Cinnamon 5.4
pref_location = os.path.expanduser("~") + \
"/.config/cinnamon/spices/cinnamon-dynamic-wallpaper@TobiZog/cinnamon-dynamic-wallpaper@TobiZog.json"
def write_to_preferences(parameter: PrefenceEnums, value: str):
""" Write a preference value to the JSON file
Args:
parameter (PrefenceEnums): Name of the parameter
value (str): Value to write
"""
with open(pref_location, "r") as pref_file:
pref_data = json.load(pref_file)
if parameter in pref_data:
pref_data[parameter]["value"] = value
else:
pref_data[parameter] = {
"type": "entry",
"default": "",
"description": "",
"value": value
}
with open(pref_location, "w") as pref_file:
json.dump(pref_data, pref_file, separators=(',', ':'), indent=4)
def read_str_from_preferences(parameter: PrefenceEnums) -> str:
""" Read a value from the JSON file
Args:
parameter (PrefenceEnums): Name of the parameter to get
Returns:
str: Value of the parameter
"""
with open(pref_location, "r") as pref_file:
pref_data = json.load(pref_file)
if parameter in pref_data:
return pref_data[parameter]["value"]
else:
return ""
def read_int_from_preferences(parameter: PrefenceEnums) -> int:
value = read_str_from_preferences(parameter)
if value == "":
return 0
else:
return int(value)