- Go 85.5%
- Objective-C 8.5%
- Shell 5.4%
- Makefile 0.5%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
|
||
| .githooks | ||
| assets/icon | ||
| cmd/heini | ||
| docs | ||
| internal | ||
| scripts | ||
| third_party/libphonenumber | ||
| .gitignore | ||
| CLAUDE.md | ||
| go.mod | ||
| go.sum | ||
| LICENSE | ||
| Makefile | ||
| README.md | ||
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 |