Den Tastenabgriff näher an die Hardware setzen
An der Sitzung angesetzt fing er synthetische Ereignisse zuverlässig ab — die echten Lautstärketasten aber nicht: nachgemessen läuft der Abgriff, und ein selbst erzeugter Tastendruck wird erkannt und verbraucht, während der Druck auf die Taste weiterhin Apples Einblendung auslöste. Auf neueren macOS-Fassungen werden die Tasten offenbar weiter vorn behandelt, bevor die Sitzung sie sieht. `cghidEventTap` sitzt davor. Ob das reicht, zeigt erst die echte Taste — synthetisch ist beides nicht zu unterscheiden. Die Protokollzeilen bleiben vorerst drin: ohne sie ist „es geht immer noch nicht" nicht von „der Abgriff läuft gar nicht" zu trennen. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
91b83928ca
commit
b3ad9c49d6
@@ -69,7 +69,12 @@ public final class MediaKeyTap {
|
||||
|
||||
// `NSSystemDefined` ist der Ereignistyp der Sondertasten.
|
||||
let mask = CGEventMask(1 << 14)
|
||||
guard let tap = CGEvent.tapCreate(tap: .cgSessionEventTap,
|
||||
// **`cghidEventTap` und nicht `cgSessionEventTap`.** An der Sitzung
|
||||
// angesetzt fing der Abgriff zwar synthetische Ereignisse ab, die
|
||||
// echten Tasten aber nicht: auf neueren macOS-Fassungen werden sie
|
||||
// weiter vorn behandelt, bevor die Sitzung sie zu sehen bekommt. Der
|
||||
// HID-Abgriff sitzt davor.
|
||||
guard let tap = CGEvent.tapCreate(tap: .cghidEventTap,
|
||||
place: .headInsertEventTap,
|
||||
options: .defaultTap,
|
||||
eventsOfInterest: mask,
|
||||
|
||||
Reference in New Issue
Block a user