Files
onyx/docs/spikes/J-osd.md
T
ScarriffleandClaude Opus 5 a3399d3a96 Zwei Anzeigen für einen Handgriff sind eine zu viel
Apples eigene Einblendung lässt sich aushängen, ohne Root und ohne SIP
anzufassen: `com.apple.OSDUIHelper` liegt in der GUI-Domäne des angemeldeten
Benutzers, nicht im System. `launchctl bootout` dort hinein genügt.

Standardmäßig aus, denn es verschwindet **jede** Einblendung — auch Helligkeit
und Feststelltaste, und für die Feststelltaste hat Onyx keinen Ersatz. Beim
Beenden wird wieder eingehängt: eine Einstellung darf nicht überleben, was sie
eingestellt hat.

Dazu zwei Fehler im Anlernen behoben. Der Posenname stand als roher Schlüssel da
— die Zeichenketten liegen im Bündel von `FaceProvider`, gesucht wurden sie im
Hauptbündel. Und „Gesicht vergleichen" blieb nach dem Anlernen grau, weil
`isEnrolled` bei jedem Aufruf den Schlüsselbund las: richtig, aber für SwiftUI
unsichtbar, weil es nichts gab, woran eine Ansicht die Änderung hätte bemerken
können.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-05 22:26:41 +02:00

2.1 KiB

Spike J — Apples eigene Einblendung unterdrücken

Im Plan heißt dieser Spike „G". Die Buchstaben in docs/spikes/ sind fortlaufend vergeben; hier läuft die vorhandene Reihe weiter.

Frage. Lässt sich com.apple.OSDUIHelper zuverlässig aushängen? Kommt er von selbst zurück? Was passiert beim Ab- und Anmelden? Steht SIP im Weg?

Gemessen am 05.09.2026, rein lesend.

Ergebnis

Prüfung Befund
Prozess läuft dauerhaft? nein — bedarfsgesteuert, state = not running
LaunchAgent /System/Library/LaunchAgents/com.apple.OSDUIHelper.plist
Domäne gui/<uid> — die des angemeldeten Benutzers, nicht system
SIP aktiviert, OSDUIHelper.app/Contents ist restricted

Der entscheidende Punkt: der Dienst ist in der Benutzer-Domäne geladen. launchctl bootout gui/<uid>/com.apple.OSDUIHelper hängt ihn dort aus — ohne Root und ohne die SIP-geschützte Datei anzufassen. Geändert wird nur, was in der eigenen Sitzung geladen ist.

Was das kostet

Es verschwindet jede Einblendung, nicht nur die für die Lautstärke: auch Helligkeit und Feststelltaste. Onyx zeigt nur die Lautstärke und die Helligkeit — die Feststelltaste hätte dann gar keine Rückmeldung mehr.

Deshalb:

  • Der Schalter steht standardmäßig aus. Das ist eine Entscheidung, die man treffen soll, nicht eine, die man vorfindet.
  • Beim Beenden von Onyx wird wieder eingehängt. Ohne das säße jemand bis zum nächsten Abmelden ganz ohne Rückmeldung da und wüsste nicht, warum. Eine Einstellung darf nicht überleben, was sie eingestellt hat.

Was der Spike nicht getan hat

Nichts ausgehängt. An einem Systemdienst zu drehen, um zu sehen was passiert, ist nichts, was ungefragt geschieht — auch dann nicht, wenn es sich zurücknehmen lässt. Geprüft wurde nur, wo der Dienst liegt und wem er gehört.

Damit ist auch nicht gemessen, ob er von selbst zurückkommt, wenn etwas ihn anfordert. Der Verdacht besteht: er ist bedarfsgesteuert. Falls ja, muss das Aushängen wiederholt werden — das zeigt sich beim ersten Einschalten.