You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(faq): add user-facing FAQ entries and organize into sections (#168)
* feat(faq): add user-facing FAQ entries and organize into sections
Add general FAQ entries from the website (activitywatch.github.io#42):
- What is ActivityWatch?
- Is it really free?
- Platform support
- Privacy/data storage
- RescueTime comparison (with link to detailed blog post)
- Custom tracking/extensibility
Organize into General and Technical sections for better navigation.
Existing technical entries preserved as-is in the Technical section.
Follow-up from activitywatch.github.io#42 discussion per @ErikBjare request.
* Update src/faq.rst
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
* Apply suggestion from @ErikBjare
* Apply suggestion from @ErikBjare
---------
Co-authored-by: Erik Bjäreholt <erik.bjareholt@gmail.com>
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
Copy file name to clipboardExpand all lines: src/faq.rst
+53-14Lines changed: 53 additions & 14 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,31 +1,70 @@
1
1
FAQ
2
2
===
3
3
4
-
..
5
-
Some of this should probably be moved to a development FAQ.
4
+
General
5
+
-------
6
+
7
+
What is ActivityWatch?
8
+
~~~~~~~~~~~~~~~~~~~~~~
9
+
10
+
ActivityWatch is a free, open-source, automated time tracker that runs on your computer and monitors which applications and websites you use. It works on Windows, macOS, Linux, and Android. Unlike cloud-based time trackers, all data is stored locally on your device for maximum privacy.
11
+
12
+
Is ActivityWatch really free?
13
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
14
+
15
+
Yes. ActivityWatch is completely free and open-source software, licensed under the MPL-2.0 license. There are no premium tiers, no usage limits, and no ads. It is developed and maintained by volunteers and community contributors.
16
+
17
+
What platforms does ActivityWatch support?
18
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
19
+
20
+
ActivityWatch runs on **Windows** (10 and later), **macOS** (10.15+), **Linux** (most distributions), and **Android**. Browser extensions are available for Chrome, Firefox, and Edge to track your web activity.
21
+
22
+
Does ActivityWatch track my data privately?
23
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
6
24
7
-
.. note::
8
-
Some of these questions are technically not frequently asked.
25
+
Yes. ActivityWatch follows a `local-first <https://www.inkandswitch.com/local-first.html>`_ approach — all your time tracking data is stored on your own device and is never sent to any server. You have full control over your data and can export, delete, or back it up at any time.
9
26
10
27
Where is my data stored?
11
-
------------------------
28
+
~~~~~~~~~~~~~~~~~~~~~~~~
29
+
30
+
All your data is stored in a SQLite database in the :ref:`data directory <data-directory>`. Nothing is sent to any cloud service.
31
+
32
+
How does ActivityWatch compare to RescueTime?
33
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
34
+
35
+
ActivityWatch is a privacy-first, open-source alternative to RescueTime. Key differences:
36
+
37
+
- **Data storage**: ActivityWatch keeps everything local on your device, while RescueTime sends data to their cloud servers.
38
+
- **Platform support**: ActivityWatch supports Linux (which RescueTime dropped support for around 2021), plus Windows, macOS, and Android.
39
+
- **Price**: ActivityWatch is completely free. RescueTime charges $12/month for their premium tier.
40
+
- **Extensibility**: ActivityWatch lets you write custom watchers and integrations. RescueTime is a closed system.
41
+
- **Data access**: All your ActivityWatch data is always accessible. RescueTime's free tier limits how far back you can see.
42
+
43
+
For a detailed comparison, see the `ActivityWatch vs RescueTime <https://activitywatch.net/blog/activitywatch-vs-rescuetime/>`_ blog post and the `general time tracker comparison <https://activitywatch.net/blog/comparing-time-trackers/>`_.
44
+
45
+
Can I extend ActivityWatch with custom tracking?
46
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
47
+
48
+
Yes! ActivityWatch has a modular architecture built around "watchers" — small programs that track different things and report to a local server. You can write your own watchers using the REST API. The community has built watchers for VS Code, JetBrains IDEs, Spotify, and more. See the :doc:`examples` for how to interact with ActivityWatch programmatically.
49
+
12
50
13
-
All your data is stored in a SQLite database in the :ref:`data directory <data-directory>`.
51
+
Technical
52
+
---------
14
53
15
54
How do I interpret the raw data?
16
-
--------------------------------
55
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
17
56
18
57
First, familiarize yourself with the `data model <buckets-and-events>`. After that, you might want to have a look at the `Examples`.
19
58
20
59
How can I use ActivityWatch with my own code?
21
-
---------------------------------------------
60
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
22
61
23
62
See the `Examples` for different ways to use ActivityWatch programmatically.
24
63
25
64
.. _how-does-aw-know-when-im-afk:
26
65
27
66
How does ActivityWatch know when I am AFK?
28
-
------------------------------------------
67
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
29
68
30
69
On Windows and macOS, we use functionality offered by those platforms to give us the
31
70
time since last input.
@@ -38,7 +77,7 @@ Using this data (seconds since last input) we check if more than 3 minutes have
38
77
If the browser watcher is running, the user will also by default be considered to not be AFK when the active browser tab has sound playing from it. This helps when the user for example watches a video or is in a video/audio meeting.
39
78
40
79
Why is the active window logged as "unknown" when using Wayland?
The Wayland protocol does not have a notion of an active window, and it is unlikely to ever have.
44
83
Wayland is also developed with security in mind, so access should be handed out on an app-by-app basis.
@@ -54,7 +93,7 @@ Unfortunately, in Wayland compositors like Gnome's Mutter there is no way at all
54
93
You can see the general status of the ability of `getting the active window in Wayland on StackOverflow <https://stackoverflow.com/questions/45465016/how-do-i-get-the-active-window-on-gnome-wayland>`_ or follow `the issue for ActivityWatch tracking the problem <https://github.com/ActivityWatch/activitywatch/issues/92>`_.
55
94
56
95
How accurate is ActivityWatch?
57
-
------------------------------
96
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
58
97
59
98
The design of ActivityWatch is that it consists of multiple watchers which report different types of activities.
60
99
Each watcher has its own flaws in accuracy for different reasons.
@@ -67,7 +106,7 @@ The accuracy will vary depending on use-case and depending on what data you are
67
106
Even if the tracking was perfect, what should be considered being "active" is subjective.
68
107
69
108
What happens if it is down or crashes?
70
-
--------------------------------------
109
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
71
110
72
111
ActivityWatch consists of several processes running independently, so one thing crashing will have limited impact on the rest of the system.
73
112
@@ -77,12 +116,12 @@ If a watcher crashes, its bucket will simply remain untouched until it is restar
77
116
78
117
..
79
118
What happens when my computer is off or asleep?
80
-
-----------------------------------------------
119
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
81
120
82
121
If your computer is off or asleep, watchers will usually record nothing. i.e. one events ending (:code:`timestamp + duration`) will not match up with the following event's beginning (:code:`timestamp`).
`Watchers` most commonly use a polling method called `heartbeats` in order to store information on the server.
88
127
Heartbeats are received regularly with some data, and when two consecutive heartbeats have identical data, they get merged and the duration of the new one becomes the time difference between the previous two.
0 commit comments