| Age | Commit message (Collapse) | Author | Files | Lines |
|
pkill only sends SIGTERM, and hyprsunset binds Hyprland's CTM manager
exclusively, so the replacement started immediately after pkill raced the
old process and exited with 'A CTM manager is already running'. Saving from
the Sunset tab therefore killed the night-light daemon instead of restarting
it. Bound the wait to 5s (50 x 0.1s) so a wedged process cannot hang the
restart.
|
|
xcur2png wrote its config file into the qs CWD, which is the repo root, so
hovering a legacy Xcursor theme left a stray left_ptr.conf in the tree. Point
-c at the per-theme cache dir instead.
Hyprsunset.save() could run before refresh()'s two cat processes landed and
write a header-only hyprsunset.conf, blanking the location. Guard on the same
confLoaded/appLoaded flags Hypridle already uses.
The idle save had no acknowledgement, which the spec requires. Add a notice
after the restart and show it in the tab, and switch Hypridle's save guard to
a loaded flag so a config whose first block is a listener is not mistaken for
an unloaded one.
classify() used else if, so a directory carrying both index.theme and cursors/
(Adwaita) was listed as a cursor theme only and never reached the icon picker.
Make the two tests independent; selftest gains the dual-purpose case.
|
|
appConfText() hardcoded path = ~/.config/hyprsunset-qt/sun.json, so any
saveSettings() -- from save() or detect() -- silently reset a user-customized
cache path while fetchSun() kept writing to the parsed location. Mirror
sunset-qt's settings.py: hold the raw unexpanded string in cachePathRaw for
serialization and derive the expanded cachePath for file access, so a no-op
save is byte-identical and the two stay consistent.
|
|
Parses and serializes ~/.config/hypr/hyprsunset.conf in the exact format
hyprsunset-qt writes, so both editors share the file. Location lives in
hyprsunset-qt's own INI; fetching mirrors its curl calls and browser
User-Agent. Selftest round-trips a fixture byte-for-byte.
|