やめて smettila

Rilevamento schiaffi per MacBook Apple Silicon.

Colpisci il portatile, fa un rumore. La parte interessante è che funzioni: il sensore non è documentato, CoreMotion non lo vede, e distinguere uno schiaffo da un colpo sulla scrivania richiede il giroscopio.

macOS 13+ · portatili Apple Silicon · M2 e successivi, o M1 Pro/Max

Icona di yamete: un MacBook a fumetti con le guance rosse
accelerazione 0.8 g
rotazione 60 °/s

0.52 g 47.7 °/s scatta

Due registrazioni reali, stessi assi. Il colpo sulla scrivania è l'impatto più grande del 39 % e il rilevatore lo scarta — ruota a malapena la macchina.

Il discriminatore

Il colpo più forte è quello da scartare

Un colpo attraverso la scrivania scuote la macchina più di uno schiaffo sul coperchio. Ordinare per forza produce qualcosa che scatta sui mobili.

rotazione, °/s
Bump the desk Slap the lid Trackpad click Typing 60 0.8 g
g
Quattro registrazioni reali. In orizzontale l'accelerazione di picco; in verticale la rotazione di picco. Solo lo schiaffo è abbastanza in alto sull'asse di rotazione per passare il gate del giroscopio.

Sensibilità

Cosa intercetta, e dove sbaglia

40 schiaffi registrati e 150 secondi di digitazione, trackpad, colpi sulla scrivania, movimento del coperchio e un portatile fermo che devono restare silenziosi. Un solo cursore li attraversa.

0.50
Schiaffi intercettati 35 / 40
Falsi positivi 0

Il valore predefinito.

Azioni

Poi succede qualcosa

Tre tipi di risposta, filtrati per quanto forte è stato il colpo. Ognuna può leggere lo schiaffo a cui risponde.

Riproduci un suono

Indica file o un'intera cartella: ne sceglie uno per volta, in ordine o a caso, mai lo stesso due volte di fila. Il volume può seguire la forza del colpo.

# out of the box
/System/Library/
  Sounds/Sosumi.aiff

Chiama un webhook

Qualsiasi metodo, header e body. URL e body sono templati: Home Assistant, Shortcut o IFTTT senza casi speciali.

# POST body
{
  "tier": "{{tier}}",
  "g": {{peak_g}}
}

Esegui un comando

Lo schiaffo arriva due volte: come variabili d'ambiente per gli shell one-liner, e come JSON su stdin per chi preferisce analizzarlo.

$ osascript -e "set volume 0"
# $YAMETE_TIER → major
# $YAMETE_PEAK_G → 0.52

Dietro un interruttore avanzato

Aspetta 200 ms prima

Il rilevamento è abbastanza veloce da far partire un suono mentre lo schiaffo fisico è ancora udibile. La risposta deve arrivare dopo l'impatto. 200 ms scelti a orecchio, regolabili per azione.

Severità e confidenza sono domande diverse

Quanti detector hanno votato risponde a «è un impatto?». Quanto hai colpito è ampiezza, e quella sola decide se un'azione major scatta.

L'app

Vive nella barra dei menu

Aprirla avvia il rilevamento, chiuderla lo ferma. Il demone fa il lavoro vero su un socket unix; la finestra è un controller che si collega.

The window follows the system appearance rather than picking a look. A menu bar utility that ignores light and dark reads as broken rather than styled.

It ships the daemon inside itself and owns its lifetime, so there is nothing to install separately and nothing left running when you quit. If a daemon is already running the app attaches to it and leaves it alone.

You can also skip the app. The daemon runs on its own as a user LaunchAgent, and the protocol is newline-delimited JSON — you can drive it by hand with nc -U.

Sul tuo Mac

Non esce nulla se non lo invii tu

Rilevamento, config e log restano nella home. Nessun account, nessun cloud Chipcolate, nessun SDK di analytics. Le uniche reti sono quelle che configuri.

  • Solo locale

    I campioni del sensore restano sul dispositivo. La telemetria dello scope è un flusso socket locale verso l'app, spenta se nessuno guarda.

  • Nessun account

    Niente registrazione, niente profilo, nessun server nostro. Disinstalla e cancella pochi percorsi sotto ~/Library.

  • Le tue azioni

    I suoni restano locali. Webhook e comandi parlano solo con endpoint o programmi che imposti tu.

Informativa completa Domande via GitHub Issues

Installazione

Se il tuo Mac può eseguirlo

Funziona su
Portatili Apple Silicon con macOS 13 o successivo — M2 e oltre, più M1 Pro e M1 Max.
Senza sensore
MacBook Pro M1 (2020), Air M1, ogni desktop e ogni Intel. yamete probe lo dice chiaramente invece di bloccarsi.
Chiede
Monitoraggio input al primo avvio. macOS lo richiede per qualsiasi accesso HID, incluso un sensore di movimento che non è un dispositivo di input.

Firmato e notarizzato · Apple Silicon · apri il DMG e trascinalo

O solo il demone

Funziona bene senza l'app: è così che è stato sviluppato il detector. Un LaunchAgent utente tiene il rilevamento attivo senza nulla a schermo.

# probe
yamete probe

# watch
yamete watch --scores

# install
yamete install --copy

Tutto — detector, corpus e strumenti di tuning — è su github.com/chipcolate/yamete .