I am pretty sure this is what I want, I mean, if there is a broken generation I will just revert, and if I manage to autoupdate my flake as-well then I still don’t have a issue because my flake.lock is stored in my generations. As for what exactly I want, I want to update my whole system when its idle, including flakes prior, I don’t know how to do this, I am aware of the system.autoUpgrade settings, I don’t think that lets you set it to when its idle, and by idle I mean, I am away from the computer, I don’t know what part of the computer does idle timer, but regardless I would like a solution that is DE agnostic, and I am fine (expected) some systemd answer because that seems like the logical solution, but whatever is the simplest.
You have to decide on how to define idle.
If you are using X, you could use xprintidle
.
Look into the options mentioned in Feature request: performance restricted rebuilds, particularly the nix.daemonCPUSched*
options.