Idle timer applescript

applet.png
Πρόσφατα βρέθηκα προ εκπλήξεως συνειδητοποιώντας ότι δεν υπάρχει κανένα πρόγραμμα που να μετράει πόση ώρα είμαστε idle ώστε να βάλουμε τον υπολογιστής μας να εκτελεί συγκεκριμένα actions... Αποφάσισα λοιπόν να φτιάξω ένα πάρα πολύ απλό applescript που να κάνει αυτή τη δουλειά...

property idletime : 900 -- 900 δευτερόλεπτα = 15 λεπτά idle time πριν εκτελέσει κάποια εντολή, το αλλάζετε σύμφωνα με τις προτιμήσεις σας.
set macisidle to false
repeat while macisidle is false
set macidletime to (do shell script "ioreg -c IOHIDSystem | perl -ane 'if (/Idle/) {$idle=(pop @F)/1000000000; print $idle,\"\";last}'") -- Χρησιμοποιεί το ioreg και ενα perl φίλτρο ώστε να πάρει το idle time
if macidletime is greater than idletime then
set macisidle to true
display dialog "Πέρασαν 15 λεπτά" -- Το payload, αντικαταστήστε το με ότι θέλετε να κάνει.
else
delay 60 -- Ελέγχει το idle time ανα 60 δευτερόλεπτα
end if
end repeat

Αλλάζοντας τη πρώτη σειρά από

property idletime : 900

σε

set idletime to number of (display dialog "Δευτερόλεπτα idle?" default answer "900")

8α σας ρωτάει κά8ε φορά για το πόσα δευτερόλεπτα να μένει idle, μέχρι να κάνει το action.

Μπορείτε να το κάνετε copy paste στο AppleScript Editor και να το σώσετε ως application...
applescript.png


Ή ακόμα να το σώσετε ως service χρησιμοποιώντας το Automator.
automatorapplescript.png