58 votes

Empêcher le Mac de se mettre en veille lorsque le couvercle est fermé sur Mojave / Catalina

Alors j'ai vu beaucoup de vieilles discussions sur ce sujet, mais j'essaie de trouver une solution actuelle qui fonctionne toujours sur Mojave / Catalina, sans utiliser de moniteur/clavier/souris externes / avec adaptateur secteur.

En cherchant Amphetamine, ils affirment que vous ne pouvez le faire que lorsque les 4 critères sont remplis, et que vous ne pouvez pas passer outre.

Amphetamine

Mais d'un autre côté, Anti Sleep propose cette fonctionnalité dans leur version pro...

enter image description here

Alors, lequel est le vrai ? Est-ce qu'Anti Sleep ment à ce sujet ou est-ce qu'Amphetamine (et toutes les autres applications de caféine sur l'App Store) sont obsolètes ?

J'ai aussi entendu parler d'InsomniaX et de la caféine intégrée, mais ce n'est vraiment pas convivial et semble ne plus être pris en charge...

102voto

CJ Dana Points 1200

Vous pouvez réaliser cela dans le terminal. Aucun logiciel supplémentaire n'est nécessaire.

Afficher les paramètres de puissance globaux:
pmset -g

Paramètres de puissance système:
Actuellement en cours:
 lidwake              1
 autopoweroff         1
 standbydelayhigh     86400
 autopoweroffdelay    28800
 proximitywake        1
 standby              1
 standbydelaylow      10800
 ttyskeepawake        1
 hibernatemode        3
 powernap             1
 gpuswitch            2
 hibernatefile        /var/vm/sleepimage
 highstandbythreshold 50
 womp                 0
 displaysleep         10
 networkoversleep     0
 sleep                1 (sleep prevented by sharingd)
 tcpkeepalive         1
 halfdim              1
 acwake               0
 disksleep            10

Pour arrêter complètement la mise en veille:
sudo pmset -a disablesleep 1

Pour revenir en arrière, permettant à nouveau la mise en veille:
sudo pmset -a disablesleep 0

14voto

Ariel Points 807

Il y a une utilitaire intégrée appelée caffeinate qui empêchera temporairement votre Mac de passer en mode veille.

Ouvrez l'application Terminal et exécutez :

caffeinate -i -s

Cela empêchera le Mac de passer en mode veille tant que la commande s'exécute. Appuyez sur Ctrl+C pour quitter et restaurer le comportement de sommeil normal. (Cmd+Q pour quitter le Terminal fonctionne également.)

L'option -i empêche votre système de passer en mode veille après une période d'inactivité, et -s l'empêche de dormir lorsque le couvercle est fermé. (Voir également cette réponse.)

Notez que maintenir le système éveillé avec le couvercle fermé ne fonctionne que lorsque vous êtes connecté à une alimentation secteur. Si vous débranchez votre chargeur, le Mac passera immédiatement en mode veille. D'après mes tests (sur un MacBook Air M1 de 2021), si vous reconnectez ultérieurement le chargeur, le Mac se réveillera automatiquement, même sans ouvrir le couvercle.

Consultez man caffeinate pour plus d'options.

1voto

Randomblock1 Points 11

En ajoutant à la réponse de CJ, vous pouvez créer un script shell pour gérer automatiquement l'activation et la désactivation de la mise en veille avec pmset. https://apple.stackexchange.com/a/270835/408131

#!/bin/bash
#***************************************************************************
#*** noz - empêcher l'ordinateur portable de passer en veille lorsque le couvercle est fermé
#***************************************************************************

#***** définir quelques valeurs par défaut *****
BATTERY_SLEEP=5 # en minutes
DEF_WAKE_LEN=300 # en secondes

#***** déterminer la valeur du délai *****
timeout_len=${1:-$DEF_WAKE_LEN}

function prevent_sleep() {
    echo
    echo -n "Empêcher la mise en veille pendant $timeout_len secondes; appuyez sur  pour continuer..."

    sudo pmset -b disablesleep 1
    sudo pmset -b sleep 0
}

function enable_sleep() {
    # $1:  = 0, timeout = 1, Ctrl-C = indéfini

    #----- insérer un saut de ligne pour le timeout ou le Ctrl-C -----
    if [[ ${1:-1} -eq 1 ]]; then    echo; fi
    echo "Restauration des paramètres précédents de mise en veille sur batterie : $BATTERY_SLEEP"

    sudo pmset -b disablesleep 0
    sudo pmset -b sleep $BATTERY_SLEEP

    #----- mise en veille uniquement en cas de timeout -----
    if [[ ${1:--1} -eq 1 ]]; then   sudo pmset sleepnow; fi
    exit
}

#***** empêcher la mise en veille *****
prevent_sleep

#***** capturer Ctrl-C *****
trap enable_sleep INT

#***** attendre une entrée *****
read -t $timeout_len
rc=$?

#***** réactiver la mise en veille normale *****
enable_sleep $rc

Le script shell désactivera la mise en veille jusqu'à ce que vous appuyiez sur la touche Entrée, moment où il réactivera les paramètres de mise en veille (alternativement, vous pouvez appuyer sur Ctrl-C pour obtenir le même résultat). Il définira également un délai (par défaut à 300 secondes/5 minutes) après lequel les paramètres de mise en veille seront automatiquement réactivés et l'ordinateur portable sera forcé de passer en veille. Bien que cela puisse être gênant si vous utilisez votre ordinateur portable en réunion, cela vous sauvera la vie si vous oubliez et mettez votre ordinateur portable dans votre sac pour rentrer chez vous.

Les lecteurs avisés noteront que ces commandes nécessitent sudo; malheureusement, cela est inévitable à ma connaissance. Sur mon système, j'ai configuré les choses de façon à ne pas avoir à saisir mon mot de passe pour exécuter pmset en tant que root. Pour ce faire, modifiez le fichier sudoers (sudo visudo) et ajoutez cette ligne :

VOTRENOMDUTILISATEUR ALL=(ALL) NOPASSWD: /usr/bin/pmset

en remplaçant "VOTRENOMDUTILISATEUR" par votre nom d'utilisateur. Vous pourriez probablement obtenir le même résultat (c'est-à-dire exécuter le script sans avoir à saisir votre mot de passe) en exécutant le script shell avec les permissions SETUID, mais je n'aime pas faire cela ; ouvrir cette seule commande via sudoers me semble moins risqué.

Pour exécuter le script, placez-le dans un répertoire de votre PATH et appelez-le comme suit :

noz []

Quand vous arrivez à destination, il vous suffit simplement d'appuyer sur Entrée ou sur Ctrl-C et vous êtes prêt à partir. Et si vous oubliez, il se réinitialisera automatiquement et passera en veille.

Vous pouvez également configurer une Action rapide Automator, lui dire d'exécuter noz, et lui attribuer un raccourci clavier.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X