{"id":18974541,"url":"https://github.com/m7a/bo-screenindex","last_synced_at":"2026-04-08T15:30:20.218Z","repository":{"id":164554582,"uuid":"249030106","full_name":"m7a/bo-screenindex","owner":"m7a","description":"Record computer activity time","archived":false,"fork":false,"pushed_at":"2024-04-28T19:32:40.000Z","size":168,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-01T09:08:17.447Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/m7a.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-03-21T17:49:22.000Z","updated_at":"2024-04-28T19:32:43.000Z","dependencies_parsed_at":"2024-04-28T20:31:38.819Z","dependency_job_id":"43101064-ab07-49a3-97d6-e43957c67de7","html_url":"https://github.com/m7a/bo-screenindex","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/m7a%2Fbo-screenindex","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/m7a%2Fbo-screenindex/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/m7a%2Fbo-screenindex/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/m7a%2Fbo-screenindex/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/m7a","download_url":"https://codeload.github.com/m7a/bo-screenindex/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239972101,"owners_count":19727306,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-08T15:15:23.247Z","updated_at":"2026-04-08T15:30:20.147Z","avatar_url":"https://github.com/m7a.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"---\nsection: 32\nx-masysma-name: screenindex\ntitle: Screen Index\ndate: 2020/03/20 21:07:42\nlang: de-DE\nauthor: [\"Linux-Fan, Ma_Sys.ma (Ma_Sys.ma@web.de)\"]\nkeywords: [\"screenindex\", \"java\", \"mdvl\", \"package\"]\nx-masysma-version: 1.0.0\nx-masysma-repository: https://www.github.com/m7a/bo-screenindex\nx-masysma-website: https://masysma.net/32/screenindex.xhtml\nx-masysma-owned: 1\nx-masysma-copyright: |\n  Copyright (c) 2020 Ma_Sys.ma.\n  For further info send an e-mail to Ma_Sys.ma@web.de.\n---\nBeschreibung\n============\n\nScreen Index ermöglicht es aufzuzeichnen, wie lange der Computer läuft.\nDazu wird das Programm in den Autostart-Mechanismus des Betriebssystemes\naufgenommen und beim Systemstart oder beim Einloggen gestartet. Die Aufzeichnung\nendet, sobald das Programm beendet wird, bspw. ausgelöst durch ein\nHerunterfahren des Rechners.\n\nDie Aufzeichnung kann über die Kommandozeile oder durch direktes Auswerten der\nXML-Aktivitätendatei erfolgen. Das Programm sieht auch einen XHTML+SVG-Export\nvor, der die Aktivität eines Jahres in einer interaktiven Übersicht exportiert.\n\nZusätzlich zur Zeitaufzeichnung können für den aktuell laufenden Zeitraum\nNotizen hinterlegt werden, die man bspw. nutzen kann, um herauszufinden, wie\nviel Zeit bestimmte Aktivitäten einnehmen.\n\nGrundlegende Benutzung\n======================\n\nZum Test kann man die JAR-Datei direkt aufrufen. In diesem Falle wird im\naktuellen Verzeichnis eine Konfigurationsdatei und Datenbank erstellt.\n\nHier ist eine Beispielsitzung:\n\n~~~\n$ java -jar screenindex.jar -l\nScreen Index 1.0.4.5, Copyright (c) 2009, 2010, 2011, 2012, 2015 Ma_Sys.ma.\nFor further info send an e-mail to Ma_Sys.ma@web.de.\n\nUnable to read configuration data: configuration.ini (No such file or directory)\njava.io.FileNotFoundException: configuration.ini (No such file or directory)\n\tat java.io.FileInputStream.open0(Native Method)\n\tat java.io.FileInputStream.open(FileInputStream.java:195)\n\tat java.io.FileInputStream.\u003cinit\u003e(FileInputStream.java:138)\n\tat java.io.FileReader.\u003cinit\u003e(FileReader.java:72)\n\tat ma.screenindex.Configuration.readConfiguration(Configuration.java:50)\n\tat ma.screenindex.Main.main(Main.java:138)\nThis can happen at the first startup.\nScreenindex logging in progress -- waiting for shutdown...\n~~~\n\nDa das Programm zum ersten Mal gestartet wurde, findet es keine\nKonfigurationseinstellungen und erzeugt diese in der Datei `configuration.ini`.\nAnschließend wird die Aufzeichnung gestartet, bis man das Programm beendet,\nbspw. über den Task Manager oder [CTRL]-[C].\n\nIm Folgenden steht die Ausgabe, wenn man das Programm per [CTRL]-[C] beendet:\n\n\t^Cdone.\n\nEs wird also die Meldung “done“ (fertig) ausgegeben, um zu signalisieren, dass\ndie Aktivitätsdaten gespeichert wurden. Anschließend kann die Aktivität des\naktuellen Jahres, Monats und Tages per Kommandozeile abgefragt werden:\n\n~~~\n$ java -jar screenindex.jar -v y current\nScreen Index 1.0.4.5, Copyright (c) 2009, 2010, 2011, 2012, 2015 Ma_Sys.ma.\nFor further info send an e-mail to Ma_Sys.ma@web.de.\n\n3.2020: 0 h, 8 min, 33 sec (513 sec)\n\nTotal:    0 h, 8 min, 33 sec (513 sec)\nAverange: 0 h, 8 min, 33 sec (513 sec)\n$ java -jar screenindex.jar -v m 03.2020\nScreen Index 1.0.4.5, Copyright (c) 2009, 2010, 2011, 2012, 2015 Ma_Sys.ma.\nFor further info send an e-mail to Ma_Sys.ma@web.de.\n\n20.03.2020: 0 h, 8 min, 33 sec (513 sec)\n\nTotal:    0 h, 8 min, 33 sec (513 sec)\nAverange: 0 h, 8 min, 33 sec (513 sec)\n$ java -jar screenindex.jar -v d 20.03.2020\nScreen Index 1.0.4.5, Copyright (c) 2009, 2010, 2011, 2012, 2015 Ma_Sys.ma.\nFor further info send an e-mail to Ma_Sys.ma@web.de.\n\nActivity from 21:14:27 to 21:23:00: 0 h, 8 min, 33 sec (513 sec)\n\nTotal:    0 h, 8 min, 33 sec (513 sec)\nAverange: 0 h, 8 min, 33 sec (513 sec)\n~~~\n\nDa lediglich Daten für einen Tag vorliegen, sind die Inhalte für alle drei\nVarianten gleich. Auf Tagesebene werden einzelne _Activities_ unterschieden.\nWenn man das Programm erneut startet und beendet, so erhält man in der\nTagesansicht eine nach Aktivitäten aufgeschlüsselte Ansicht:\n\n~~~\nScreen Index 1.0.4.5, Copyright (c) 2009, 2010, 2011, 2012, 2015 Ma_Sys.ma.\nFor further info send an e-mail to Ma_Sys.ma@web.de.\n\nActivity from 21:14:27 to 21:23:00: 0 h, 8 min, 33 sec (513 sec)\nActivity from 21:25:54 to 21:26:35: 0 h, 0 min, 41 sec (41 sec)\n\nTotal:    0 h, 9 min, 13 sec (554 sec)\nAverange: 0 h, 4 min, 36 sec (277 sec)\n~~~\n\nInstallation\n============\n\nZur Installation von Screen Index muss das `screenindex.jar` kompiliert und in\neinem Ordner bereitgestellt werden. Die Kompilation erfolgt mit `ant jar`, die\nInstallation durch Kopieren des JAR-files in einen Ordner nach Wahl.\n\nAuf Debian-basierten Linuxsystemen kann mit `ant package` ein Paket erzeugt\nwerden, welches ein Skript `screenindex` mitliefert, um Screen Index aufzurufen.\nMit diesem Skript wird automatisch das Verzeichnis `$HOME/.mdvl/screenindex` als\nAblageort für Konfiguration und Datenbank festgelegt.\n\nInstalliert man Screen Index selbst, so ist es sinnvoll, ein entsprechendes\nSkript ebenfalls zu erstellen, damit die im Hintergrund laufende Version die\nselbe Datenbank verwendet, wie eventuell im Vordergrund erfolgende Anfragen.\nIm Einfachsten Falle enthält das Skript nur ein `cd` in ein geeignetes\nVerzeichnis gefolgt vom Screen Index Start.\n\nZusätzlich ist es für die Installation sinnvoll, Screen Index in den\nAutostartmechanismus des Betriebssystemes zu integrieren. Unter Windows legt\nman eine Verknüpfung im Ordner `shell:startup` an, unter Linux kann man\nunter Debian bspw. einen Eintrag in der `.xsession`-Datei oder dem\nAutostartmechanismus des Fenstersystemes vornehmen. Je nach Nutzungsweise ist\nfür den automatisch gestarteten Aufruf ein `screenindex -l -g` oder\n`screenindex -l -y` sinnvoll.\n\nJe nach dem, welche Zeit man erfassen will, gibt es weiterhin Sinn, Screen Index\nbeim Sperren des Bildschirmes zu beenden, um diese Zeit von der Erfassung\nauszuklammern. Unter Linux kann man bspw. das Kommando zum Aufrufen des\nBildschirmschoners um einen Eintrag für `screenindex_term` erweitern -- ein\nSkript, welches im Repository mitgeliefert wird. Wie eine solche Integration\naussehen kann, zeigt das ebenfalls mitgelieferte Skript `q` am Beispiel des\nXScreenSaver.\n\nSpezielle Features\n==================\n\n## Zuordnung zu Tagen\n\nBei der Aufzeichnung werden Activities nur dann beendet, wenn Screen Index\nbeendet wird. Dadurch wird eine vor 00:00 des nächsten Tages begonnene Aktivität\nauch in den neuen Tag fortgesetzt. Beispiel:\n\n~~~\n$ screenindex -v d 20.02.2018\nScreen Index 1.0.4.5, Copyright (c) 2009, 2010, 2011, 2012, 2015 Ma_Sys.ma.\nFor further info send an e-mail to Ma_Sys.ma@web.de.\n\nActivity from 21:40:31 to 22:03:38: 0 h, 23 min, 7 sec (1387 sec)\nActivity from 22:25:24 to 22:58:18: 0 h, 32 min, 53 sec (1974 sec)\nActivity from 23:01:09 to 23:25:18: 0 h, 24 min, 8 sec (1449 sec)\nActivity from 23:27:43 to 00:43:10: 1 h, 15 min, 27 sec (4527 sec)\n\nTotal:    2 h, 35 min, 37 sec (9337 sec)\nAverange: 0 h, 38 min, 53 sec (2334 sec)\n~~~\n\nIn diesem Beispiel wurde die vierte _Activity_ um 23:27 angefangen und endete\num 00:43 des nächsten Tages. Nachfolgende Aufzeichnungen, die nach 00:00\nangefangen werden, werden dann dem nächsten Tag zugerechnet:\n\n~~~\n$ screenindex -v d 21.02.2018\nScreen Index 1.0.4.5, Copyright (c) 2009, 2010, 2011, 2012, 2015 Ma_Sys.ma.\nFor further info send an e-mail to Ma_Sys.ma@web.de.\n\nActivity from 01:10:39 to 01:40:20: 0 h, 29 min, 41 sec (1781 sec)\nActivity from 18:29:52 to 19:10:32: 0 h, 40 min, 39 sec (2440 sec)\nActivity from 19:17:52 to 19:41:57: 0 h, 24 min, 4 sec (1445 sec)\nActivity from 20:16:01 to 22:05:26: 1 h, 49 min, 25 sec (6565 sec)\nActivity from 22:38:34 to 23:52:35: 1 h, 14 min, 0 sec (4441 sec)\n\nTotal:    4 h, 36 min, 52 sec (16672 sec)\nAverange: 0 h, 55 min, 34 sec (3334 sec)\n~~~\n\nDiese spezielle Aufzeichnungsweise liegt aktuell in der Implementierung\nbegründet und könnte sich in einer neueren Screen Index Version ändern.\nInsgesamt trifft sie aber die Idee nicht schlecht, dass eine angefangene\nAktivität wohl nicht allein durch Springen der Uhr von 23:59 auf 00:00 beendet\nwerden sollte. Aus menschlicher Sicht ist vielleicht die Zuordnung zu einem\nneuen Tag ab dem Moment interessant, wo man inzwischen geschlafen hat. Dieses\nkann (und soll) das Programm aber nicht erkennen...\n\n## Hinterlegen von Nachrichten\n\nDen laufenden Aktivitäten können durch folgenden Aufruf Nachrichten zugeordnet\nwerden:\n\n~~~\n$ screenindex -p NACHRICHT \n~~~\n\nDamit wird der laufenden Aktivität die Nachricht `NACHRICHT` zugeordnet. Sie\nwird zunächst in der Datei `screenindex-locked.txt` hinterlegt und beim Beenden\nder Aktivität in die Datenbank übertragen. Anschließend kann man mit der\nAnsicht des aktuellen Tages, die zugeordnete Nachricht betrachten, Beispiel:\n\n~~~\n$ java -jar screenindex.jar -p Testnachricht\n[... weitere Aktionen inkl. Beenden der Aktivität ...]\n$ java -jar screenindex.jar -v d current\nScreen Index 1.0.4.5, Copyright (c) 2009, 2010, 2011, 2012, 2015 Ma_Sys.ma.\nFor further info send an e-mail to Ma_Sys.ma@web.de.\n\nActivity from 14:34:08 to 14:34:30: 0 h, 0 min, 22 sec (22 sec)\n  Message: Testnachricht\n\nTotal:    0 h, 0 min, 22 sec (22 sec)\nAverange: 0 h, 0 min, 22 sec (22 sec)\n~~~\n\nIn der Monatsansicht können Nachrichten ebenfalls betrachtet werden, indem man\nzusätzlich den Parameter `-i` verwendet:\n\n~~~\n$ java -jar screenindex.jar -v m current -i\nScreen Index 1.0.4.5, Copyright (c) 2009, 2010, 2011, 2012, 2015 Ma_Sys.ma.\nFor further info send an e-mail to Ma_Sys.ma@web.de.\n\n20.03.2020: 0 h, 9 min, 13 sec (554 sec)\n21.03.2020: 0 h, 0 min, 22 sec (22 sec)\n  Testnachricht\n\nTotal:    0 h, 9 min, 35 sec (576 sec)\nAverange: 0 h, 4 min, 47 sec (288 sec)\nMessages: 1\n~~~\n\nBenutzt man stattdessen `-m`, werden die Nachrichten ohne die Angabe der\nTage angezeigt, sodass man eine übersichtlichere Darstellung der Nachrichten\nerhält.\n\n## Behandlung unsauberer Programmbeendung\n\nDa Screen Index die Aktivität nur speichern kann, wenn es ordnungsgemäß, das\nheißt unter Linux bspw. mit einem INT oder TERM-Signal, beendet wird, gibt es\nspezielle Vorkehrungen für den Fall, dass ein solches sauberes Beenden nicht\nmöglich war. Das Standardverhalten von `-l` nach einem „unsauberen“ Beenden\nbspw. unter Linux durch KILL ist es, die weitere Aufzeichnung zu verweigern:\n\n~~~\n$ java -jar screenindex.jar -l\nScreen Index 1.0.4.5, Copyright (c) 2009, 2010, 2011, 2012, 2015 Ma_Sys.ma.\nFor further info send an e-mail to Ma_Sys.ma@web.de.\n\nThere is a file called \"/data/main/mdvl/rr/x-artifacts-unmanaged/xond/screenindex/tmp/test/screenindex-locked.txt\".\nThat file indicates that Screenindex is already running.\nIf this is not true, you can just call screenindex with\nthe \"-l -d\" option to delete the file. Then just try to\nstart logging again.\n~~~\n\nGrund für die Sinnhaftigkeit dieses Standardverhaltens ist es, dass mehrere\nparallel laufende Screen Index Instanzen noch problematischer als das Verweigern\nder Aufzeichnung wären: Aktivitäten könnten doppelt oder fehlerhaft gespeichert\nwerden, sodass der parallele Betrieb mit der selben Datenbank unbedingt zu\nvermeiden ist.\n\nEine entsprechende Meldung auf der Konsole weist den Benutzer darauf hin. Wenn\nman sich sicher ist, dass kein Fehler vorliegt, so kann man durch einmaligen\nAufruf mit `-l -d` die entsprechende `screenindex-locked.txt` löschen. Eine\nvormalige Aktivität geht dabei verloren. Eine Alternative ist `-l -y`, bei dem\ndie Daten aus der `screenindex-locked.txt` als (unvollständige) Aktivität\neingetragen werden, sofern möglich. Diese Variante kann man auch standardmäßig\nverwenden, wenn man weiß, dass parallel laufende Screen Index Instanzen\nausgeschlossen sind und sich das lokale Betriebssystem nicht so einstellen\nlässt, dass Screen Index beim Herunterfahren oder Ausloggen sauber beendet wird.\n\nDie dritte Möglichkeit ist `-l -g`, die den Benutzer mit einem graphischen\nDialog fragt; hier ein Screenshot:\n\n![Aufruf von `screenindex -l -g` bei Vorhandensein einer\n`screenindex-locked.txt`](screenindex_att/screenindexlg.png)\n\nIn diesem Dialog kann der Benutzer interaktiv [OK] wählen, um den selben\nEffekt zu erzielen wie ein einmaliges `screenindex -l -y` oder [CANCEL], um\nden Startvorgang von Screen Index abzubrechen. Bei Verwendung von Screenindex\nin graphischen Umgebungen ist der Start mit `-l -g` eigentlich immer zu\nempfehlen, wenn unsauberes Beenden eine Ausnahmesituation darstellt.\n\n## Aktualität der Datenbank bei gleichzeitig laufendem Screen Index Logging\n\nWenn man `screenindex -l` im Hintergrund laufen lässt und parallel die\nDatenbankinhalte mit den `screenindex -v`-Optionen abfragt, so fällt auf, dass\ndie aktuelle Aktivität noch nicht in den Daten auftaucht. Dies ist der Logik\ngeschuldet, nach der Screen Index die Daten ausliest: Es wird nur die\nJahresaufzeichnung, nicht jedoch die aktuelle `screenindex-locked.txt`\nbetrachtet.\n\nAusnahmen von dieser Regel sind die Optionen `-t` und `-r`, die jeweils auch die\nZeit aus der `screenindex-locked.txt` einbeziehen. Beide Optionen sind dafür\ngedacht sind, eine Art tägliche Nutzungszeit bspw. in einer Statusleiste\nanzuzeigen. In diesem Falle ist eine möglichst realitätsgetreue Darstellung\nerforderlich; die Auswertung der Aktivitätsdaten mit den anderen `-v`-Optionen\nwird erwartungsgemäß hingegen eher länger zurückliegende Aktivitäten betreffen\nund daher oft den noch laufenden Tag ausklammern.\n\nDateiformate\n============\n\n## `configuration.ini`\n\nDiese Datei enthält generelle Programmeinstellungen. Die Standardwerte sind\nfolgendes:\n\n\t[configuration]\n\t; Screen Index configuration, created by version 1.0.4.5\n\tlocked-file=screenindex-locked.txt\n\tio-date-format=dd.MM.yyyy HH:mm:ss\n\tdelta-t-max-per-day=21600\n\tbackup-interval-secs=600\n\tdatabase-dir=db\n\nRelevante Einstellungsmöglichkeiten werden im Folgenden erklärt.\n\n`locked-file`\n:   Gibt einen Dateinamen für eine `screenindex-locked.txt` an, die genutzt\n    wird, um zu verhindern, dass zwei Instanzen gleichzeitig auf der selben\n    Datenbank gestartet werden. Damit richten wiederholt aufgerufene Autostarts\n    keinen Schaden an.\n`delta-t-max-per-day`\n:   Gibt eine Anzahl in Sekunden an, ab der ein Tag als „voll“ gilt. Der\n    Standardwert sind 6 Stunden. Diese Einstellung wirkt sich nur in Verbindung\n    mit der Option `-r` aus.\n`backup-interval-secs`\n:   Gibt ein Sekundenintervall an, in dem die `screenindex-locked.txt`\n    aktualisiert wird. Darin wird dann die aktuelle Zeit festgehalten, um\n    im Falle von unerwartetem Programm-Benden zumindest einen Teil der\n    tatsächlichen Zeit zu erfassen.\n`database-dir`\n:   Gibt einen Verzeichnisnamen zur Ablage der „Datenbankdateien“ an.\n\n## `screenindex-locked.txt`\n\nDie Datei `screenindex-locked.txt` hat folgenden strukturellen Aufbau:\n\n\tVON to BIS\n\tNACHRICHT1\n\tNACHRICHT2\n\t...\n\n`VON` und `BIS` in der 1. Zeile sind dabei sekundengenaue Datums und\nUhrzeitangaben, die Nachrichten folgen dannach in jeweils einer Zeile pro\nNachricht. Läuft die aktuelle Aktivität kürzer als die konfigurierten\n`backup-interval-secs`, steht `unknown` als Wert für `BIS`. Ein Beispiel für\ndiesen Zustand:\n\n\t21.03.2020 14:34:40 to unknown\n\nHier ist gleichzeitig der Fall zu sehen, in dem keine Nachrichten hinterlegt\nwurden -- die Datei hat also nur eine Zeile.\n\n## `YYYY.xml`\n\nScreen Index verwendet ein XML-Format zum Speichern der Aktivitäten. Dabei wird\nfür jedes angefangene Jahr eine neue Datei angelegt. Es existiert keine DTD und\nkein Schema für das Format, von daher wird es hier anhand eines Beispiels\nerläutert:\n\n~~~{.xml}\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?\u003e\n\u003c!--Screenindex year data file, written by Screenindex Version 1.0.4.5--\u003e\n\u003cstats created-by-version=\"1.0.4.5\" year=\"2020\"\u003e\n\t\u003cmonth no=\"3\"\u003e\n\t\t\u003cday no=\"20\"\u003e\n\t\t\t\u003cactivity end=\"20.03.2020 21:23:00\" start=\"20.03.2020 21:14:27\"/\u003e\n\t\t\t\u003cactivity end=\"20.03.2020 21:26:35\" start=\"20.03.2020 21:25:54\"/\u003e\n\t\t\u003c/day\u003e\n\t\t\u003cday no=\"21\"\u003e\n\t\t\t\u003cactivity end=\"21.03.2020 14:34:30\" start=\"21.03.2020 14:34:08\"\u003e\n\t\t\t\t\u003cmessage\u003eTestnachricht\u003c/message\u003e\n\t\t\t\u003c/activity\u003e\n\t\t\u003c/day\u003e\n\t\u003c/month\u003e\n\u003c/stats\u003e\n~~~\n\nDer Aufbau der Datei sollte weitgehend selbsterklärend sein. Für die Jahresdatei\ngibt es ein `stats`-Element, welches das Jahr der Betrachtung explizit im\nAttribut `year` angibt (es lässt sich alternativ aus dem Dateinamen ermitteln).\nInnerhalb des Dokuments befindet sich ein `month`-Element für jeden Monat. In\njedem Momantselement befindet sich dann ein `day`-Element für jeden Tag, wobei\nim Attribut `no` jeweils der Tag im Monat bzw. die Monatsnummer angegeben\nwerden.\n\nInnerhalb der `day`-Elemente befinden sich dann ein oder Mehr `activity`\nElemente, die in den Attributen `start` und `end` die Zeit der Aktivität\nangeben. Wenn keine Nachrichten hinterlegt sind, sind die `activity`-Elemente\nleer, ansonsten erhalten sie für jede Nachricht ein `message`-Element, in dem\nder Nachrichtentext als PCDATA gespeichert ist.\n\nWenn man die Jahresdatei auf dem Dateisystem direkt öffnet, sind die Inhalte\noft fortlaufend komplett auf einer Zeile untergebracht. Eine schnelle,\nautomatische Formatierung kann durch Webbrowser oder die auf\n[StackOvervlow angegebenen Tools](https://stackoverflow.com/questions/16090869)\nerreicht werden.\n\nExport- und Auswertungsmöglichkeiten\n====================================\n\nDie Auswertemöglichkeiten über die `-v`-Optionen wurden bereits in den\nvorangegangenen Abschnitten beleuchtet. Dieser Abschnitt beschreibt Alternative\nMöglichkeiten.\n\n## Nutzung des Screenindex Export\n\nObwohl als „veraltet“ gekennzeichnet, funktioniert die vor langer Zeit\nvorgesehene Exportfunktion nach XHTML auch noch 2020. Sie kann über den Aufruf\nvon `screenindex -s JAHR DATEI.xhtml` genutzt werden und produziert eine\neinzige XHTML-Datei, die die Aktivitäten per Maus „erkundbar“ macht. Für die\nvorher gezeigte Test-Datenbank sieht die Seite folgendermaßen aus:\n\n![Screen Index XHTML Exportergebnis für eine kleine\nTestdatenbank](screenindex_att/exportsmall)\n\n![Screen Index XHTML Exportergebnis für ein ganzes Jahr, Zahlen wurden\nunkenntlich gemacht](screenindex_att/exportlarge.png)\n\nDarin kann man ausgehend von der linken Seite durch Klick auf die Tabellenzeilen\ndie Aktivitäten interaktiv aufrufen; die Darstellung ist ansonsten vergleichbar\nmit der von `screenindex -v`. Als Besonderheit werden Diagramme für die Monate\ngeneriert, die die monatliche bzw. tägliche Aktivität zeigen. Bei wenigen\nund nur kurzen Aktivitäten wie dem hier gezeigten Beispiel sind diese jedoch\nweitgehend leer.\n\nDie Auswahl eines bestimmten Tages ist über das Formularfeld in der oberen\nrechten Ecke möglich.\n\n## Direkte Auswertung der XML-Datei\n\nAls Alternative zu den integrierten Export und Analysemöglichkeiten bietet\ndas Screen Index XML-Format natürlich auch die Möglichkeit einer direkten\nAuswertung. Zwei Beispiele hierfür finden sich im Repository unter `auswertung`:\n\n`messages.css`\n:   Mit Hilfe eines einfachen CSS-Stylesheets können die Nachrichten aus dem\n    XML-Format extrahiert und sichtbargemacht werden werden. Mit diesem\n    Stylesheet werden die Aktivitäten zusammengehörender Monate durch Linien\n    und die Aktivitäten eines Tages durch einen grauen Strich gekennzeichnet.\n\n![Beispiel für die Anwendung von `messages.css`](screenindex_att/messagescss)\n\n`messages-tex.xsl`\n:   Zum Exportieren der Nachrichten in ein LaTeX-Dokument kann dieses Stylsheet\n    genutzt werden. Die Dokumentstruktur muss noch ergänzt und das Paket\n    `mdwlist` importiert werden. Unter Linux kann ein XSLT-Stylesheet bspw. \n    mit dem Programm `xsltproc` angewendet werden.\n\n![Beispiel für die Anwendung von\n`messages-tex.xsl`](screenindex_att/messagesxsl)\n\nAlternativen und ähnliche Programme\n===================================\n\nEs gibt zahllose Programme zum Erfassen der Nutzungszeit von Rechnern. Dieser\nAbschnitt verlinkt einige für ähnliche Zwecke wie Screen Index geeignete\nProgramme, die teilweise stark abweichende Designs haben.\n\n * [gtimer(1)](https://manpages.debian.org/stable/gtimer/gtimer.1.en.html)\n * [gtimelog(1)](https://manpages.debian.org/stable/gtimelog/gtimelog.1.en.html)\n   [Blog Post](https://www.linuxinsider.com/story/71917.html)\n\nWeitere Ideen finden sich in der\n[Liste auf Stackoverflow](http://stackoverflow.com/questions/398344)\n\nIdeen für eine neue Screen Index Version\n========================================\n\nohne Anspruch auf Vollständigkeit und ohne besondere Reihenfolge\n\n * Weniger Arbeitsspeicherverbrauch und Hintergrundaktivitäten durch Wahl einer\n   systemnahen Programmiersprache ohne GC\n * Datenablage in geeigneterem Format, nicht die ganze Datenbank dauerhaft in\n   den Arbeitsspeicher laden\n * Vollständige Unterstützung für Zeitzonen und andere Datumsformate\n * Datensparsame automatische Erfassung genutzer Anwendungen mit Hilfe von\n   Kategorie-Regelwerken\n * Möglichkeit zur expliziten Projekt-Zeiterfassung --\n   Nachrichten mit dem Datum+Uhrzeit des Hinzufügens versehen.\n * Informativere Auswertungsmöglichkeiten, eventuell auch mehr Statistik?\n * Integration mit Erfassung der Nutzung von Rechenleistung zur Vorhersage\n   zukünftigen Hardwarebedarfes? Wichtig hierbei ist, dass der genutzte\n   Speicherplatz für diese Daten möglichst klein ausfallen sollte, bspw. nur\n   Minimum,Median,Maximum oder eventuell noch ein 0.25 und 0.75 Quantil?\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fm7a%2Fbo-screenindex","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fm7a%2Fbo-screenindex","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fm7a%2Fbo-screenindex/lists"}