No description
  • Go 85.5%
  • Objective-C 8.5%
  • Shell 5.4%
  • Makefile 0.5%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-10-11 16:41:56 +02:00
.githooks Umbenennung (3/6): Umgebungsvariablen HEINI_… statt KF_… 2026-10-11 11:59:28 +02:00
assets/icon Symbol: App-Symbol zusätzlich als PNG (1024 px) 2026-10-11 16:35:36 +02:00
cmd/heini Einstellungsfenster (macOS): Häkchen für die Adressbücher 2026-10-11 16:22:26 +02:00
docs Revert "Handbuch und Kurzanleitung: Claim „Heini ist der kleine Bruder von Fritz.“" 2026-10-11 16:41:56 +02:00
internal Einstellungsfenster (macOS): Häkchen für die Adressbücher 2026-10-11 16:22:26 +02:00
scripts Symbol: App-Symbol zusätzlich als PNG (1024 px) 2026-10-11 16:35:36 +02:00
third_party/libphonenumber Umbenennung (5/6): Heini in Doku, ADRs, README, Notizen und Lizenzhinweis 2026-10-11 12:01:09 +02:00
.gitignore gitignore: Release-Verzeichnis dist ausschließen 2026-10-10 12:01:18 +02:00
CLAUDE.md CLAUDE.md: Versionsanhang vor jedem Tag pflegen 2026-10-11 16:32:17 +02:00
go.mod Outlook-Kontakte über COM lesen (ADR 0032) 2026-10-11 16:17:17 +02:00
go.sum Outlook-Kontakte über COM lesen (ADR 0032) 2026-10-11 16:17:17 +02:00
LICENSE MIT-Lizenz hinzufügen 2026-10-10 12:16:24 +02:00
Makefile Makefile: Ziel veroeffentlichen 2026-10-11 12:48:33 +02:00
README.md Revert "README: Claim unter dem Titel" 2026-10-11 16:41:54 +02:00

Heini

Kleine Tray-Anwendung für die macOS-Menüleiste und den Windows-Infobereich, die Telefonfunktionen der FRITZ!Box griffbereit macht:

  • Anrufbeantworter schalten, Nachrichten anzeigen, markieren, löschen
  • Anrufliste von heute und der letzten Woche, Rückruf über die Wählhilfe
  • Mitteilung bei eingehenden Anrufen mit Namen
  • Namen zu Rufnummern aus FRITZ!Box-Telefonbüchern, macOS-Kontakten, Thunderbird, dem klassischen Outlook (Windows) und einer eigenen Liste, mit Erkennung von Firmen-Durchwahlen und Ort zur Vorwahl
  • mehrere Standorte mit automatischer Erkennung
  • Einstellungen und Rufnummern in nativen Fenstern (macOS)

Der Name

Prinz Heinrich von Preußen (1726–1802) war der kleine Bruder Friedrichs des Großen, des „Alten Fritz“. Heini ist entsprechend ein kleiner Helfer neben der FRITZ!Box.

Status

Version 0.4.1. Entwickelt und getestet wird auf macOS, an einer FRITZ!Box 5690 Pro mit FRITZ!OS 8.25 (siehe docs/test/box-checkliste.md). Die Windows-Version läuft, hat aber noch keine eigenen Fenster (siehe docs/windows/UEBERGABE.md). Die Adressbücher von Thunderbird und Outlook sind noch ungeprüft.

Architekturentscheidungen stehen als ADRs unter docs/adr/, Hinweise für die Arbeit am Projekt in CLAUDE.md.

Anwenderdokumentation

Handbuch und Kurzanleitung (Flyer) entstehen mit LuaLaTeX aus docs/anwender/ (siehe ADR 0016):

make doku          # Entwurf, ungeprüfte Angaben als „Offen“-Kästen markiert
make doku-release  # ohne „Offen“-Kästen

Die PDFs liegen danach unter build/doku/.

Release bauen

Releases entstehen auf einem Mac aus Versions-Tags vX.Y.Z (siehe ADR 0017 und 0031):

git tag -a v1.0.0          # erste Zeile: Titel, Rest: Release-Beschreibung
make release               # baut die ZIPs nach dist/
make veroeffentlichen      # lädt sie als Release auf Forgejo hoch

Für eine bestimmte Version jeweils RELEASE=0.9.0 anhängen. make release baut aus einem sauberen Checkout des Tags je ein ZIP für macOS und Windows mit Anwendung, Handbuch und Kurzanleitung. make veroeffentlichen legt das Release auf dem Server an und hängt die ZIPs und die Prüfsummen an. Ein vorhandenes Release überschreibt es nicht. Es braucht ein Forgejo-Token mit write:repository im Schlüsselbund: security add-generic-password -U -s heini-forgejo -a <benutzer> -w.

Git-Hooks

Nach jedem Commit pusht ein Hook den aktuellen Branch automatisch nach origin. Neue Branches bekommen dabei ihren Upstream. Es wird nie mit --force gepusht. Ist origin nicht erreichbar oder lehnt den Push ab, bleibt der Commit lokal und es erscheint ein Hinweis. Während eines Rebase und bei abgekoppeltem HEAD pusht der Hook nicht.

make hooks                      # einmal pro Klon aktivieren
HEINI_NO_AUTOPUSH=1 git commit …   # für einen Commit bzw. Tag aussetzen

Neu angelegte Tags pusht ein zweiter Hook (reference-transaction) sofort nach origin. Gelöschte Tags bleiben auf origin erhalten. War origin beim Taggen nicht erreichbar, gehen annotierte Tags beim nächsten Commit mit (--follow-tags) oder von Hand mit git push origin --tags.

Symbole

Das Symbol ist ein großes, kräftiges Schreibmaschinen-H. Die Quellen liegen als SVG in assets/icon/src/, daraus erzeugt make icons (benötigt rsvg-convert) die eingecheckten Dateien:

Datei Zweck
assets/icon/macos/tray-{normal,neu,fehler}[@2x].png Menüleiste macOS (Template-Bilder)
assets/icon/windows/tray-{normal,neu,fehler}.ico Infobereich Windows
assets/icon/heini.icns / .ico App-Symbol
assets/icon/heini.png App-Symbol als PNG (1024 px) für Dokumentation und Webseiten