An automation needs to be triggered by something (usually a click on the UI). If you make all of your automations triggered from a UI, then they would only be executed by a user (who was decidedly not idle). I doubt there would be a way to accurately detect that the machine were idle since the automations could trigger the same events that resets the system's idle timer. You'd need to write a C# component probably to tap into the Windows system to detect the idle state, but I do not believe this is necessary.
If you are using ASO, you can disable the AutomfillOnCreate property to prevent the credentials from being entered immediately as an application times out (which could happen after an idle period).