• Stars
    star
    261
  • Rank 151,162 (Top 4 %)
  • Language
    Haskell
  • License
    GNU General Publi...
  • Created over 10 years ago
  • Updated 9 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

arbtt, the automatic rule-based time-tracker

arbtt, the Automatic Rule-Based Time Tracker

© 2009 Joachim Breitner [email protected]

The Automatic Rule-Based Time Tracker is a desktop daemon that runs in the background and, every minute, records what windows are open on your desktop, what their titles are, which one is active. The accompanied statistics program lets you derive information from this log file, i.e. what how much of your time have you been spending with e-mail, or what projects are your largest time wasters. The mapping from the raw window titles to sensible "tags" is done by a configuration file with an powerful syntax.

Installation

See http://arbtt.nomeata.de/#install

You also need to make sure that arbtt-capture is started with your X session:

  • If you use GNOME or KDE, you can copy the file arbtt-capture.desktop to ~/.config/autostart/. You might need to put the full path to arbtt-capture in the Exec line there, if you did not do a system wide installation.

  • If you use macOS, you can use launchd for this. Create a .plist file like the following (with the path changed to match where arbtt-capture is located in your system):

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
        <dict>
            <key>Label</key>
            <string>de.nomeata.arbtt</string>
            <key>Program</key>
            <string>/path/to/arbtt-capture</string>
            <key>RunAtLoad</key>
            <true/>
            <key>KeepAlive</key>
            <true/>
        </dict>
    </plist>

    and place it in ~/Library/LaunchAgents/de.nomeata.arbtt.plist. This will ensure arbtt-capture is started whenever you log in. To start the service without needing a new login, you can run launchctl load ~/Library/LaunchAgents/de.nomeata.arbtt.plist.

If you want to record samples at a different rate than one per minute, you will have to pass the --sample-rate parameter to arbtt-capture.

Documentation

Full documentation is now provided in the user manual in the doc/ directory. If you have the docbook xsl toolchain installed, you can generate the HTML documentation by entering "make" in that directory. Otherwise, you can use the online version of the User’s Guide. Beware that this will also reflect the latest development version.

Development

You are very welcome to help the developement of arbtt. You can find the latest source at the git repository at https://github.com/nomeata/arbtt.

The issue tracker is hosted on GitHub: https://github.com/nomeata/arbtt/issues

User and Developer discussion happens on the arbtt mailing list, [email protected]. To subscribe to the list, visit http://lists.nomeata.de/mailman/listinfo/arbtt.

Some of my plans or ideas include:

  • A graphical viewer that allows you to expore the tags in an appealing, interactive way. Possibly based on the Charts haskell library.
  • Looking forward and backwards in time when writing rules. (Information is already passed to the categorizing function, but not exposed to the syntax).
  • $total_idle time, which is the maximum idle time until it is reset. This would allow the user to catch the idle times more exactly.
  • Rules based on time of day, to create tags for worktime, weekend, late at night. (Partially done)
  • Storing the current timezone in the tags, for the prevoius entry to be more to be more useful.
  • Storing the hostname, in case a user has several.
  • Statistics based on time, to visualize trends.
  • Possibly more data sources?

Any help cleaning, documenting or testing the current code is appreciated as well.

Creating the Windows Installer

The file setup.iss contains an installer script for Inno Setup and can be used to create the windows installer for arbtt. It can be used under wine. To build arbtt under Windows, you need to install the Haskell Platform. Because the Haskell Platform ships an older version of the w32api package from mingw, you also need to download w32api-3.14-mingw32-dev.tar.gz and copy at least the files include/psapi.h and lib/libpsapi.a over the files installed by the Haskell Platform. For the pcre-light package, you need to install the pcre library. Unless you run a German version of Windows, you’ll need to adjust the path to the pcre3.dll file in setup.iss. Install Inno Setup. Create the documentation (make -C doc) and configure arbtt with the --with-ISCC-flag:

$ wine runhaskell Setup.hs configure --with-ISCC='C:\Programme\Inno Setup 5\ISCC.exe'

again adjusting the path if you do not have a German version of Windows. This will put the version name into setup.iss and create the output file as dist/arbtt-setup-<version>.exe.

Download links:

More Repositories

1

incredible

The Incredible Proof Machine
Haskell
353
star
2

inspection-testing

Inspection Testing for Haskell
Haskell
171
star
3

ghc-proofs

Let GHC prove program equations for you
Haskell
146
star
4

ghc-justdoit

A magic typeclass that just does it
Haskell
120
star
5

udp-broadcast-relay

Small daemon to relay udp broadcast packages on a different subnet.
C
94
star
6

gtk-vector-screenshot

C
93
star
7

veggies

Hopefully verifiable code generation in GHC
Haskell
92
star
8

gipeda

Git Performance Dashboard
Haskell
76
star
9

haskell-for-readers

Lecture notes for teaching Haskell to those who want to read it
Haskell
53
star
10

git-multisect

find git commits that matter
Python
49
star
11

ghc-heap-view

Extract the heap representation of Haskell values and thunks
Haskell
48
star
12

screen-message

Very simple tool to display some text as large as possible
C
47
star
13

bisect-binary

Tool to determine relevant parts of binary data
Haskell
44
star
14

loogle

Mathlib search tool
Lean
41
star
15

haskell-on-fastly

Experiments about running Haskell via WebAssembly on Fastly
Haskell
37
star
16

kaleidogen

Grow procedual art
Haskell
36
star
17

cabal-plan-bounds

Calculate Haskell dependency ranges from multiple build plans
Haskell
28
star
18

ghcjs2gh-pages

Example repository setup that deploys GHCJS programs to GitHub Pages
Haskell
24
star
19

ic-http-lambda

A HTTP-to-IC bridge (proof of concept)
Rust
24
star
20

bSpokeLight

Custom firmware for the YQ8003 bicycle spoke light
Nix
22
star
21

haskell-bounds-bump-action

Create PR to bump Haskell dependency bounds
22
star
22

ic-certification

Motoko library for all things related to certification
Nix
21
star
23

ic-telegram-bot

A telegram bot on the Internet Computer
Rust
21
star
24

tasty-expected-failure

Mark test cases as expected-failure
Haskell
20
star
25

containers-verified

A package re-exporting the verified subset of containers
Haskell
20
star
26

capture-the-ic-token

Hack the canister, get the token
Motoko
19
star
27

secp265k1-lookup-table

A lookup table for the discrete log in secp265k1
C
19
star
28

haskell-rec-def

APIs for more recursive definitions
Haskell
18
star
29

motoko-certified-http

A motoko canister that can server certified HTTP assets
Modelica
17
star
30

safe-docker

Sandbox untrusted code using docker
Perl
15
star
31

lean-wf-induct

Lean
15
star
32

haskell-via-sokoban

A haskell tutorial using CodeWorld
Haskell
12
star
33

share-file

FileTea-like command line tool
Python
10
star
34

ghc-core-smallstep

A small-step semantics for Core
Haskell
10
star
35

codeworld-talk

The Codeworld-implemented sildes to my CodeWorld talk
Haskell
9
star
36

hs-all-in-one

Merges Haskell modules into one
Haskell
9
star
37

free-theorems-static-webui

A browser-only web interface to the free-theorems library
Haskell
8
star
38

pybotbrain

Learn programming with Python and Telegram
PureScript
8
star
39

ic-barrier

Delay responses on the Internet Computer, for testing and other purposes
Modelica
6
star
40

list-producing-monads

Benchmarks for http://www.joachim-breitner.de/blog/684-constructing-a-list-in-a-monad-revisited
Haskell
6
star
41

git-post-squash

Squash-merge aware merge method
Shell
6
star
42

slidingright

The code for the slidingright paper
Haskell
5
star
43

list-fusion-probe

Haskell
5
star
44

haskell-successors

An applicative functor to manage successors
Haskell
5
star
45

haskell-candid

A candid library for Haskell
Haskell
5
star
46

unicode-screensaver

Unicode Screensaver
C
5
star
47

list-fusion-lab

Benchmarks for list fusion experiments
Haskell
4
star
48

tiptoi-arm-investigation

Temporary repository to investigate ARM binaries in GME files
Shell
4
star
49

haskell-bytes-bobkonf2021

The “Haskell Bytes” tutorial at Bobkonf 2021
Haskell
4
star
50

ghc-proposals-stats

Statistics for the GHC proposal repository
Haskell
4
star
51

motoko-sbc2020

Code for Motoko talk at SBC2020
Modelica
4
star
52

hackage-ghcjs-overlay

GHCJS-related packages missing from Hackage
4
star
53

hal2016-website

Webseite for Haskell in Leipzig 2016
HTML
4
star
54

umklappbot

A telegram bot to play the Umklappspiel
Haskell
4
star
55

libnss-myhostname

C
4
star
56

bootstrapping-haskell

Feeble attempts at bootstrapping Haskell
Haskell
4
star
57

rec-def-pearl

Source for the ICFP'23 Functional Pearl
HTML
3
star
58

reflex-dom-fragment-shader-canvas

A reflex-dom widget to draw on a canvas with a fragment shader program
Haskell
3
star
59

ipatch

interactive patch editor
Haskell
3
star
60

you-say-first

You Say First!
JavaScript
3
star
61

mitschriebwiki

Source for http://mitschriebwiki.nomeata.de/
TeX
3
star
62

nofib-analyse

Parse and compare nofib runs
Haskell
3
star
63

ghc-complete

A history of GHC fingerprint files; used for travis CI.
Shell
3
star
64

yucata-tools

Inofficial tools for heavy yucata.de users.
Python
3
star
65

link-monitor-applet

C
2
star
66

funcCF

Haskell
2
star
67

incredible-demo

The github pages for http://github.com/nomeata/incredible
JavaScript
2
star
68

squasher

Python
2
star
69

cabal-force-upper-bound

Reliably exercise the upper bound of your cabal dependencies
Haskell
2
star
70

lean-trie

Lean
2
star
71

badminton-junkies

Badminton Junkies e.V. site
Haskell
2
star
72

haskell-leb128-cereal

LEB128 encoding for Haskell
Haskell
2
star
73

sat-britney

Haskell
2
star
74

lean4-memo-nat

Lean
2
star
75

L-seed

JavaScript
2
star
76

latexki

Static Site Generator for Latex-based Wiki
Haskell
2
star
77

info-beamer-wikicloud

Plug-In for info-beamer
Lua
2
star
78

led-display

Markup language for the 7×21 USB LED Display from Dream Cheeky/get-digital.de
Haskell
2
star
79

libnss-gw-name

C
1
star
80

rerolling-sixes

Lean
1
star
81

colibri-funcup-2023

Python
1
star
82

lean-darray

Lean
1
star
83

lean-simplc

Experimental local confluence checker for Lean simp lemmas
Lean
1
star
84

lean-derec-lab

Lean
1
star
85

conteq

LaTeX class to typeset continued equalities
TeX
1
star
86

sumserum

Sim-Serim clone as a browser game
JavaScript
1
star
87

zpub

zpub is a server to collaboratively work on DocBook-based documentation.
Shell
1
star
88

tttool-nofib

Real-world nofib addition proposal
Haskell
1
star
89

smime-smtp-proxy

Python
1
star
90

motoko-scc

A Strongly Connected Components algorithm for Motoko
Motoko
1
star
91

nt-coerce

Explicit newtype coercion lifting in Haskell
Haskell
1
star
92

circle-packing

Simple heuristic for packing discs of varying radii in a circle
Haskell
1
star
93

random-haskell-code

Generates random Haskell code based on some existing corpus of modules
Haskell
1
star
94

haskell-spacegoo

Haskell
1
star
95

parser-calledarityanalysis

Slowdown in Called arity analysis from GHC 8.0.2 to GHC 8.2.1
Haskell
1
star