Skip to main content

A background service that periodically narrates the time and your activity on Sway.

Project description

Time Narrator

Time Narrator is a background service for the Sway window manager that periodically tells you the time and summarizes your recent activity. It's a tool designed to foster time awareness and mindful computing without interrupting your workflow.

The Benefit of Audible Feedback

In the age of deep work and digital immersion, it's easy to lose track of time. You might sit down to work on a small task, only to find that hours have passed by unnoticed. Time Narrator aims to solve this by providing gentle, ambient, and audible feedback.

  • Maintain Time Awareness: By narrating the time at semi-random intervals, the tool helps you build a better internal clock. This can improve time management and prevent you from spending unintended amounts of time on a single task.
  • Promote Mindful Computing: The activity summary encourages a moment of reflection. Hearing "In the past 20 minutes, you were working on Project X" reinforces that you're on track, while hearing "you weren't at your computer" can be a useful reminder of your breaks. It provides a low-friction form of accountability.
  • Reduce Distractions: Unlike visual notifications, audible alerts don't require you to shift your visual focus. You can continue typing, reading, or designing while the narrator speaks, keeping you in your flow state.

Prerequisites

Before installing, you need to have the following installed on your system:

  • Sway and swayidle: The tool is built specifically for the Sway environment.
  • TTS Engine: espeak-ng or piper or other.. You pick the comand.

Installation

uvx time-narrator

Configuration

uv run time-narrator --write-default-config

This will create a new file at ~/.config/time-narrator/config.toml.

Options

  • tts_command: The shell command used to speak text. The script pipes the narration text to this command's standard input.
    • Example #1: tts_command = "espeak-ng"
    • Example #2 (higher quality): tts_command = "piper --model /path/to/en_US-lessac-medium.onnx --output-file - | pw-play"
  • base_interval_sec: The base interval for reminders, in seconds. (Default: 600, i.e., 10 minutes).
  • random_window_sec: A window to add or subtract from the base interval, in seconds. (Default: 300, i.e., +/- 5 minutes). This means reminders will occur every 5 to 15 minutes.
  • idle_threshold_sec: The number of seconds of inactivity before you are considered "idle". (Default: 60).

Usage

Launching from sway config

exec time-narrator

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

time_narrator-0.2.0.tar.gz (45.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

time_narrator-0.2.0-py3-none-any.whl (34.9 kB view details)

Uploaded Python 3

File details

Details for the file time_narrator-0.2.0.tar.gz.

File metadata

  • Download URL: time_narrator-0.2.0.tar.gz
  • Upload date:
  • Size: 45.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for time_narrator-0.2.0.tar.gz
Algorithm Hash digest
SHA256 2a1e50399e75705d630ba2a94d7a5693aa1e3bca426e40eaba29deca19f12670
MD5 aa38779885d132dcd629d9fea2697cad
BLAKE2b-256 79f5300a23cf8f5ff47badd0eb34b852f9b5488fafc4187854fb1f8a5e120335

See more details on using hashes here.

File details

Details for the file time_narrator-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: time_narrator-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 34.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for time_narrator-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 28b3829c354aa0891af63055b7d60bc3361023e9eb7f03d8cf042e4d074cfefa
MD5 220dedee5826f3efda4390a90cb7de54
BLAKE2b-256 ba42a34b2d2ef4e4a395ae5733730f6d17d9f3f3c5361133aef7cec06c0261d0

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page