>_ DevTrendspl

Język

Strona główna

Języki

Sekcje

Frontend Backend Mobilne DevOps AI / ML GameDev Blockchain Systemy wbudowane Bezpieczeństwo
Swift

Jak zmusić się do utrzymywania prawidłowej postawy na Macu z Dorso

Po trzech godzinach debugowania podstępnego błędu wielu z nas zamienia się w znak zapytania. Głowa przesuwa się bliżej monitora, ramiona podnoszą do uszu, a plecy wyginają się przeciwko oparciu krzesła. Zwykłe przypomnienia tutaj nie działają: odgarniasz powiadomienie od timera "wyprostuj plecy" bez patrzenia, żeby nie stracić koncentracji.

Ostatnio natknąłem się na zabawny projekt open source Dorso autorstwa dewelopera tldev. Pomysł jest prosty do granic absurdu. Aplikacja monitoruje Twoją postawę i płynnie rozmywa ekran, jeśli zaczynasz się garbić. Czytanie kodu przez rozmycie jest niemożliwe, więc jedynym sposobem na przywrócenie ostrości jest wyprostowanie się.

Tracking method selection Dorso settings

Jak to działa pod maską

W przeciwieństwie do rozbudowanych narzędzi Electron, Dorso jest napisane w czystym Swift bez dodatkowych zależności. Aplikacja waży około 10 MB i zużywa minimalne zasoby.

Program może śledzić pozycję ciała na dwa sposoby.

Pierwsza opcja to klasyczne rozwiązanie — przez kamerkę internetową. Dorso wykorzystuje framework Vision firmy Apple do obliczania punktów kluczowych ciała (pozycja nosa i głowy) w czasie rzeczywistym. Jeśli Twoje ramiona nie są w kadrze, aplikacja przełącza się na śledzenie twarzy. Kalibrujesz swoją normalną postawę raz, a następnie algorytm porównuje Twoją aktualną pozycję głowy z linią bazową.

Druga opcja jest znacznie ciekawsza. Jeśli masz AirPody (Pro, Max lub zwykłe trzeciej generacji), możesz całkowicie pominąć kamerę. Aplikacja odczytuje kąt przechylenia głowy bezpośrednio z żyroskopu i akcelerometru słuchawek przez API Motion w macOS 14. Zdejmij słuchawki — monitorowanie automatycznie się pauzuje.

Menu bar icon Posture analytics

Co potrafi aplikacja

Główną funkcją jest progresywne rozmycie. Ekran nie ciemnieje od razu. Gdy pochylisz się lekko do przodu, obraz rozmywa się tylko na tyle, żeby to zauważyć. Nachyl się dalej w dół — mgła gęstnieje. Wyprostuj plecy, a ostrość natychmiast powraca do pełni.

Oto kilka przydatnych szczegółów z kodu źródłowego:

  • Wsparcie dla wielu monitorów. Rozmycie jest stosowane do wszystkich podłączonych wyświetlaczy, nie tylko do wbudowanego ekranu laptopa.
  • Pełna prywatność. Żadnych serwerów chmurowych, analityki ani kont. Strumień wideo działa lokalnie w RAM i jest natychmiast usuwany.
  • Elastyczna strefa martwa. Możesz ustawić dopuszczalną tolerancję ruchu w ustawieniach, aby ekran nie rozmywał się przy każdym łyku kawy.
  • Pauza przy odłączeniu zewnętrznego monitora. Wygodne, jeśli zabrałeś laptopa na kanapę lub pracujesz w podróży.
  • Panel ze statystykami pokazującymi, jak długo utrzymywałeś dobrą postawę w ciągu dnia.

Do renderowania rozmycia autor domyślnie używa prywatnych API CoreGraphics. Jeśli nie działają poprawnie na Twojej wersji systemu, w ustawieniach jest dostępny "Tryb kompatybilności", który przełącza renderowanie na standardowy NSVisualEffectView.

Kontrola przez terminal

Ciekawy szczegół architektoniczny: Dorso ma prosty interfejs kontrolny oparty na plikach. Aplikacja nasłuchuje poleceń przez pipe pod /tmp/dorso-command i wyprowadza status do /tmp/dorso-response.

Na przykład możesz ręcznie przetestować poziom rozmycia ekranu:

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

Lub wymusić analizę Twojej aktualnej postawy:

echo "capture" > /tmp/dorso-command

Otwiera to możliwości automatyzacji. Możesz powiązać reset kalibracji z kombinacjami klawiszy w Raycast lub połączyć pauzę aplikacji z trybami skupienia.

Instalacja i uruchomienie

Najłatwiejszy sposób instalacji to przez Homebrew:

brew install dorso

Albo pobierz gotową .dmg z sekcji releases na GitHub. Build jest podpisany i zaakceptowany przez Apple, więc Gatekeeper nie będzie narzekać.

Jeśli chcesz zbudować binarkę samodzielnie, potrzebujesz macOS 13 lub nowszego oraz zainstalowanych narzędzi wiersza poleceń Xcode:

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

Gotowy bundle pojawi się w folderze build/Dorso.app.

Kto to doceni

Projekt z pewnością trafi do osób, które spędzają godziny na kodowaniu i czują sztywność karku do wieczora. Aplikacja naprawdę błyszczy w połączeniu z AirPods: kamerka jest wolna na rozmowy, zielony wskaźnik prywatności pozostaje wyłączony, a postawa pozostaje pod kontrolą.

Użytkownicy Linuksa też nie powinni być rozczarowani. W repozytorium są linki do podobnych otwartych alternatyw — projekty postured i dorso-linux.

Powiązane projekty