Skip to content

Add idle fade nudge for writing sessions#94

Open
onepixelaway wants to merge 1 commit into
farzaa:mainfrom
onepixelaway:idle-fade-encouragement
Open

Add idle fade nudge for writing sessions#94
onepixelaway wants to merge 1 commit into
farzaa:mainfrom
onepixelaway:idle-fade-encouragement

Conversation

@onepixelaway

@onepixelaway onepixelaway commented Jun 3, 2026

Copy link
Copy Markdown

Summary

Adds an optional idle fade to writing sessions. When enabled, Freewrite watches for a short pause in typing while the timer is running, then gently fades the screen out over 7 seconds. If the writer starts typing again, the fade cancels immediately. If they do not, the current note is saved, the timer is finished, the history sidebar opens, and a fresh entry is created automatically.

Why

Freewriting works best when the writer stays loose and keeps moving. This option is meant to be a quiet, visual nudge: if you drift into overthinking, editing in your head, or staring at the cursor, the page slowly disappears. There is still plenty of time to rescue the session by typing again, so it feels gentle instead of harsh.

The goal is to encourage momentum without adding another modal, alert, or scolding bit of UI. It gives the writer a soft boundary: keep typing, or let this thought be done and start the next one.

Behavior

  • Adds a new toolbar control after the timer, defaulting to Don't fade.
  • Clicking the control toggles it to Fade in 7s.
  • Scrolling while hovering the control cycles through Don't fade, 3s, 7s, 15s, 30s, and 45s.
  • Once the timer is running, the selected idle delay starts counting after the last typed change.
  • After that idle delay, the screen fades out over 7 seconds.
  • Typing during the delay or fade resets/cancels the fade.
  • If the fade completes, the app saves the current entry, finishes the timer, opens the sidebar, resets the timer, and creates a new entry.

Demo

Freewrite.mp4

Testing

xcodebuild -project freewrite.xcodeproj -scheme freewrite -configuration Debug -destination 'platform=macOS' -derivedDataPath build/DerivedData CODE_SIGNING_ALLOWED=NO build

Build succeeds. Existing warnings remain unrelated to this change.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant