Uses 1113K of libraries. Click here for Pure Java version (6551L/31K).
!7 cm UserActivityDetector > DynBigNumber { long lastActivity; transient long persistedLastActivity; transient Pt lastMousePosition; start { setDescription("LAST ACTIVITY"); //dm_startKeyLogger(); // crashes on some machines persistedLastActivity = lastActivity; dm_vmBus_onMessages(r activity, 'keyDown, 'javaKeyEvent, 'speechRecognized_raw); dm_doEvery(1.0, r { Pt mouse = toPt(mousePosition()); if (neq(lastMousePosition, mouse)) { lastMousePosition = mouse; activity(); } setValue(lastActivity == 0 ? "NEVER" : iround(secondsSinceLastActivity()) + " s ago"); }); dm_doEvery(5*60.0, r saveIfChanged); } void saveIfChanged enter { if (lastActivity != persistedLastActivity) { persistedLastActivity = lastActivity; change(); } } // API void activity enter { lastActivity = now(); vmBus_send userActivityDetected(); } double secondsSinceLastActivity() { ret lastActivity == 0 ? infinity() : toSeconds(now()-lastActivity); } }
download show line numbers debug dex old transpilations
Travelled to 10 computer(s): bhatertpkbcr, cfunsshuasjs, gwrvuhgaqvyk, mowyntqkapby, mqqgnosmbjvj, pyentgdyhuwx, pzhvpgtvlbxg, tvejysmllsmz, vouqrxazstgt, xrpafgyirdlv
No comments. add comment
Snippet ID: | #1020622 |
Snippet name: | User Activity Detector |
Eternal ID of this version: | #1020622/11 |
Text MD5: | bd7e820801ff162ceb227e17a39f5780 |
Transpilation MD5: | 5d017e220fabeda09432e4987a42c2e8 |
Author: | stefan |
Category: | javax / stefan's os |
Type: | JavaX source code (Dynamic Module) |
Public (visible to everyone): | Yes |
Archived (hidden from active list): | No |
Created/modified: | 2021-09-24 15:45:21 |
Source code size: | 1071 bytes / 42 lines |
Pitched / IR pitched: | No / No |
Views / Downloads: | 381 / 234025 |
Version history: | 10 change(s) |
Referenced in: | [show references] |