All source listed below is under MIT license if no LICENSE file stating different is available.

Tikker

Tikker is Dutch for typer.

This is an application for monitoring your key presses.

It will store all your keypresses in a database called 'tikker.db' in current work directory.

It didn't came well out of the review.

  • It contains one bug for sure.
  • Other issues were false positives.
  • Did not agree on some points.
  • I can do whatever I want, but in the end i'll just be a 6-quality-person.
  • Tsoding says, you have two kinds of people. One that writes perfect code and the ones that get shit done. I'm the latter. School time's over. It's time for work.

Pre-build binaries:

  • Download using curl -OJ https://retoor.molodetz.nl/api/packages/retoor/generic/tikker/1.0.0/tikker .
  • Or download using wget https://retoor.molodetz.nl/api/packages/retoor/generic/tikker/1.0.0/tikker.

Usage

Execute as root is important!

sudo ./tikker

It can be annoying to have the terminal open the whole day. I advise to use tmux or install it as systemd service. If you install it as systemd service, you're sure you'll never miss a key press! Make sure that you define the work directory where the database should be stored in systemd service.

Statistics

For displaying graphs with stats execute:

make plot

Compilation

Compilation requires sqlite3 development header files.

sudo apt install libsqlite3-dev

Building:

make build

Building and running:

make

Output explained

Keyboard: AT Translated Set 2 keyboard, Event: RELEASED, Key Code: 15 Pr: 24 Rel: 25 Rep: 14

Description is quite clear I assume in exception of last three. These are explained below:

  • Pr = key presses this session (so not the total in database).
  • Rel = key releases this session (so not the total in database). Release is one more than presses due startup of application that only registers the release of a key.
  • Rep = when you hold you key down thus repeats. Also for only session, not database totals.

Install as systemd service

This is the most comfortable way to use the application. You'll never miss a keypress!

  1. Open file in your editor: /etc/systemd/system/tikker.service.
  2. Insert content:
Description=Tikker service
After=network-online.target

[Service]
ExecStart=[tikker executable]
User=root
Group=root
Restart=always
RestartSec=3
WorkingDirectory=[place where you want to have tikker.db]

[Install]
WantedBy=default.target
  1. Enable by systemctl enable tikker.service.
  2. Start service by systemctl start tikker.service. Service is now configured to run from the moment your computer boots!
.clang-format
.gitignore
install.sh
LICENSE
Makefile
merge.py
plot.py
README.md
requirements.txt
review.md
sormc.h
tags.py
tikker
tikker.c
tikker.c.md