First let's understand how it works.
./install
file install's all the py scripts and make Watcher to run on startup.
-
afk.py : As name sugested it records the time for being afk it will count afk time when no input is given within 1 min . Also it ignores if their is video playback.
-
analysis.py : It gives the report for the week summary and day summary of the usage.
-
commands.py : This is used to display the data that analysis.py has analysed. Additionally, it contains all of the command outputs; in essence, this file is where the user interacts with the Wacther.
-
get_windows.py : It gives the title/name of the Active Window/App.
-
time_operations.py : It converts the raw time data into time how much the app is used. Also format produce the time in HH:MM:SS format.
-
watch.log : This is where the logs file are created it creates two kind of log files for Week analysis and Day analysis, log files for Day analysis are created in [Date].csv format and for week W[week_no.]_[year].py format.
Main Difference between v1.0 and v2.0 is the Represntation of the csv and the Algorithm (The way in which it calculate and present the usage time) is optimized.
-
The file which is changed mainly is analysis.py and the watch_log.py.
In v1.0 their is multiple session of time created even for the same window/apps but in v2.0 this is optimized and been removed the multiple session for each apps.
v1.0 | v2.0 |
---|---|
![]() |
![]() |
- Getting started
- Work on Landing page
- Landing website which helps people to gain clearity about thier screen-time and its importance.
- It is made with the help of React-framework
- Solve v1.0 issues
- There are some bugs in the v1.0 some of them are small some might be big. so you can solve them and improve v1.0.
- Improve v2.0
- v2.0 is improvised version of previous algorithm test it and give us feedback in discussion section.
- How you can help
- Questions?
There are many ways to contribute to Watcher:
-
Work on issues labeled [
good first issue
] or [help wanted
][help wanted], these are especially suited for new contributors. -
Fix [
bugs
]. -
Implement new features. NOTE: before implementing and doing PR do discuss with the community with opening issue.
- Look among the [requested features][requested features] on the forum.
-
Write documentation.
When writing commit messages try to follow Conventional Commits. It is not a strict requirement (to minimize overhead for new contributors) but it is encouraged.
The format is:
<type>[optional scope]: <description>
[optional body]
[optional footer]
Where type
can be one of: feat, fix, chore, ci, docs, style, refactor, perf, test
Examples:
- feat: added ability to sort by duration
- fix: fixes incorrect week number (#407)
- docs: improved query documentation
If you have any questions, you can:
- Create new discussion revolve around your question. GitHub Discussions.
- (as a last resort/if needed) Email me (Maintainer): waishnavdeore@gmail.com