Skip to content
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 8 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ help:
@echo " linkcheck to check all external links for integrity"
@echo " doctest to run all doctests embedded in the documentation (if enabled)"
@echo " coverage to run coverage check of the documentation (if enabled)"
@echo " redirectcheck to check that deleted files have proper redirects"
@echo " dummy to check syntax errors of document sources"

.PHONY: clean
Expand Down Expand Up @@ -243,8 +244,14 @@ pseudoxml:
@echo
@echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml."

.PHONY: redirectcheck
redirectcheck:
$(SPHINXBUILD) -b rediraffecheckdiff $(ALLSPHINXOPTS) $(BUILDDIR)/rediraffe
@echo
@echo "Redirect check complete."

.PHONY: dummy
dummy:
$(SPHINXBUILD) -b dummy $(ALLSPHINXOPTS) $(BUILDDIR)/dummy
@echo
@echo "Build finished. Dummy builder generates no files."
@echo "Build finished. Dummy builder generates no files."
133 changes: 114 additions & 19 deletions poetry.lock

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ m2r2 = "*"
myst-parser = "*"
recommonmark = "^0.7.0"
setuptools = "*" # needed in Python 3.12+: https://github.com/CrossNox/m2r2/issues/72
sphinxext-rediraffe = "^0.2.7"

[build-system]
requires = ["poetry-core"]
Expand Down
7 changes: 6 additions & 1 deletion src/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@
"sphinx.ext.extlinks",
"sphinx_tabs.tabs",
"sphinx_click",
"sphinxext.rediraffe",
]

extlinks = {
Expand All @@ -50,6 +51,10 @@
"gh-aw": ("https://github.com/ActivityWatch/%s", ""),
}

# Redirects for moved pages
rediraffe_redirects = "redirects.txt"
rediraffe_branch = "HEAD~1"

# Add any paths that contain templates here, relative to this directory.
templates_path = ["_templates"]

Expand Down Expand Up @@ -391,4 +396,4 @@

# If true, do not generate a @detailmenu in the "Top" node's menu.
#
# texinfo_no_detailmenu = False
# texinfo_no_detailmenu = False
51 changes: 48 additions & 3 deletions src/examples.rst
Original file line number Diff line number Diff line change
@@ -1,9 +1,54 @@
Examples
========

For more examples, see the examples in the aw-client repo: https://github.com/ActivityWatch/aw-client
This section provides practical examples for working with ActivityWatch, from retrieving your data to extending functionality with custom watchers.

Getting Your Data Out
----------------------

**Most users should start here:**

.. toctree::
:maxdepth: 1

examples/working-with-data

This comprehensive guide covers:

* **Canonical Events** - Get processed activity data (what the web UI uses)
* **Custom Queries** - Write your own analysis using the query language
* **Raw Events** - Advanced direct access to bucket data
* **Safety Best Practices** - Avoiding data corruption with proper testing and dry-run modes

The guide includes links to production-ready examples from the `aw-client repository <https://github.com/ActivityWatch/aw-client/tree/master/examples>`_.

Writing Your Own Watchers
-------------------------

Want to collect custom data? **See:**

.. toctree::
examples/querying-data
:maxdepth: 1

examples/writing-watchers
examples/extending

These guides cover:

* **Minimal watcher example** - Get started with a simple template
* **Full-featured watcher** - Complete example with heartbeats and proper structure
* **Best practices** - Error handling, bucket management, and testing modes
* **Rust examples** - Alternative implementation for performance-critical watchers

Watchers are small programs that collect data and send it to ActivityWatch. You can track anything with a timestamp!

Example Code Repository
-----------------------

The `aw-client examples <https://github.com/ActivityWatch/aw-client/tree/master/examples>`_ contain comprehensive, well-documented examples including:

* **Time analysis** - ``time_spent_today.py``, ``working_hours.py``
* **Data export** - ``load_dataframe.py`` for pandas integration
* **Data management** - ``redact_sensitive.py`` with safe dry-run mode
* **Advanced analysis** - ``suggest_categories.py`` with AI categorization

All examples follow safety best practices with testing modes and error handling.
27 changes: 0 additions & 27 deletions src/examples/extending.rst

This file was deleted.

92 changes: 0 additions & 92 deletions src/examples/querying-data.rst

This file was deleted.

68 changes: 0 additions & 68 deletions src/examples/raw_events.py

This file was deleted.

Loading