Skip to content

Dopamine Code 1.0.0

Choose a tag to compare

@peter46jan peter46jan released this 15 Aug 20:35
· 54 commits to main since this release

Menubalk-app die je Mac wakker houdt met de klep dicht — zonder extern scherm, zonder dock,
zonder dat je een instelling hoeft te onthouden.

English: a macOS menu bar app that keeps your Mac awake with the lid closed, without an
external display. Available in English, German, French and Dutch. Documentation is in Dutch;
the app itself is not. Build it yourself with ./build.sh --install.

Wat het doet

  • Wakker houden met de klep dicht. Ook zonder extern scherm en zonder voeding.
  • Vanzelf weer stoppen. Na een ingestelde tijd, bij een bijna lege accu, of zodra de Mac
    te warm wordt. Die drie zijn niet uit te zetten — zie hieronder waarom.
  • Vanzelf aangaan, als je dat wilt: op vaste tijden, zodra een bepaalde app start, of
    zodra je de klep dichtdoet.
  • Stoppen als een proces klaar isdopamine on --until-exit $$ in een buildscript.
  • Toetsenbordverlichting schakelen en op een vaste helderheid zetten.
  • Vier talen: Nederlands, Engels, Duits, Frans. Te kiezen in Instellingen, los van de
    taal van de rest van je Mac.

Wat je moet weten voordat je hem installeert

Deze app schakelt de noodrem van macOS uit. Om de Mac wakker te houden met de klep dicht
moet één systeeminstelling om — de slaapblokkade (SleepDisabled) — en diezelfde instelling
zet ook de automatische slaap bij een bijna lege accu en bij oververhitting uit. De
tijdslimiet, de accugrens en de temperatuurbewaking in deze app nemen die taak over. Daarom
zijn ze niet uit te zetten, en daarom zit er een wachter bij die de blokkade opruimt als de
app hard wegvalt.

Er is één keer je adminwachtwoord nodig, voor een regel in /etc/sudoers.d die precies
twee pmset-commando's wachtwoordloos maakt — de slaapblokkade aan en uit, en niets anders.
Wat die regel wel en niet toestaat staat uitgeschreven in de README, en er ligt een
security-audit bij die de route langsloopt vanuit het dreigingsmodel "wat kan iets dat al als
jou draait".

Getest op één machine. Eén Mac, één macOS-versie. De vangnetten zijn de reden dat dit
werkt zonder je accu leeg te laten lopen, en ze zijn nergens anders beproefd. Lees de
garantiebepaling in de licentie voordat je hem neerzet waar het ertoe doet.

Installeren

git clone https://github.com/peter46jan/dopamine-code.git
cd dopamine-code
./build.sh --install

Nodig: macOS 14 of nieuwer en de Xcode command line tools (xcode-select --install). Geen
Xcode-project, geen Apple Developer-account, en geen Gatekeeper-waarschuwing — een lokaal
gebouwde app krijgt geen quarantaine-attribuut.

Zonder ondertekenidentiteit tekent de build ad-hoc. Dat werkt, maar de identiteit is dan de
cdhash: geef je de app Toegankelijkheid-toestemming, dan vervalt die bij elke herbouw. Heb je
een Apple Development-certificaat, dan blijft die toestemming staan — zie de README.

Bijwerken

git pull && ./build.sh --install. De app kijkt eens per dag of er een nieuwere versie is en
zet dat als een stille regel in het menu. Hij downloadt en installeert nooit iets: uit het
antwoord van GitHub komen een versienummer en een link, en die worden alleen getoond. Dat is
geen bescheidenheid maar een ontwerpeis — een app met een wachtwoordloze route naar root
hoort geen kanaal te hebben waarlangs code van buiten binnenkomt.

Controleren

./verify.sh loopt de boel na: doet de sudoers-regel wat hij belooft, blijft de
opdrachtregel van de kernelvlag af, kloppen de vier vertalingen onderling, en — na een echte
nacht met de klep dicht — heeft de Mac tóch geslapen?