You're Invited:Meet the Socket Team at BlackHat and DEF CON in Las Vegas, Aug 4-6.RSVP
Socket
Book a DemoInstallSign in
Socket

arbtt-chart

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

arbtt-chart

"Plot charts from arbtt-stats to terminal"

1.0.2
pipPyPI
Maintainers
1

arbtt-chart

Textual chart for arbtt, the automatic, rule-based time tracker.

PyPI Python Version badge PyPI Version badge License badge

Similar to arbtt-graph, just in plain monospace text.

demo

(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:

arbtt-stats

Getting started

Installation

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. :-)

Usage

$ 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\)$

Examples

single category

$ 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  ███████████▓██████████▓██████████▓███████████▓███

single category, subtags

$ 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  █████████▓█████████▓█████████▓████████▓███

multiple categories

$ 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  ███████████▓██████████▓██████████▓███████████▓███

custom inputs

$ 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  ████████▓███▍···÷·······÷·······÷········÷·······÷·······÷·

custom inputs, multiple tables at same scale

$ 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

Did you know?

Socket

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.

Install

Related posts