Skip to main content

Prompt for what you were doing when returning from AFK and log it in ActivityWatch

Project description

AW Watcher AFK Prompt

PyPI - Version PyPI - Python Version


This ActivityWatch "watcher" prompts you with a dialog when you return from an AFK (away from keyboard) break, asking what you were doing.

Installation

Install through pip or pipx or clone the repository and install using the Makefile:

git clone https://github.com/tobixen/aw-watcher-afk-prompt.git
cd aw-watcher-afk-prompt
make install

For a complete setup including systemd service:

make install-all

Running

Recommended: Using aw-qt

The recommended way to run this watcher is through aw-qt, which manages both the server and watchers automatically. After installing aw-watcher-afk-prompt, aw-qt should detect and start it automatically.

Alternative: Manual Start

If not using aw-qt, you can run it manually:

aw-watcher-afk-prompt

Make sure aw-server and aw-watcher-afk are running first, as this watcher monitors AFK events.

Alternative: systemd (Linux)

For users not using aw-qt who want automatic startup via systemd:

Quick setup with Makefile:

make enable-service

For Wayland users, also run:

make setup-wayland

This automatically configures your compositor to import the WAYLAND_DISPLAY environment variable.

Configuration

The watcher can be configured via a config file or command-line arguments. Command-line arguments override config file settings.

Config File

Configuration is stored in the ActivityWatch standard location:

~/.config/activitywatch/aw-watcher-afk-prompt/aw-watcher-afk-prompt.toml

The config file is created automatically with default values on first run if it doesn't exist.

Command-line Arguments

You can override config file settings using command-line arguments:

aw-watcher-afk-prompt --depth 15 --frequency 10 --length 3

Available options:

  • --depth: Minutes to look into the past for events (default: from config or 10)
  • --frequency: Seconds between AFK event checks (default: from config or 5)
  • --length: Minimum AFK minutes before prompting (default: from config or 5)
  • --testing: Run in testing mode
  • --verbose: Enable verbose logging

Lid Watcher Integration (Optional)

This watcher can integrate with aw-watcher-lid to also prompt you about laptop lid closures and system suspends, not just regular AFK periods.

Why use both watchers?

Lid events may sometimes be more accurate than the ordinary afk watcher (particularly for short-lived afk events), but won't catch cases where the laptop is left with the lid open, as well as when someone leaves the desktop computer.

Setup:

  1. Install aw-watcher-lid: pipx install aw-watcher-lid
  2. Start it (see aw-watcher-lid README for setup)
  3. aw-watcher-afk-prompt will automatically detect and use it

To disable lid integration: I.e. if having an external keyboard it's possible to close the lid without being AFK. Set enable_lid_events = false in your config file - or skip installing the aw-watcher-lid.

Features

Split AFK Periods

Quite often one ends up doing multiple tasks in my afk periods, for instance it could be "lunch" for 20 minutes and "phone call" for 10 minutes. The pop-up dialog has a Split button for splitting the afk time on multiple event lines. You can add as many lines as needed and then edit either the start time or the duration of the event lines.

Contributing

Here are some helpful links:

History

This project was originally created by Jeremiah England as aw-watcher-ask-away. It was forked and renamed by Tobias Brox to aw-watcher-afk-prompt in 2026 due to inactive maintainer of the original project (see https://github.com/Jeremiah-England/aw-watcher-ask-away/issues/8).

License

aw-watcher-afk-prompt is distributed under the terms of the MIT license.

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

aw_watcher_afk_prompt-0.1.6.tar.gz (61.9 kB view details)

Uploaded Source

Built Distribution

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

aw_watcher_afk_prompt-0.1.6-py3-none-any.whl (35.0 kB view details)

Uploaded Python 3

File details

Details for the file aw_watcher_afk_prompt-0.1.6.tar.gz.

File metadata

  • Download URL: aw_watcher_afk_prompt-0.1.6.tar.gz
  • Upload date:
  • Size: 61.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for aw_watcher_afk_prompt-0.1.6.tar.gz
Algorithm Hash digest
SHA256 747acaf388dfbe34174f4e1e8f6dc91875e2a978c84b248088c4edfc5d15fe25
MD5 cd702f4d9abc0898233bf447171bf761
BLAKE2b-256 7a9e89423142165093dee3379cdc5d4061d61959071e0acb3a94cad669c03f25

See more details on using hashes here.

Provenance

The following attestation bundles were made for aw_watcher_afk_prompt-0.1.6.tar.gz:

Publisher: publish.yml on tobixen/aw-watcher-afk-prompt

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file aw_watcher_afk_prompt-0.1.6-py3-none-any.whl.

File metadata

File hashes

Hashes for aw_watcher_afk_prompt-0.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 5c11b95a10f2d69a77aadd51df7a3c16dfac1712d3bd06c25a0e02c37b0ced11
MD5 35fdacec3cd547af95bc919d76310b7a
BLAKE2b-256 532be5e6e0582a07e83908ebe84296cc9f33db49d0882516cb8aa42581f629aa

See more details on using hashes here.

Provenance

The following attestation bundles were made for aw_watcher_afk_prompt-0.1.6-py3-none-any.whl:

Publisher: publish.yml on tobixen/aw-watcher-afk-prompt

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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