• Stars
    star
    261
  • Rank 156,630 (Top 4 %)
  • Language
    Haskell
  • License
    GNU General Publi...
  • Created about 11 years ago
  • Updated over 1 year 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
359
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

loogle

Mathlib search tool
Lean
53
star
10

haskell-for-readers

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

git-multisect

find git commits that matter
Python
49
star
12

ghc-heap-view

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

screen-message

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

bisect-binary

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

haskell-on-fastly

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

kaleidogen

Grow procedual art
Haskell
36
star
17

cabal-plan-bounds

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

ic-telegram-bot

A telegram bot on the Internet Computer
Rust
25
star
19

ghcjs2gh-pages

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

haskell-bounds-bump-action

Create PR to bump Haskell dependency bounds
24
star
21

ic-http-lambda

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

bSpokeLight

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

ic-certification

Motoko library for all things related to certification
Nix
22
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

lean-wf-induct

Lean
17
star
30

motoko-certified-http

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

safe-docker

Sandbox untrusted code using docker
Perl
15
star
32

haskell-via-sokoban

A haskell tutorial using CodeWorld
Haskell
15
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

lean-calcify

Lean
9
star
38

free-theorems-static-webui

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

pybotbrain

Learn programming with Python and Telegram
PureScript
8
star
40

ic-barrier

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

list-producing-monads

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

git-post-squash

Squash-merge aware merge method
Shell
6
star
43

tiptoi-arm-investigation

Temporary repository to investigate ARM binaries in GME files
Shell
5
star
44

list-fusion-probe

Haskell
5
star
45

haskell-successors

An applicative functor to manage successors
Haskell
5
star
46

haskell-candid

A candid library for Haskell
Haskell
5
star
47

slidingright

The code for the slidingright paper
Haskell
5
star
48

unicode-screensaver

Unicode Screensaver
C
5
star
49

bootstrapping-haskell

Feeble attempts at bootstrapping Haskell
Haskell
5
star
50

list-fusion-lab

Benchmarks for list fusion experiments
Haskell
4
star
51

haskell-bytes-bobkonf2021

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

ghc-proposals-stats

Statistics for the GHC proposal repository
Haskell
4
star
53

motoko-sbc2020

Code for Motoko talk at SBC2020
Modelica
4
star
54

hackage-ghcjs-overlay

GHCJS-related packages missing from Hackage
4
star
55

hal2016-website

Webseite for Haskell in Leipzig 2016
HTML
4
star
56

umklappbot

A telegram bot to play the Umklappspiel
Haskell
4
star
57

libnss-myhostname

C
4
star
58

rec-def-pearl

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

reflex-dom-fragment-shader-canvas

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

ipatch

interactive patch editor
Haskell
3
star
61

you-say-first

You Say First!
JavaScript
3
star
62

mitschriebwiki

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

nofib-analyse

Parse and compare nofib runs
Haskell
3
star
64

ghc-complete

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

yucata-tools

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

funcCF

Haskell
2
star
67

link-monitor-applet

C
2
star
68

incredible-demo

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

cabal-force-upper-bound

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

lean-stage0-audit

HTML
2
star
71

lean-trie

Lean
2
star
72

squasher

Python
2
star
73

badminton-junkies

Badminton Junkies e.V. site
Haskell
2
star
74

haskell-leb128-cereal

LEB128 encoding for Haskell
Haskell
2
star
75

sat-britney

Haskell
2
star
76

lean4-memo-nat

Lean
2
star
77

L-seed

JavaScript
2
star
78

latexki

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

info-beamer-wikicloud

Plug-In for info-beamer
Lua
2
star
80

led-display

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

circle-packing

Simple heuristic for packing discs of varying radii in a circle
Haskell
2
star
82

libnss-gw-name

C
1
star
83

rerolling-sixes

Lean
1
star
84

colibri-funcup-2023

Python
1
star
85

lean-darray

Lean
1
star
86

lean-simplc

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

lean-derec-lab

Lean
1
star
88

conteq

LaTeX class to typeset continued equalities
TeX
1
star
89

sumserum

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

zpub

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

tttool-nofib

Real-world nofib addition proposal
Haskell
1
star
92

smime-smtp-proxy

Python
1
star
93

motoko-scc

A Strongly Connected Components algorithm for Motoko
Motoko
1
star
94

nt-coerce

Explicit newtype coercion lifting in Haskell
Haskell
1
star
95

haskell-spacegoo

Haskell
1
star
96

random-haskell-code

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

parser-calledarityanalysis

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

lean-constructions

Lean
1
star