Visualization for selfspy | Plots for selfstats
Examples
:mouse: Clicks
Last hours (bar chart)
Total (pie chart)
:musical_keyboard: Keystrokes
Last hours (bar chart)
Total (pie chart)
Other visualizations
Not yet :santa:.
Command line
The graphs above have been generated by these commands.
You need to add selfvis.py in your PATH. And then run:
$ selfvis.py --human-readable --pactive --back 8 h
Or:
$ selfvis.py --human-readable --ratios --back 8 h
Installation
Install selfspy, then the requirements with pip :
$ pip install -r requirements.txt
You might need to give it sudo rights :
$ sudo pip install -r requirements.txt
Usage
The script is a modified version of the selfstats
program.
The same options apply. Try e.g.
$ python selfvis.py
Code status
Currently implemented is a breakdown of hours (stacked bar chart) and a pie chart (all time totals). Both plots are saved for clicks and for keypresses, respectively.
It’s very likely that long intervals aren’t split correctly.
:wrench: Options
Filtering options of original selfstats
continue to work.
See here.
:memo: Config
In ~/.selfspy/simplification_rules.txt
, add rules of the form
regexp --> name
For examples:
^\s*::\s*$ --> unknown
^(.+)::\s*$ --> \1
^(.+)::.*$ --> \1
# ^(.+)::(\w+).*$ --> \1:\2
^Firefox::.*YouTube.*$ --> Browser (Youtube)
^Firefox::.*GitHub.*$ --> Browser (GitHub)
^Firefox::.*Google Search.*$ --> Browser (search)
# ^.*Skype.*$ --> Skype
# ^.*Zimbra.*$ --> Mail
# ^.*\bmutt\b.*$ --> Mail
# ^.*\bzsh\b.*$ --> shell
to keep descriptions in legends short and expressive. Last matching rule (LHS) wins.
See this example for the rules I like.
FAQ :mag:
Q: Is there a nice webpage to display the graphs?
A: Yes, use this HTML file, host it locally.
- Download it raw from here,
- Put it somewhere where your local web server can find it (
~/Public/
,~/www/
or whatever, depending on your system), - Generate the graphs in the same folder (you can do it on a daily basis, e.g. with a cron job,
- Access the page on your web-browser. Tadaa!
It uses StrapDown.js.
Q: Is it supposed to be that slow?
A: Yup, don’t expect your graphs to be produced in two seconds, it can take up-to 15 seconds.
A: Note: You can use an option to shorten the time window used for the plot: for instance
selfvis.py --back 8 h
only uses the data from the last 8h.
Q: Can I …?
A: Yes, as long as you respect the terms of the GPLv3 License.
Other self-quantified projects ?
- uLogMe: keep track of your computer activity throughout the day: visualize your active window titles and the number and frequency of keystrokes, in beautiful and responsive HTML timelines.
- Munin, can also help to keep track of the uptime (and many more stats) of your (Linux) machine. See these plugins I wrote for my Munin.
- My minimalist dashboard, generated every hour (with a
crontab
file), with this bash scriptGenerateStatsMarkdown.sh
.
:information_desk_person: About
:pencil: Authors?
- Forked by: Lilian Besson (Naereen),
- Original author: Hannes Schulz (temporaer).
:scroll: License ? ![GitHub license](https://img.shields.io/github/license/Naereen/selfspy-vis.svg)
GPLv3 Licensed (file LICENSE). © Lilian Besson, 2016.