Back to Super Productivity

Idle Time

docs/wiki/4.17-Idle-Time.md

18.4.49.1 KB
Original Source

Idle Time

Idle time in Super Productivity means periods when the app was tracking time but you were not actively at the computer—no keyboard or mouse input for a while. The app detects these gaps and does not silently count them as work. Instead, it pauses the current task (and any simple counters), removes that time from the task’s total, and when you return shows a dialog so you can decide how to classify the idle period: assign it to a task, to a break, or discard it. That keeps your time log accurate and gives you a conscious choice instead of inflating work time with unattended minutes. Understanding how idle is detected, how it affects logged time, and why the app surfaces it helps you use idle handling effectively.

For how time is normally logged when you track a task, see [[4.14-How-Time-Is-Logged]]. Idle detection and the reassign dialog are configured in [[3.02-Settings-and-Preferences]]. When you assign idle time to a break, the break reminder timer resets; see [[4.16-Break-Reminders]].

What “Idle Time” Means in Task Tracking

Idle time is system inactivity: no keyboard or mouse input for a continuous period, measured in milliseconds. In the context of task tracking, it represents time when the app was running and possibly tracking a task, but you were not actively working. The app does not assume that time was “work”; it treats it as unclassified until you decide. So “idle” here is not “the app was idle”—it is “you were idle (away from the computer) while the app may have been counting time.”

By surfacing idle time instead of ignoring it, the app avoids inaccurate logs (e.g. a task showing 2 hours when 30 minutes were spent away) and makes you consciously classify each gap. That improves both data integrity and your awareness of how time was actually spent.

How Idle Time Is Detected

Idle detection depends on the environment:

  • Desktop (Electron) — The app uses the operating system to detect inactivity (e.g. no keyboard or mouse events). The main process polls at a configured interval and sends an “idle time” value to the app. When that value exceeds a threshold (e.g. 5 minutes by default), the app treats you as idle and triggers the idle flow. On some systems (e.g. Wayland), different methods may be used to obtain system idle time; the app chooses an available method and falls back if one fails.
  • Web — Idle detection on the web typically requires the Super Productivity Chrome extension. Without it, the app cannot detect system idle time in the browser, so the feature may be unavailable or limited.
  • Android — Idle handling may be limited; for example the idle configuration form may be hidden on Android because detection behaves differently there.

The important point for you: when the app says you were “idle,” it means the system reported no input for at least the configured minimum (e.g. 5 minutes). That threshold is configurable so you can tune how sensitive the detection is.

Thresholds and When the Dialog Appears

  • Minimum idle time — You must be idle for at least this long (default: 5 minutes) before the app triggers the idle flow. Shorter absences are not treated as idle.
  • Only when a task is active — An option (only open idle when current task) restricts the idle dialog to when a task is currently being tracked. If no task is active, the app may not show the dialog (or may handle idle differently), so you are not interrupted when you weren’t tracking anything.

If idle detection is disabled in settings, the app does not run the idle flow; time is not removed or reassigned based on system idle.

How Idle Detection Affects Logged Time

When the app detects that you have become idle (over the threshold and with tracking active, if that option is on), it:

  1. Removes the idle duration from the current task — The time you were away is subtracted from the task’s total (and per-day) time. So the task no longer includes those minutes as “work.”
  2. Stops tracking the current task — The active task is cleared so no further time accrues until you start again or reassign.
  3. Adjusts simple counters — If you use simple counters (e.g. habit tracking), they can be decremented for the idle duration and turned off so they don’t count the gap either.
  4. Shows the idle dialog — When you return, the app shows a dialog with the total time you were away. That value is stable (e.g. based on the duration from when idle started until you returned), so you can reassign a single, clear block of time rather than a fluctuating number.

In the dialog you can:

  • Assign the time to a task — Add the idle block to the same task, another task, or split it (depending on what the UI allows). Use this when you were actually working but the system didn’t see input (e.g. reading on paper).
  • Assign the time to a break — Count the idle period as a break. This resets the break-reminder timer (see [[4.16-Break-Reminders]]) and records break time.
  • Discard the time — Don’t count it as work or break; it disappears from the log. Use this when the time was not productive and you don’t want it on any task or as a break.

So idle detection corrects the log by removing unattended time from the active task and then lets you reallocate it in a way that matches reality.

Why Idle Time Is Surfaced Instead of Ignored

If the app ignored idle time, it would keep counting those minutes toward the active task. You’d get inflated task times (e.g. “2h” including 30 minutes away) and misleading reports and metrics. By surfacing idle time:

  • Accuracy — Only time you explicitly assign (or that wasn’t idle) stays on tasks. Unattended time is either reassigned or discarded.
  • Conscious choice — You decide how to classify each gap: work, break, or discard. That improves both data quality and your awareness of how you spent the time.
  • Alignment with break reminders — When you mark idle as a break, the break-reminder system knows you took a break and resets its “time without a break” counter, avoiding double-reminders.

So idle handling is there to improve accuracy and control, not to punish or block you.

How Idle Detection Improves Accuracy

  • Removes unattended time from active tasks and counters — So you don’t overestimate how much you worked.
  • Uses a stable “time away” value in the dialog — The dialog shows the total idle duration for that absence, not a jumping number, so you can reassign or discard one clear block.
  • Keeps break reminders in sync — Assigning idle to a break updates break time and resets the break-reminder timer, so “time without a break” stays correct.

Together, this makes your time log reflect what actually happened: work time, break time, and discarded time are under your control.

Intended User Behaviors

The design encourages:

  • Reviewing and categorizing idle periods when you return — So your log stays accurate and you stay aware of gaps.
  • Using “only open when current task” if you want the dialog only when you were tracking — So you’re not prompted when you weren’t using the app for work.

It discourages:

  • Leaving the app running while away and never reviewing idle time — Which would leave the log wrong until you fix it.
  • Ignoring the dialog and leaving large unattended blocks on tasks — Which would distort productivity metrics and reports.

Taking a few seconds to assign or discard idle time keeps the rest of your data meaningful.

Platform and Configuration Notes

  • Web — Idle detection usually requires the Super Productivity Chrome extension; without it, the feature may not be available.
  • Android — The idle configuration form may be hidden or limited because idle detection works differently on mobile.
  • Default threshold — Often 5 minutes; you can change this in settings to be more or less sensitive.
  • All idle and reassign options are in [[3.02-Settings-and-Preferences]].

Summary

  • Idle time = system inactivity (no keyboard/mouse) for a set period; in task tracking it means “time the app might have counted but you weren’t actively there.”
  • The app detects idle (desktop via OS; web typically via Chrome extension), removes that time from the active task and counters, and shows a dialog so you can assign it to a task, a break, or discard it.
  • Surfacing idle time prevents inflated logs and lets you consciously classify gaps; assigning idle to a break resets the break-reminder timer.
  • Intended behavior: review and categorize idle when you return; use settings to control when the dialog appears (e.g. only when a task is active) and the idle threshold.
  • [[4.14-How-Time-Is-Logged]] — How time is normally recorded; idle is the exception that gets corrected
  • [[4.16-Break-Reminders]] — Assigning idle time to a break resets the break-reminder timer
  • [[3.02-Settings-and-Preferences]] — Idle detection on/off, minimum idle time, “only when current task,” and related options