>_ DevTrendsnl

Taal

Home

Talen

Secties

Frontend Backend Mobiel DevOps AI / ML GameDev Blockchain Embedded Beveiliging
Swift

Hoe je jezelf dwingt om een goede houding aan te nemen op Mac met Dorso

Na drie uur debuggen van een lastige bug veranderen veel van ons in een vraagteken. Het hoofd schuift dichter naar de monitor, schouders stijgen naar de oren, en de rug kromt tegen de rugleuning. Gewone herinneringen werken hier niet goed: je veegt een timer-melding "recht je rug" weg zonder te kijken, om de focus niet te verliezen.

Onlangs stuitte ik op een leuk open-source project Dorso van ontwikkelaar tldev. Het idee is simpel tot het absurde. De app controleert je houding en vervaagt soepel het scherm als je begint te krommen. Code lezen door een waas is onmogelijk, dus de enige manier om helderheid te herstellen is door recht te zitten.

Tracking method selection Dorso settings

Hoe het onder de motorkap werkt

In tegenstelling tot logge Electron-hulpprogramma's is Dorso geschreven in pure Swift zonder extra afhankelijkheden. De app weegt ongeveer 10 MB en verbruikt minimale resources.

Het programma kan de lichaamshouding op twee manieren volgen.

De eerste optie is de klassieke — via webcam. Dorso gebruikt Apples Vision-framework om lichaamskeypoints (neus en hoofdpositie) realtime te berekenen. Als je schouders niet in beeld zijn, schakelt de app over naar gezichtstracking. Je calibreert je normale houding één keer, en daarna vergelijkt het algoritme je huidige hoofdpositie met de basislijn.

De tweede optie is een stuk interessanter. Als je AirPods hebt (Pro, Max, of reguliere derde generatie), kun je de camera volledig overslaan. De app leest de hoofdkantelingshoek rechtstreeks af van de gyroscoop en versnellingsmeter van de oordopjes via de Motion API in macOS 14. Haal je koptelefoon af — monitoring pauzeert automatisch.

Menu bar icon Posture analytics

Wat de app kan doen

De hoofdfunctie is progressieve vervaging. Het scherm gaat niet meteen donker. Wanneer je iets naar voren leunt, vervaagt het beeld net genoeg om te merken. Leun verder naar beneden — de mist wordt dikker. Recht je rug en helderheid keert onmiddellijk terug.

Hier zijn een paar handige details uit de codebase:

  • Ondersteuning voor meerdere monitoren. Vervaging wordt toegepast op alle aangesloten schermen, niet alleen het ingebouwde laptopscherm.
  • Complete privacy. Geen cloud-servers, analytics of accounts. De videostream draait lokaal in RAM en wordt onmiddellijk gewist.
  • Flexibele dode zone. Je kunt een acceptabele bewegingstolerantie instellen in de instellingen, zodat het scherm niet vervaagt bij elke slok koffie.
  • Pauzeer wanneer externe monitor loskoppelt. Handig als je je laptop naar de bank hebt meegenomen of onderweg werkt.
  • Dashboard met statistieken die laten zien hoe lang je de hele dag een goede houding hebt aangehouden.

Voor het renderen van de vervaging gebruikt de auteur standaard privé CoreGraphics API's. Als deze niet goed werken op jouw systeemversie, is er een "Compatibiliteitsmodus" in de instellingen die overschakelt naar de standaard NSVisualEffectView.

Terminalbesturing

Een interessant architecturaal detail: Dorso heeft een eenvoudige op bestanden gebaseerde controle-interface. De app luistert naar commando's via pipe op /tmp/dorso-command en stuurt statusinformatie naar /tmp/dorso-response.

Je kunt bijvoorbeeld handmatig het schermvervagingniveau testen:

echo "blur 32" > /tmp/dorso-command

Of een analyse van je huidige houding forceren:

echo "capture" > /tmp/dorso-command

Dit opent mogelijkheden voor automatisering. Je kunt calibratiereset koppelen aan hotkeys in Raycast of app-pauze koppelen aan focusmodi.

Installatie en starten

De eenvoudigste manier om te installeren is via Homebrew:

brew install dorso

Of download een kant-en-klare .dmg uit de releases-sectie op GitHub. De build is ondertekend en geautoriseerd door Apple, dus Gatekeeper zal geen problemen geven.

Als je de binary zelf wilt bouwen, heb je macOS 13 of nieuwer en Xcode Command Line Tools nodig:

git clone https://github.com/tldev/dorso.git
cd dorso
./build.sh

De kant-en-klare bundel verschijnt in de build/Dorso.app-map.

Voor wie is het nuttig

Het project zal duidelijk aanslaan bij degenen die urenlang code schrijven en aan het einde van de dag een stijve nek voelen. De app schittert echt in combinatie met AirPods: de camera is vrij voor gesprekken, het groene privacy-indicatorlampje blijft uit, en de houding blijft onder controle.

Linux-gebruikers hoeven ook niet teleurgesteld te zijn. De repository bevat links naar vergelijkbare open alternatieven — projecten postured en dorso-linux.

Gerelateerde projecten