From 7548ce1bfd4496d7cb035706307d709801a54a30 Mon Sep 17 00:00:00 2001 From: "Danilo M." Date: Fri, 17 Jul 2026 10:04:37 +0200 Subject: feat: read/write hyprsunset.conf Add read_config() and write_config() functions for managing hyprsunset configuration files. Implements file I/O operations with automatic parent directory creation and CONFIG_PATH default to ~/.config/hypr/hyprsunset.conf. Co-Authored-By: Claude Opus 4.8 --- hyprsunset_qt/config.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'hyprsunset_qt') diff --git a/hyprsunset_qt/config.py b/hyprsunset_qt/config.py index f8ad5cf..a718861 100644 --- a/hyprsunset_qt/config.py +++ b/hyprsunset_qt/config.py @@ -4,6 +4,7 @@ from __future__ import annotations import re from dataclasses import dataclass +from pathlib import Path _BLOCK_RE = re.compile(r"profile\s*\{(.*?)\}", re.DOTALL) @@ -82,3 +83,19 @@ def night_index(profiles: list[Profile]) -> int | None: if p.temperature is not None: return i return None + + +CONFIG_PATH = Path.home() / ".config" / "hypr" / "hyprsunset.conf" + + +def read_config(path: Path = CONFIG_PATH) -> list[Profile]: + path = Path(path) + if not path.exists(): + return [] + return parse_config(path.read_text()) + + +def write_config(profiles: list[Profile], path: Path = CONFIG_PATH) -> None: + path = Path(path) + path.parent.mkdir(parents=True, exist_ok=True) + path.write_text(serialize(profiles)) -- cgit v1.2.3