mirror of
https://github.com/AvengeMedia/DankMaterialShell.git
synced 2026-10-30 23:17:51 -04:00
Sweep of the two surfaces the review has not looked at yet, so the failures are found here instead of in the next round. - `dms icc apply` copied the profile into the config directory before asking the daemon, and only the *parse* was checked locally. A profile the daemon refuses (no `vcgt` table, non-RGB color space) was therefore left in the profile directory for `dms icc list` to keep offering, and an IPC failure left the copy behind as well. The command now checks the same rules the daemon enforces before copying anything, and removes the copy it just made when the request fails (a file that was already there is left alone). - `dms icc list` marks a profile without a `vcgt` table, so the rule that makes `apply` refuse it is visible where the profiles are listed. - `ApplyICC`/`RemoveICC`/`SetOutputTemp` reach the manager over IPC with whatever the caller sent: an empty (or whitespace-padded) output name used to be persisted as an entry in `wayland.json` that no `wl_output` can ever match, and a relative profile path was stored to be resolved again on the next start, from a different working directory. Both are rejected now, before anything is written. Verified with the built CLI against the previous binary: with a profile that has no vcgt table, `dms icc apply` now exits before touching the config directory (`residual=[]`) where the previous one copied the file and went on to the IPC (`residual=[nogamma.icc]`); with a valid profile and no daemon reachable, the previous one leaves `vcgt.icc` behind and this one does not. Covered by TestManager_RejectsInvalidICCArguments.