
Security News
npm ‘is’ Package Hijacked in Expanding Supply Chain Attack
The ongoing npm phishing campaign escalates as attackers hijack the popular 'is' package, embedding malware in multiple versions.
Textual chart for arbtt, the automatic, rule-based time tracker.
Similar to arbtt-graph, just in plain monospace text.
(The above screenshot is generated using my liskin-arbtt-stats which provides a few handy commands and combines data from multiple X sessions and Strava.)
Raw arbtt-stats
output for the same time period looks something like this:
Install arbtt and make sure
arbtt-capture
runs in your graphical login session.
Configure arbtt rules in ~/.arbtt/categorize.cfg
.
See Configuring the arbtt categorizer, Effective Use of Arbtt, and
sample categorize.cfg for arbtt-graph.
Try arbtt-stats --output-format=csv --each-category | arbtt-chart
or
arbtt-stats --output-format=csv --category=Graph | arbtt-chart
Using pipx:
pipx ensurepath
pipx install git+https://github.com/liskin/arbtt-chart
To keep a local git clone around:
git clone https://github.com/liskin/arbtt-chart
make -C arbtt-chart pipx
Alternatively, if you don't need the isolated virtualenv that pipx provides, feel free to just:
pip install git+https://github.com/liskin/arbtt-chart
Or, since the only dependency is pandas, you can just sudo apt install python3-pandas
and run arbtt_chart.py
directly. :-)
$ arbtt-chart --help
usage: arbtt-chart [-h] [--no-stacked] [--subtags] [--totals-re RE]
Plot charts from arbtt-stats to terminal. Expects `arbtt-stats --output-
format=csv --category=…` or `arbtt-stats --output-format=csv --each-category`
output on stdin.
options:
-h, --help show this help message and exit
--no-stacked don't stack bar chart
--subtags recognize subtags (separated by '-') and sort them together
--totals-re RE totals row regexp, default: ^\(total time\)$
$ arbtt-stats --filter='$date >= 2021-03-0220:00 && $date < 2021-03-0303:00' \
> --min-percentage=2 --category=Activity --output-format=csv \
> | arbtt-chart
Activity
════════
Proj-arbttⁱ 03:11:40 ███████████▓██████████▓██████████▓██▏········÷···
Chat 00:30:20 ···········÷··········÷··········÷··█████▊···÷···
(8 entries omitted) 00:15:40 ···········÷··········÷··········÷·······▕██▊÷···
Web-Social 00:08:20 ···········÷··········÷··········÷··········▐▓▏··
Web-otherⁱ 00:06:40 ···········÷··········÷··········÷···········÷█▍·
Web-HN 00:06:20 ···········÷··········÷··········÷···········÷·▐▊
(unmatched time) 00:01:20 ···········÷··········÷··········÷···········÷··▕
(total time) 04:20:20 ███████████▓██████████▓██████████▓███████████▓███
$ arbtt-stats --filter='$date >= 2021-03-0220:00 && $date < 2021-03-0303:00' \
> --min-percentage=2 --category=Activity --output-format=csv \
> | arbtt-chart --subtags
Activity
════════
Proj arbttⁱ 03:11:40 █████████▓█████████▓█████████▓█·······÷···
Chat 00:30:20 ·········÷·········÷·········÷▕████▊··÷···
Web Social 00:08:20 ·········÷·········÷·········÷·····▕█▏÷···
otherⁱ 00:06:40 ·········÷·········÷·········÷·······█▏···
HN 00:06:20 ·········÷·········÷·········÷········▓▏··
(8 entries omitted) 00:15:40 ·········÷·········÷·········÷········÷██▋
(unmatched time) 00:01:20 ·········÷·········÷·········÷········÷··▕
(total time) 04:20:20 █████████▓█████████▓█████████▓████████▓███
$ arbtt-stats --filter='$date >= 2021-03-0220:00 && $date < 2021-03-0303:00' \
> --min-percentage=2 --each-category --output-format=csv \
> | arbtt-chart
Activity
════════
Proj-arbttⁱ 03:11:40 ███████████▓██████████▓██████████▓██▏········÷···
Chat 00:30:20 ···········÷··········÷··········÷··█████▊···÷···
(8 entries omitted) 00:15:40 ···········÷··········÷··········÷·······▕██▊÷···
Web-Social 00:08:20 ···········÷··········÷··········÷··········▐▓▏··
Web-otherⁱ 00:06:40 ···········÷··········÷··········÷···········÷█▍·
Web-HN 00:06:20 ···········÷··········÷··········÷···········÷·▐▊
(unmatched time) 00:01:20 ···········÷··········÷··········÷···········÷··▕
(total time) 04:20:20 ███████████▓██████████▓██████████▓███████████▓███
Desktop
═══════
4_arbtt 02:21:40 ███████████▓██████████▓███▊······÷···········÷···
6_arbtt_web 00:50:20 ···········÷··········÷···▐██████▓██·········÷···
1_irc 00:34:00 ···········÷··········÷··········÷··██████▌··÷···
2_web 00:34:00 ···········÷··········÷··········÷········▐██▓███
(1 entries omitted) 00:00:20 ···········÷··········÷··········÷···········÷··▕
(total time) 04:20:20 ███████████▓██████████▓██████████▓███████████▓███
Program
═══════
urxvt 02:38:00 ███████████▓██████████▓██████▊···÷···········÷···
google-chrome 01:21:40 ···········÷··········÷······▐███▓██████████▉÷···
app_element_io 00:14:40 ···········÷··········÷··········÷···········▓█▉·
(3 entries omitted) 00:06:00 ···········÷··········÷··········÷···········÷·▕█
(total time) 04:20:20 ███████████▓██████████▓██████████▓███████████▓███
$ arbtt-chart --totals-re='^\(' <<END
> Tag,Time
> Act:Work,02:30:00
> Act:Social,01:20:00
> Act:Mail,00:20:00
> Act:Movie,01:30:00
> (screen),05:40:00
>
> Tag,Time
> Act:Sport,3600
> Act:Commute,1800
> (outside),5400
> END
Act
═══
Work 02:30:00 ████████▓███████▓███▋···÷·······÷········÷·······÷·······÷·
Movie 01:30:00 ········÷·······÷···▐███▓███████▉········÷·······÷·······÷·
Social 01:20:00 ········÷·······÷·······÷·······▕████████▓█▊·····÷·······÷·
Sport 01:00:00 ········÷·······÷·······÷·······÷········÷·▕█████▓██·····÷·
Commute 00:30:00 ········÷·······÷·······÷·······÷········÷·······÷··████▏÷·
Mail 00:20:00 ········÷·······÷·······÷·······÷········÷·······÷······█▓▊
(screen) 05:40:00 ████████▓███████▓███████▓███████▓████████▓████▊··÷·······÷·
(outside) 01:30:00 ████████▓███▍···÷·······÷·······÷········÷·······÷·······÷·
$ arbtt-chart <<END
> Tag,Time
> Screen:Work,02:30:00
> Screen:Social,01:20:00
> Screen:Mail,00:20:00
> Screen:Movie,01:30:00
> (total time),05:40:00
>
> Tag,Time
> Outside:Sport,3600
> Outside:Commute,1800
> (total time),5400
> END
Screen
══════
Work 02:30:00 █████████▓█████████▓████▊····÷·········÷·········÷······
Movie 01:30:00 ·········÷·········÷····▐████▓█████████▍·········÷······
Social 01:20:00 ·········÷·········÷·········÷·········▐█████████▓██▊···
Mail 00:20:00 ·········÷·········÷·········÷·········÷·········÷··▐██▉
(total time) 05:40:00 █████████▓█████████▓█████████▓█████████▓█████████▓██████
Outside
═══════
Sport 01:00:00 █████████▓·········÷·········÷·········÷·········÷······
Commute 00:30:00 ·········▕████▊····÷·········÷·········÷·········÷······
(total time) 01:30:00 █████████▓████▉····÷·········÷·········÷·········÷······
FAQs
"Plot charts from arbtt-stats to terminal"
We found that arbtt-chart demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
The ongoing npm phishing campaign escalates as attackers hijack the popular 'is' package, embedding malware in multiple versions.
Security News
A critical flaw in the popular npm form-data package could allow HTTP parameter pollution, affecting millions of projects until patched versions are adopted.
Security News
Bun 1.2.19 introduces isolated installs for smoother monorepo workflows, along with performance boosts, new tooling, and key compatibility fixes.