My desktop stays on all the time. It acts as a server and also performs other semi-essential household tasks. During the day it uses the OnDemand CPU setting. This essentially just scales the CPU frequency as it needs it and this works really well for me.
At night time, it flits around. Of course most of the time it's idling along at a low power but occasionally, it'll ramp up to do something. I would rather it stayed on PowerSave and tasks were just forced to take a little longer to complete.
Additionally, I have a Nvidia card (GTX 580) which can consume about the same amount of power as a small African village uses in a year when it wants to (glares at Minecraft). For unknown reasons (undoubtedly something happening on the desktop), this ramps up, the fans sound like they're charging up to fire lasers into space. At night time, I'd like to underclock the card as far as it'll go.
I've considered a simple root-run cron script to push these through but my working hours are variable. Last week I had a near-70 hour working week so I was up very early and still up very late, every day. If the system was honking along at super-underclock mode, I would have been furious. Is there something I could do to say, "Underclock if:
- It's between 10pm and 9am
- There hasn't been any mouse/keyboard activity for 10 minutes
- There isn't a movie playing
If one of those conditions isn't true, the underclock needs to revert instantly. I don't want to wait for a cron-script to come along to wake the computer up from its slumber. Similarly, as soon as all of those do become true, it should go back to sleep.
What are my options?