README.fr.md

June 2, 2026 · View on GitHub

English  ·  简体中文  ·  Español  ·  日本語  ·  Français  ·  Deutsch

Sleepless: keep your Mac awake with the lid closed

Gardez votre MacBook éveillé capot fermé, sur batterie, sans écran externe.
Un seul interrupteur dans la barre des menus, avec minuterie d'extinction automatique et coupure au plancher de batterie pour ne jamais la vider à plat.

CI Release Downloads Stars License: MIT Platform: macOS 26, Apple Silicon

Build provenance: attested (SLSA) Checksums: SHA-256 Telemetry: none Install: Homebrew cask

Sleepless demo: flip the switch, set an auto-off timer, drag the battery-floor slider

Note

Capot fermé, votre Mac se met en veille, et les applis basées sur caffeinate (KeepingYouAwake et consorts) ne peuvent rien y changer, c'est voulu par conception. Sleepless bascule le seul réglage qui le peut, pmset disablesleep, avec des filets de sécurité pour que vous puissiez l'oublier sans risque.

Installation

brew install --cask aboudjem/tap/sleepless
/Applications/Sleepless.app/Contents/Resources/grant.sh   # one-time passwordless grant
Autres méthodes
TéléchargementRécupérez la dernière version, décompressez vers /Applications, puis approuvez-la dans Réglages Système → Confidentialité et sécurité → Ouvrir quand même (elle est signée de façon ad-hoc).
Compiler depuis les sourcesgit clone https://github.com/Aboudjem/Sleepless.git && cd Sleepless && ./install.sh (sans invite Gatekeeper).

Cliquez ensuite sur la tasse dans la barre des menus, basculez l'interrupteur et fermez le capot.

Fonctionnalités

Un seul interrupteurCliquez sur la tasse dans la barre des menus, basculez l'interrupteur.
⏲️Minuterie d'extinction automatique1 h ou 2 h avec compte à rebours en direct, puis extinction.
🔋Plancher de batterieExtinction automatique entre 5 et 50 % sur batterie (15 % par défaut).
🪫Mode Économie d'énergieS'efface quand le mode Économie d'énergie est actif, sur batterie.
🖥️Sans dongleCapot fermé, sur batterie. Sans moniteur, sans fiche HDMI.
🚀Lancer à l'ouverture de sessionOptionnel, désactivé par défaut, démarre toujours à l'arrêt.
🪶Minuscule et nativeUn seul fichier AppKit. Sans icône dans le Dock, démon ni kext.

Glyphe de la barre des menus : tasse vide = arrêt · tasse pleine = éveillé · tasse pleine + point = éveillé sur batterie (extinction automatique active).

Sleepless face aux alternatives

SleeplessAmphetamineKeepingYouAwakecaffeinate
Éveillé, capot fermé, sans moniteur✅ ¹⚠️ ²❌ ³
Sur batterie✅ capot ouvert⚠️ ⁴
Minuterie d'extinction automatique
Extinction automatique à batterie faible
Open source✅ MIT❌ App Store✅ MITApple
CoûtGratuitGratuitGratuitGratuit

Au 2026-06. ¹ Utilise pmset disablesleep et relit le drapeau ; le comportement dépend du matériel et de la version de macOS. ² Documente le mode écran fermé mais est largement signalé comme défaillant sur Apple Silicon lors d'un changement de source d'alimentation (AE #28) ; l'application est propriétaire. ³ Ne peut pas maintenir le capot fermé par conception, il enveloppe caffeinate (#66). ⁴ caffeinate -i tourne sur batterie ; -s est réservé au secteur.

À utiliser pour

  • 🤖 Terminer une tâche nocturne capot fermé : exécutions d'agents, compilations, rendus, entraînement ML.
  • 📡 Partager un point d'accès depuis votre sac.
  • ⬇️ Laisser tourner de gros téléchargements, envois ou sauvegardes.
  • 🖥️ Garder un serveur local ou une session SSH joignable.

Tip

Réglez un plancher de batterie de confiance (disons 20 %) plus une minuterie, et vous pouvez partir sans surveiller la batterie.

Comment ça marche

Sleepless bascule pmset disablesleep (le drapeau SleepDisabled du noyau), le relit pour que la barre des menus ne mente jamais, et le rétablit à votre plancher de batterie, en mode Économie d'énergie, à la fin de la minuterie ou au redémarrage. Une application graphique ne peut pas saisir de mot de passe, alors l'installateur ajoute une règle sudoers au périmètre strict pour exactement deux commandes :

<you> ALL=(root) NOPASSWD: /usr/bin/pmset -a disablesleep 0, /usr/bin/pmset -a disablesleep 1
  • Impossible à élargir. sudoers compare les arguments littéralement, sans jokers.
  • Rien à détourner. Pas de démon, pas de script auxiliaire, pas de shell. Elle appelle /usr/bin/pmset directement.
  • Toujours réversible. Le redémarrage, le plancher, la minuterie ou ./uninstall.sh (qui prouve que l'autorisation a disparu).

Vérifiez un téléchargement, sans compte Apple :

shasum -a 256 -c SHA256SUMS
gh attestation verify Sleepless-*.zip -R Aboudjem/Sleepless

Le modèle de menace complet, le verdict sur l'App Store et le guide d'audit : SECURITY.md · docs/AUDIT.md.

FAQ

Est-ce que pmset disablesleep fonctionne encore sur Apple Silicon (M1/M2/M3) ?

Oui, confirmé sur macOS 26.3. pmset -a disablesleep 1 positionne le drapeau SleepDisabled du noyau sur Apple Silicon, ce qui garde le Mac éveillé capot fermé sur batterie. Vérifiez avec pmset -g | grep SleepDisabled (il doit afficher 1). Les affirmations selon lesquelles cela « ne fonctionne plus » décrivent en général caffeinate ou les applis basées sur caffeinate, un mécanisme différent.

Pourquoi mon Mac se met-il en veille à la fermeture du capot, même avec Amphetamine ou KeepingYouAwake ?

Ces outils utilisent les assertions d'alimentation de macOS, qui arrêtent la minuterie d'inactivité mais ne peuvent pas passer outre le déclencheur matériel de fermeture du capot. KeepingYouAwake enveloppe caffeinate, qui ne peut pas maintenir le capot fermé (#66). pmset disablesleep, que Sleepless utilise, le peut.

Est-ce sûr ? Va-t-il surchauffer ou vider la batterie ?

C'est sûr pour des tâches légères et sans surveillance (téléchargements, synchronisations, point d'accès). Une charge soutenue et intense capot complètement fermé réduit la circulation de l'air, alors faites preuve de jugement. Le plancher de batterie, l'extinction automatique en mode Économie d'énergie et la minuterie l'arrêtent tous avant qu'il ne vide le Mac.

A-t-il besoin de sudo, d'une extension noyau ou d'un démon ?

Une seule autorisation sudo au périmètre strict (deux commandes pmset exactes) pour qu'une application graphique puisse basculer le réglage sans invite. Pas d'extension noyau, pas de démon. Toute l'application tient dans un seul fichier AppKit.

Comment l'arrêter ou le supprimer ?

Désactivez l'interrupteur, ou laissez la minuterie ou le plancher de batterie le faire, et la veille normale revient. Un redémarrage le réinitialise aussi. ./uninstall.sh supprime l'application, l'élément de connexion et l'autorisation sudoers, puis prouve que l'autorisation a disparu.

Pourquoi n'est-il pas notarisé ?

C'est un outil personnel et open source sans identifiant Apple Developer payant, il est donc signé de façon ad-hoc. Compilez depuis les sources pour contourner Gatekeeper, ou utilisez Ouvrir quand même pour l'application préfabriquée. Les étapes de notarisation sont documentées dans docs/AUDIT.md.

Contribuer

Les tickets et les PR sont les bienvenus, en particulier les traductions et les rapports depuis d'autres matériels. Consultez CONTRIBUTING.md et le Code de conduite. Sleepless reste délibérément petit.

Licence

MIT © 2026 Adam Boudjemaa.

Si Sleepless vous a évité un détour par le Terminal, une ⭐ aide d'autres personnes à le trouver.